Microsoft Stack이 여전히 실행 가능한 선택인 8가지 이유
게시 됨: 2022-03-1110년 전에는 마이크로소프트 개발자들에게 인생이 아주 좋았습니다. 회사들은 개발 프로젝트에 100% Microsoft를 사용하는 것에 만족했습니다. 프론트엔드의 ASP.NET, 백엔드의 .NET 중간 계층 및 SQL Server를 사용하면 대부분의 경우 매우 잘 작동했습니다. 그렇지 않은 경우 개발자는 이를 영역과 함께 제공되는 것으로 받아들였습니다. 마이크로소프트는 쇼를 운영하고 있었다. 그런 다음 지난 10년 말에 Microsoft의 800파운드 고릴라 지위가 풀리기 시작했습니다. 아이폰과 마이크로소프트가 모바일로의 전환을 놓친 탓일 수도 있고, 오픈소스 프로젝트의 확산 때문일 수도 있지만 상황이 바뀌었고 오늘날에는 마이크로소프트 스택을 사용하는 것이 좋은 아이디어. 이 기사에서는 Microsoft 소프트웨어 스택을 고수해야 하는 8가지 이유를 제시합니다.
이유 #1: .NET은 여전히 최고 중 하나입니다.
10년 이상 전에 도입된 .NET Framework는 기능이 풍부하고 철저한 테스트를 거쳤습니다. .NET 초기에는 기본 개발을 관리 코드와 결합해야 하는 것이 일반적이었지만 오늘날에는 대부분의 개발 작업이 기본적으로 지원됩니다. Oracle과 같은 회사에서도 제품과 인터페이스하기 위해 100% .NET 관리 코드(즉, ODP.NET 관리 드라이버)인 구성 요소를 출시했습니다. .NET API는 일관되고 잘 문서화되어 수백만 명이 사용합니다.
MSDN, StackOverflow 및 수천 개의 포럼과 블로그를 통해 제공되는 지식 기반은 방대합니다. .NET에서 몇 년 동안 개발하면서 프레임워크 버그로 인해 오랫동안 갇혀 있었던 사례를 기억할 수 없습니다. 매번 누군가가 이미 경험하고, 조사하고, 답변을 게시했는데, 항상 내가 기대했던 답변은 아니지만 여전히 나를 앞으로 나아가게 하는 것이었습니다. 다가오는 2015 릴리스와 함께 .NET Core는 오픈 소스가 되어 Windows가 아닌 시스템에서 사용할 수 있습니다.
이유 #2: ASP.NET이 진화했습니다
10년 전의 전통적인 웹-데이터베이스 Microsoft 스택을 되돌아보면 어떤 부분이 시간의 테스트에서 살아남았고 어떤 부분이 퇴색했는지 보는 것이 흥미로웠습니다. Microsoft 스택의 백엔드는 거의 변경되지 않았지만(우리는 여전히 Dependency Injection, Tasks, Linq, EF 또는 ADO와 같은 동일한 패턴 및 구성 요소 집합을 사용합니다.) 프론트엔드인 ASP.NET 조각은 "Microsoft 방식으로 수행"(예: Web Forms)에서 "원하는 방식으로 수행하고 ASP.NET을 플랫폼으로 사용"으로의 근본적인 전환. 오늘날 ASP.NET은 Bootstrap 및 AngularJS와 같은 많은 타사 기술과 통합되는 인증, 번들링 및 라우팅을 위한 강력한 인프라를 특징으로 하는 MVC 기반 프레임워크입니다. ASP.NET 사이트는 전화에서 데스크톱에 이르기까지 다양한 폼 팩터에서 멋지게 보이며 웹 API 기능을 통해 웹 서비스를 쉽게 노출할 수 있습니다. 프레임워크는 수년 동안 오픈 소스였으므로 문제가 발생하면 GitHub에서 소스를 사용할 수 있습니다. ASP.NET은 변경되었으며 더 나은 방향으로 변경되었습니다.
이유 #3: Web API의 단순성과 WCF의 힘
내가 가장 좋아하는 인용문은 Alan Kay의 다음과 같습니다. “간단한 것은 단순해야 합니다. 복잡한 일이 가능해야 합니다." WCF(Windows Communication Foundation)가 2006년에 처음 나왔을 때 그것은 단순하지 않았습니다. 동작, 끝점 및 바인딩이 압도적이었습니다. 그래서 Microsoft는 HTTP 웹 서비스를 쉽게 노출할 수 있는 사용하기 쉬운 프레임워크인 Web API를 출시했습니다. 몇 줄의 구성으로 API가 안전한 "산업 표준" 웹 서비스로 바뀝니다.
사용 사례가 "표준" 틀에 맞지 않고 API가 전선을 통해 노출되는 방식을 완전히 제어해야 하는 경우 언제든지 WCF로 대체할 수 있습니다. 수많은 구성 옵션과 후크를 통해 WCF를 사용하면 데이터를 사용자 지정 직렬화하고, 기록하고, 가로채고, 메시지를 라우팅하고, P2P 및 큐 사용 등을 할 수 있습니다. Web API는 WCF와 함께 Kay가 인용한 두 가지 원칙을 모두 제공합니다. 간단한 웹 서비스가 필요한 경우 Web API를 사용하면 몇 분 안에 완료됩니다. 서비스 요구 사항이 복잡한 경우 WCF에서 "모두"가 가능합니다. 이 두 기술은 서비스 시나리오에 대한 포괄적인 범위를 제공하며 .NET 프레임워크와 함께 미리 패키지로 제공됩니다.
이유 #4: SQL Server는 그 어느 때보다 견고합니다.
수년 동안 새로운 개발 언어, 프레임워크 및 패턴의 물결이 프론트 및 미들 티어를 통해 들어오고 데이터베이스 백엔드는 남겨두는 것처럼 보였습니다. 어쨌든 좋은 오래된 "SELECT"는 20년 전과 마찬가지로 오늘날에도 여전히 많이 사용되고 있습니다. 많은 기업이 데이터를 비즈니스의 핵심으로 여기고 핵심의 무결성을 유지하는 것이 데이터베이스 계층에서 "새로운 것"을 시도하는 것보다 훨씬 더 중요하기 때문이라고 생각합니다.
SQL Server는 트랜잭션, 참조 무결성, 백업, 미러링 및 복제를 위한 무수한 기능으로 데이터 키퍼의 주요 역할에서 탁월하지만 SQL Server를 경쟁 제품과 차별화하는 것은 나머지 Microsoft 스택과 얼마나 잘 통합되는지입니다. 신속한 개발을 위해 현재 버전 6에 있는 Entity Framework가 있습니다. 이 프레임워크는 청소년기를 지나 데이터 액세스를 간소화한다는 약속을 잘 이행하고 있습니다. 컴퓨팅 성능이 필요한 경우 .NET Framework는 SQL Server와 함께 프로세스 내에서 로드됩니다. 즉, 성능 저하 없이 .NET 코드를 저장 프로시저, 함수 또는 집계로 포함할 수 있습니다. SQL Server 2014가 메모리 내 테이블과 함께 제공된다는 사실과 함께 사용하면 SQL 및 일반 테이블만으로는 충분히 빠르게 만들 수 없는 매우 매끄러운 실시간 솔루션을 제시할 수 있습니다. 업계에서 몇 년이 지난 후에도 SQL Server는 여전히 제 RDBMS 목록의 맨 위에 있습니다.

이유 #5: 쉽게 테스트할 수 있습니다.
회사 IT 부서에서 일하면서 테스트가 없었고 아무도 "다른 것을 깨뜨릴"까봐 코드를 엉망으로 만들고 싶어하지 않았기 때문에 소프트웨어가 건드릴 수없는 블랙 박스로 변하는 것을 보았습니다. 그런 다음, 수천 개의 테스트가 있는 시스템에서 작업했으며 소프트웨어가 출시된 지 몇 년 후에 "예, 우리는 이러한 변경을 할 수 있습니다"라고 회사에 알릴 수 있어 기분이 좋았습니다. Microsoft 스택은 테스트 가능성을 염두에 두고 설계되었습니다. ASP.NET MVC에는 종속성 주입을 위한 후크가 있으며 버전 5에서는 종속성 주입이 프레임워크 자체에 포함됩니다. 중간 계층에서도 비슷한 이야기가 있습니다. 인터페이스에서 구현을 분리하기 위해 종속성 주입을 사용하므로 테스트 시간에 프로덕션 유형을 모의와 교환할 수 있습니다. 데이터베이스 측면에서도 저장 프로시저 계층에 대해 테스트하기 위한 템플릿과 함께 제공되는 SQL Server Data Tools가 있습니다. 테스트는 오늘날 소프트웨어 개발 프로세스에서 떼려야 뗄 수 없는 부분이며 Microsoft 스택은 이 새로운 현실에 잘 맞습니다.
이유 #6: 정교한 지원 생태계
지원과 관련하여 커뮤니티 포럼에서 시작하여 서버에서 현장에서 일하는 실제 살아있는 사람으로 끝나는 다양한 옵션이 있다는 것은 좋은 일입니다. Microsoft 제품의 온라인 에코시스템은 업계 최대 규모 중 하나입니다. 결국 Microsoft는 소프트웨어 개발자인 Bill Gates에 의해 시작되었습니다. Bill Gates는 개발자의 광범위한 채택을 Microsoft 제품 확산의 핵심으로 보았습니다. 이는 이러한 개발자들에게 많은 지원을 제공하는 것을 의미했습니다.
Microsoft는 직원들이 작업 중인 기술에 대해 블로그에 게시하도록 권장한 최초의 기업 중 하나였으며 나머지 업계는 확실히 따라잡았지만 오늘날 Microsoft에서 직접 제공하는 교육용 비디오, 가이드 및 기사의 양과 품질은 여전히 아직 매우 인상적. 양질의 온라인 콘텐츠 계층은 콘텐츠 품질에 있어 일관성이 없지만 그럼에도 불구하고 그렇지 않은 것보다 훨씬 더 도움이 되는 StackOverflow와 같은 커뮤니티 기반 지원 생태계로 보완됩니다.
마지막으로 전화를 받고 Microsoft 지원에 전화할 수 있는 옵션이 항상 있습니다. 거의 사용할 필요가 없었지만 Microsoft 개발자가 코어 덤프를 분석하도록 하여 하루를 절약할 때 몇 가지 프로덕션 긴급 상황이 있었습니다. 지원 옵션의 범위는 분명히 Microsoft 스택을 사용하는 데 유리한 요소입니다.
이유 #7: Microsoft는 제품을 고집합니다.
몇 년 전만 해도 Microsoft Silverlight를 응용 프로그램의 프런트 엔드로 선택하는 것이 타당한 선택처럼 보였지만 더 이상 그렇지 않습니다. 모바일 트렌드가 한창이고 프론트 엔드 공간을 지배하는 JavaScript 프레임워크로 인해 Silverlight는 더 이상 실현 가능한 옵션이 아닙니다. 그럼에도 불구하고 Microsoft는 2021년까지 계속 지원합니다. Microsoft는 총을 고집합니다. 이는 미래의 소프트웨어 환경을 지배할 기술 트렌드가 무엇인지 알려주는 매직 에이트 볼 없이 기술 선택을 해야 하는 우리에게 좋습니다. Microsoft 스택을 사용하면 업계에서 선호하지 않는 기술이더라도 지원될 기술에 시간과 돈을 투자할 수 있습니다.
이유 #8: Visual Studio 우산
10년 전 저는 시간의 약 50%를 Visual Studio에서 작업하고 약 50%를 다른 도구에서 보냈습니다. 오늘날 분할은 Visual Studio에 압도적으로 유리합니다. IDE 호스팅을 위한 원스톱 솔루션이라는 Visual Studio에 대한 Microsoft의 비전은 Visual Studio와 일정 수준의 통합을 제공하는 Microsoft 및 타사 제품을 통해 실현되고 있습니다. SQL Server Data Tools를 사용한 데이터베이스 개발부터 Xamarin을 사용한 iPad 및 Android 앱 작성에 이르기까지 Visual Studio는 일관된 사용자 인터페이스를 통해 친숙한 개발자 환경을 제공합니다. 데이터베이스 호스팅에서 모바일 서비스에 이르기까지 다양한 서비스를 포괄하는 클라우드 플랫폼인 Microsoft Azure를 사용하는 경우에도 마찬가지입니다.
Visual Studio는 분산 클라우드 인프라의 복잡성을 난독화하여 클라우드 애플리케이션 개발 경험을 클라우드에서 호스팅되지 않는 애플리케이션 개발 경험과 일관되게 만듭니다. 모든 부분이 Visual Studio라는 우산 아래 잘 들어맞는 것처럼 보이므로 전체 개발 프로세스를 매우 효율적으로 만듭니다.
Microsoft Stack - 두 세계의 장점
오늘날에는 10년 전과 비교할 때 양질의 소프트웨어를 작성할 수 있는 선택의 폭이 훨씬 더 넓어졌습니다. 경쟁이 구글, 애플, 아마존, 마이크로소프트와 같은 거대 기업들로 하여금 안주하지 않고 계속 혁신하도록 하기 때문에 이는 확실히 좋은 일입니다. Microsoft는 지난 10년간의 기술 발전으로 인해 산 정상에서 밀려났지만 회사는 기꺼이 적응하고 현재 기술 추세의 현실에 적응하고 있음을 보여주었습니다. ASP.NET은 원래 Web Forms가 역사 속으로 사라지면서 대부분이 오픈 소스인 다른 기술과 방법론을 수용했습니다. .NET 프레임워크는 계속해서 진화하고 있으며 멀티스레딩 및 다코어 컴퓨팅을 위한 라이브러리로 새로운 영역을 개척하고 있습니다. 임박한 2015 릴리스와 함께 프레임워크의 핵심은 오픈 소스가 될 것이며 비 Windows 플랫폼으로 이식될 것입니다. 이는 포용성과 투명성을 향한 한 걸음입니다.
이러한 환영할만한 개선 사항은 테스트, 문서화 및 지원되는 소프트웨어 출시 프로세스를 오랫동안 확립해 온 회사에서 나온 것입니다. Microsoft 스택을 사용하면 최신 언어 및 프레임워크로 작업하는 즐거움과 개발 업계에서 수십 년의 경험을 가진 소프트웨어 거물이 뒷받침하는 안정성을 얻을 수 있습니다. 이것이 제가 오늘 Microsoft 스택을 추천하는 이유입니다.