[Build 2014] Visual Studio에서 새롭게 제공되는 기능들
Visual Studio 2013 Update 2에 대한 요약
지난 4월 2일부터 4일까지 3일간 샌프란시스코에서는 빌드(Build) 2014라는 마이크로소프트의 개발자 컨퍼런스가 개최되었습니다. 빌드는 2011년부터 매해 마이크로소프트의 주요 제품과 더불어 개발자를 위한 미래전략을 소개하고, 개발자들을 위한 백여 개 이상의 기술 세션으로 구성되는데 올해에는 그 어느 때보다 풍성하고 파격적인 내용들로 가득 채워졌습니다. 더욱이 사티야 나델라(Satya Nadella) 회장의 취임 이후의 첫 대형 개발자 행사라 내, 외부적으로 많은 관심이 집중되었던 것 같습니다. 저를 비롯하여 DPE 팀의 여러 에반젤리스트들은 각자 기술 컬럼을 통해서 이번 Build 행사에서 발표된 기술 업데이트에 대한 내용을 소개하고 있는데요, 본 컬럼에서는 개발도구 즉, Visual Studio에서 새롭게 제공되는 기능들 위주로 살펴보도록 하겠습니다.
Visual Studio Online의 공식 서비스 발표
가장 큰 변화는 그 동안 Preview로 제공되던 Visual Studio Online(이하 VSO)이 완전하게 공식 서비스를 시작했다는 것입니다. 사실 이는 본 컬럼에서 다루고자 하는 통합 개발도구인 Visual Studio 와는 직접적으로 관련이 있는 부분은 아니지만 중요한 업데이트이기에 간단하게라도 언급을 하고자 합니다. VSO는 기존에 Preview 버전으로 서비스되고 있던 클라우드 ALM 서비스인 Team Foundation Service에 다양한 고급 서비스를 추가하여 재 명명된 서비스로서, 클라우드 상에서 ALM(Application Lifecycle Management)을 이용할 수 있도록 할 뿐만 아니라 빌드 자동화 및 부하 테스트, 응용프로그램 인사이트(Application Insight) 등의 다양한 고급 서비스를 활용할 수 있도록 개선된 통합 클라우드 ALM 서비스입니다.
VSO가 공식적으로 서비스를 시작하게 됨에 따라, 온프레미스에 별도의 인프라를 준비하지 않고도 쉽게 ALM 및 웹 응용프로그램 모니터링, 클라우드 부하 테스트를 이용할 수 있게 되었기에 국내, 외 많은 기업들이 관심을 갖는 눈치입니다. 국내에서도 몇몇 글로벌 기업이 클라우드 부하 테스트에 관심을 보이고 있으며 이를 활용해 보려는 움직임이 있기도 합니다. 이에 대해서는 별도의 오프라인 세미나나 컬럼을 통해서 자세히 소개할 예정입니다.
Windows Phone 앱 개발 관련
어찌보면 개발 툴 입장에서 가장 큰 기능 추가는 Windows Store앱 및 Windows Phone 앱과 관련된 업데이트일 것입니다. 아무래도 Windows Phone 8.1 공개에 따라 그를 위한 개발기능이 Visual Studio에 탑재되어야 하기 때문이겠죠? 그렇습니다. 이번 빌드 행사를 통해서 Windows Phone 8.1을 위한 새로운 개발자 플랫폼 기능이 새롭게 공개되었는데요, 그에 따라 Visual Studio 2013 Update 2에는 Windows Phone 8 과Windows Phone 8.1용 앱을 개발하는 데 필요한 모든 도구들이 추가되었습니다.
기존에 개발된 Windows Phone 8 앱은 Windows Phone 8 과 8.1 모두에서 실행되며, Visual Studio 편집기에서 제공하는 코드렌즈나 엿보기 기능, XAML 인텔리센스 등의 향상된 기능들을 활용할 수 있습니다. 또한, 기존에 개발된 Windows Phone 8 앱은 Visual Studio 2013 Update 2를 이용하여 간단하게 Windows Phone 8.1앱으로 업그레이드를 할 수도 있습니다. 그러면 Windows Phone 8.1의 새로운 플랫폼 기능들도 활용할 수 있게 되겠죠.
Windows Store 앱 개발을 위해서 사용할 수 있는 Visual Studio의 모든 개발 도구들은 Windows Phone 8.1 앱을 개발하거나 디버깅 및 진단하기 위해서도 마찬가지로 사용할 수 있습니다. 예를 들면, 메모리 프로파일러나 UI 응답성 진단기, 에너지 소비량 측정기 등의 진단 도구들을 사용하여 여러분의 Windows Phone 8.1 앱을 분석해 볼 수 있다는 것이죠.
Universal Windows 앱
플랫폼 통합의 일환으로 Windows 8.1과 Windows Phone 8.1 앱 모두를 동일한 Windows 런타임을 기반으로 하여 구축하고자 한다면, 개발자는 새롭게 추가된 Universal Windows 앱을 활용해 볼 수 있습니다. 이는 Windows 8.1과 Windows Phone 8.1에서 대부분의 코드를 재활용할 수 있도록 해 줍니다.
Visual Studio 2013 Update 2 에서는 C#, C++, JavaScript를 개발언어로 사용할 수 있는Universal 앱 템플릿을 활용할 수 있습니다. 본 템플릿을 활용하여 솔루션을 만들면 Windows 8.1 프로젝트와 Windows Phone 8.1프로젝트가 함께 포함되어 있고 각각은 자신의 폼 팩터에 맞는 UI 요소들을 사용하게 됩니다., 또한 공유프로젝트(Shared Project) 라는 새로운 프로젝트도 추가되어 있는데요, 공유프로젝트(Shared Project)를 통해서 가능한 쉽게 코드와 자산들을 공유할 수 있습니다.
기존 응용프로그램이 있는경우에는 마우스 오른쪽 클릭을 해서 Windows 및 Windows Phone 프로젝트를 추가할 수도 있습니다.
.NET 네이티브(Preview)
더불어, .NET 네이티브의 Preview 버전이 공개되었습니다. 이는 C# 및 .NET의 생산성과 함께 네이티브 코드의 뛰어난 성능을 누릴 수 있도록 하는 새로운 기술입니다. .NET 네이티브는 메모리 사용량과 전반적인 응용프로그램의 성능 및 구동 시간을 향상시키는 네이티브 이미지를 만들기 위해서 C++ 컴파일러 최적화 도구를 사용하는 새로운 사전(ahead-of-time) 컴파일러입니다. 현재는 Preview 버전이긴 하지만, 원한다면 개발자들은 X64 및 ARM을 대상으로 하는 Windows Store 앱에 이러한 새로운 컴파일 기술을 시범 사용해 볼 수 있습니다.
Team Foundation Server 2013 Update 2 관련
사실, Visual Studio 2013 Update 2의 향상과 함께 통합 ALM 제품이라고 할 수 있는 Team Foundation Server 2013 제품도 Update 2가 공개되었는데요, TFS에도 수 많은 새로운 기능이 추가되었습니다. 이에 대한 자세한 내용은 후에 따로 다룰 예정입니다만, 간단하게만 소개하면 새롭게 추가되거나 향상된 기능으로는 Git 지원 향상, TFS Web Access에서의 백로그 관리 기능 향상, Visual Studio 전반적인 태그 기능 및 경량의 차트(Chart) 기능 등을 거론할 수 있을 듯 합니다.
더불어, 테스트 도구에도 많은 향상이 있었는데요. 특히 Windows Phone 앱을 위한 Coded UI 테스트 기능이 추가되었고 TFS 웹 엑세스에서 테스트 아티팩트들을 내보내기 할 수 있는 기능 등도 추가되었습니다.
여기서는 그러한 멋진 기능 중 Visual Studio와 연계되어 향상된 기능을 하나 소개할까 합니다. 이는 TFS 2013 Update 2 + VS 2013 Update 2가 함께 연계하여 제공하는 기능으로서, 코드 렌즈 영역에 새롭게 추가된 Incoming Changes 표시기입니다.
코드 렌즈는 C#이나 VB 소스 코드의 선언 부에 ALM과 연계된 정보 및 소스 관리와 관계된 정보를 보여주는 일종의 정보 표시 영역인데요, Visual Studio 2013에서 처음 소개된 코드 렌즈는 그 영역 안에 참조 정보, 최근에 소스를 변경한 사람, 소스와 관련된 작업항목과 버그등 다양한 표시기를 나타내 보여줍니다. 이번 Visual Studio 2013 Update 2에서 새롭게 추가된 매우 유용한 표시기는 "Incoming Changes" 표시기인데요. 이는 소스 코드의 다양한 브랜치들의 이력을 살펴볼 수 있도록 해 줍니다. 어떤 브랜치들이 있고, 누가 그 브랜치에서 작업 중이고 어떤 변경사항들이 있었는지를 확인할 수 있도록 말이죠. 관리자가 아닌 개발자 입장에서 전체적인 개발 상황을 한 눈에 살펴볼 수 있도록 하는 상당히 유용한 기능이라 할 수 있습니다.
TypeScript 1.0
더불어, TypeScript 1.0도 공식적으로 발표되었습니다. TypeScript는 지난 18개월간 CodePlex 에서 오픈소스 프로젝트로 진행되어 왔으며, Visual Studio 2012에서도 애드온을 제공하여 사용해 볼 수는 있었는데요, 이번에 1.0 버전이 공개되면서 공식적으로 새로운 발걸음을 내디딘 것이라 할 수 있습니다. 이로써 응용프로그램 규모의 JavaScript 개발을 위한 초석이 마련된 것입니다.
TypeScript는 JavaScript의 Superset이기에, JavaScript를 그대로 사용할 수 있을 뿐만 아니라 개발자가 입력한 코드를 JavaScript로 컴파일할 수 있도록 지원합니다. 더불어, 정적 타입검사, 심볼 기반 탐색, 코드 리팩토링 등의 다양한 개발 편의성도 누릴 수 있으며 이를 통해서 개발자들이 좀 더 쉽게 JavaScript를 응용하여 응용프로그램을 개발할 수 있습니다.
TypeScript 1.0 RTM 관련 도구들은 Visual Studio 2013 Update 2에 포함되어 있으며, 크로스 플랫폼 개발을 지원하기 위해서 NPM package도 제공하고 있습니다.
디버깅, 진단, 프로파일링
더불어, 이번 릴리즈에서는 새롭게 추가된 프로파일링 도구도 존재할 뿐만 아니라 기존에 제공되던 디버거 및 .NET 에서 관리되는 메모리 분석기, IntelliTrace, 성능 및 진단 허브 등도 성능이 크게 향상되었습니다.
그 내용들을 간단히 살펴보면 다음과 같습니다.
- 디버거 관련
- Visual Studio 디버거는 이제 새롭게 JSON 시각화 도구도 지원합니다. 이는 JSON 문자열을 트리뷰 컨트롤로 보여주고, 개발자가 그 안에서 검색, 강조, 복사 등을 수행할 수 있게 해 줍니다.
- .NET 에서 관리되는 메모리 분석기는 이제 캡쳐된 메모리 덤프에서 개체와 인스턴스의 값들을 검사할 수 있는 새로운 기능을 제공합니다.
- Visual Studio 디버거는 이제 새롭게 JSON 시각화 도구도 지원합니다. 이는 JSON 문자열을 트리뷰 컨트롤로 보여주고, 개발자가 그 안에서 검색, 강조, 복사 등을 수행할 수 있게 해 줍니다.
-
- 더불어, Windows Phone 8.1 에뮬레이터 안에서 웹 사이트를 디버그하는 것도 가능해졌습니다.
- 성능 도구 및 분석기 관련
- 새로운 CPU 사용량 측정도구가 성능 및 진단 허브에 추가되었습니다. 그렇기에 WPF, Console, Windows 8.1, Windows Phone 8.1 등의 프로젝트에서 이를 활용하여 다양한 분석을 할 수 있습니다. 이 도구를 통해서 어떤 기능이 CPU를 얼마나 사용하고 있는지에 대해 살펴볼 수 있으며, 그러한 데이터를 분석하여 앱이 최상의 성능을 낼 수 있도록 코드를 최적화하는 부분에 집중하여 작업할 수 있을 것입니다.
- Windows 런타임을 기반으로 하여 C#/VB/C++ 과 XAML을 프로그래밍 언어로 사용하여 구축된 앱들 및 Universal Windows 앱을 분석하기 위한 새로운 메모리 사용량 도구도 성능 및 진단 허브에 추가되었습니다
- 더불어, 이제는 성능 및 진단 허브에 있는 도구를 동시에 하나 이상 실행할 수 있게 되었습니다. 그렇기에, 성능 문제를 파악하거나 트레이드오프를 알아내는 데 있어 더 뛰어난 통찰력을 가질 수 있습니다.
- IntelliTrace 관련
- Microsoft Monitoring Agent (MMA)에 의해 수집되는 IntelliTrace 성능 이벤트에도 새로운 기능이 추가되었습니다.
- 성능 데이터 안에서 동일한 성능 이벤트를 그룹지어 볼 수 있는 기능을 제공하며, Hot path도 살펴볼 수 있게 되었습니다(자세한 내용은 클릭)
- ADO.NET 이벤트 데이터가 존재할 경우 SQL을 즉시 확인할 수 있습니다. Visual Studio의 SQL 도구를 사용해서 IntelliTrace 데이터에 캡춰된 SQL 쿼리를 곧바로 살펴볼 수 있게 해 주는 기능이 추가되었습니다.
- ASP.NET MVC 웹 사이트에서 수집된 데이터의 경우에는 Action/Controller를 쉽게 확인 및 탐색할 수 있습니다.
- MMA(Microsoft Monitoring Agent)에 의해 수집된, 예외 데이터를 포함하고 있는 IntelliTrace 파일을 살펴볼 경우, 이제는 매개변수를 파악하기가 훨씬 쉬워졌으며, 코드맵을 이용해서 호출 스택을 시각화해서 볼 수 있기에 어디서 예외가 발생되었는지도 쉽게 파악할 수 있게 되었습니다.
- Microsoft Monitoring Agent (MMA)에 의해 수집되는 IntelliTrace 성능 이벤트에도 새로운 기능이 추가되었습니다.
- Windows Store 앱
- Windows 8.1 스토어 앱을 디버깅할 경우를 위한 프리페치 트리거 기능 지원
- ContentPrefetcher가 올바르게 등록되었는 지를 확인하기 위해서 혹은 프로그램의 동작을 테스트하기 위해서 프리페치를 수동으로 트리거할 수 있습니다.
- Windows 8.1 스토어 앱을 디버깅할 경우를 위한 프리페치 트리거 기능 지원
-
- Windows Store 앱이나 Windows Phone 앱으로 테스트용 통지(Notification) 메시지를 보내기 위해서 Windows Azure Notification 허브를 사용할 수 있을 뿐만 아니라 실시간으로 결과를 확인할 수 있습니다.
Microsoft Azure 및 Web 개발
그 밖에도, Web 개발자를 위해서 새롭게 지원되는 기능이나 향상된 기능들도 상당히 많습니다. 자세한 내용은 [새롭게 추가 및 향상된 ASP.NET 및 Web 기능] 링크에서 확인하실 수 있는데요. 전체 내용은 시간이 되면 따로 한번 정리해야 할 정도로 분량이 많습니다. 그렇기에, 이번 컬럼에서는 전체 내용 중 주목할만한 부분만을 추려서 간략하게 정리하고자 합니다. 여기에는 ASP.NET MVC, Web API, Web Pages에 대한 업데이트도 포함되어 있을 뿐만 아니라 Microsoft Azure를 활용하기 위해 향상된 내용도 포함되어 있습니다.
주목할만한 부분 :
- 코드 편집기의 기능향상 및 새로운 두 파일(SASS와 JSON 파일)에 대한 편집기 지원
- 새로운 JSON 편집기 제공
- 구문 유효성검사, 코드 컬러, 인텔리센스 등의 기능 지원
- 새로운 JSON 편집기 제공
-
- 새로운 SASS 편집기 제공
- 코드 컬러, 인텔리센스, 구문 유효성검사, 정의로 이동, 색상 선택기 등의 기능 제공
- 새로운 SASS 편집기 제공
-
- LESS 편집기 관련 향상
- Knockout 인텔리센스 향상 및 Razor, CSS, LESS, SASS 페이지에서의 URL 선택기 등의 기능 제공
- LESS 편집기 관련 향상
브라우저 링크 지원 향상
- HTTPS 연결, SPA(Single Page Applications), 정적 HTML 파일 지원
ASP.NET 기본 프로젝트 템플릿 업데이트
- ASP.NET MVC, Web API, Web Pages, SignalR 등 최신 플랫폼 관련 템플릿들
Microsoft Azure 개발자를 위한 기능들
- Azure를 좀 더 편하게 이용할 수 있도록 하기 위한 기능 추가
- 파일 > 새 프로젝트 대화상자에서 Microsoft Azure 웹사이트나 가상머신에 직접적으로 웹 사이트를 생성할 수 있도록 하는 옵션을 새롭게 제공하고 있으며, 그렇게 생성한 이후에는 배포도 쉽게 할 수 있도록 지원하고 있습니다.
- Azure를 좀 더 편하게 이용할 수 있도록 하기 위한 기능 추가
-
- 서버 탐색기에 Microsoft Azure 웹 사이트를 위한 새로운 기능 추가
- 원격 웹 사이트에 있는 파일 목록 및 내용을 살펴볼 수 있는 기능
- 원격 웹 사이트에 있는 로그 파일들을 살펴볼 수 있는 기능
- 서버 탐색기에 Microsoft Azure 웹 사이트를 위한 새로운 기능 추가
-
- .NET 백엔드를 사용하는 모바일 서비스 관련 도구 지원
- 새로운 프로젝트 템플릿 및 원격 디버깅을 위한 지원
- .NET 백엔드를 사용하는 모바일 서비스 관련 도구 지원
이 밖에도 많은 버그 픽스와 많은 업데이트가 존재하지만, 핵심적인 업데이트는 위와 같습니다. 사실 위에서 설명한 내용들은 말 그대로 간략하게 정리를 한 것이기에, 개발자별로 자신과 직접적으로 관련이 없는 분야의 업데이트 내용은 다소 추상적으로 들릴 수도 있습니다. 하지만, 각각의 기술과 직접 관련된 개발자들에게는 상기 요약만으로도 대략적으로 관련 업데이트가 어떤 내용인지 이해하실 수 있을 것이라 생각합니다. 더불어, 자세한 설명은 관련 링크를 통해서 좀 더 살펴볼 수 있습니다.
참고
· Visual Studio 2013 Update 2 (Build 2014)
https://www.visualstudio.com/en-us/news/2014-apr-2-vs.aspx
· CodeLens: New ‘Incoming Changes’ Indicator
· TypeScript 1.0 (RTM)
https://www.typescriptlang.org/
· JSON Debugger Visualizer
· .NET Managed Memory Analyzer : Object Inspection
· CPU Usage tool in the Performance and Diagnostics hub
· Memory Usage Tool in the Performance and Diagnostics hub
· Combining Tools in the Performance and Diagnostics Hub
· Jump to SQL with IntelliTrace
https://blogs.msdn.com/b/visualstudioalm/archive/2014/02/10/jump-to-sql-with-intellitrace.aspx
· IntelliTrace MVC Navigation
https://blogs.msdn.com/b/visualstudioalm/archive/2014/02/12/intellitrace-mvc-navigation.aspx
· UI Enhancements for IntelliTrace
· ASP.NET and Web Tools 2013.2 for Visual Studio 2013
· Application Insights for Visual Studio Online