Microsoft가 오랜 전통의 기함급 통합 개발 환경인 Visual Studio를 처음 발표한지도 13년이 지났습니다. 1997년 첫 Visual Studio 릴리스부터 Visual Basic과 Visual C++ 버전 5는 하나의 공통된 IDE에 속하게 되었습니다. 여기에는 또한 Visual InterDev, Microsoft Transaction Server, Visual SourceSafe 5.0 등 한때 이름을 떨쳤던 기술이 적용된 Enterprise Edition이 포함되었습니다. 이 릴리스의 핵심적인 목표는 개발자가 구성 요소를 사용하여 분산 응용 프로그램(클라이언트/서버 응용 프로그램과 웹 응용 프로그램 모두)을 구축할 수 있게끔 돕는 것이었습니다.
그 후 우리 개발자들은 많은 변화를 겪었습니다. 클라이언트/서버와 웹 아키텍처의 변형이 여전히 코딩 분야를 지배하고 있지만 응용 프로그램의 범위와 요구 사항은 동종 시스템과 강력한 형식의 개체 대 개체 호출이라는 영역을 넘어 확장되었습니다.
이제 REST(Representational State Transfer) 및 그 관련 기술이 주요 기본 통신 메커니즘으로 자리잡습니다. 응용 프로그램은 클라우드 기반 아키텍처로 돌아서며 확장성, 신뢰성, 그리고 데이터 보안을 타사의 손에 맡깁니다. 웹 응용 프로그램 패턴은 범용화된 스타일과 표준에 따릅니다. 프로세서 속도가 현재의 칩 기술에서 이론적 한계에 가까워지고 다중 코어 시스템을 통해 하나의 시스템으로 더 높은 성능을 뽑아내는 새로운 방법이 등장하면서 하드웨어도 변화합니다.
소프트웨어와 소프트웨어 개발자의 요구 사항이 전례 없는 수준으로 높아진 이 환경에 Visual Studio 2010이 출시됩니다. 또한 새로운 기능으로 무장한 Visual Studio 2010은 여러 플랫폼, 코어, 스타일 및 표준에 걸쳐 확장되는 환경에서 점점 더 높아지는 소프트웨어 요구 사항을 충족할 준비가 되어 있습니다. 이 기사에서는 개발자가 현재와 같은 복잡한 업계에서 성공적인 솔루션을 구축할 수 있도록 지원해야 한다는 과제를 Visual Studio 2010이 해결하는 과정을 알아봅니다. 여기서 새로운 기능을 모두 다루지는 않습니다. 이 기사의 목표는 개발자가 일상적인 작업에 즉시 사용할 수 있는 몇 가지 특정 기능을 조명하는 것입니다. 전체 기능 목록은 제품 설명서를 통해 언제든 확인할 수 있습니다.
Visual Studio IDE 개선
소프트웨어 개발에서 다루는 시나리오가 점점 더 복잡해지면서 개발자들은 생산성 향상에 대한 압박을 느끼는 경우가 많습니다. Visual Studio 2010은 생산성에 도움이 되도록 편집기 자체에 여러 새로운 시각적 기능을 추가했습니다. 이 섹션에서는 시각적 기능 중 세 가지를 살펴보겠습니다.
Visual Studio 2010 IDE에서 비교적 간단하게 확인할 수 있는 개선 사항은 자식 창을 IDE 부모 창 외부로 끌어내는 기능입니다. 모니터 값이 저렴해진 덕분에 개발자는 작업에 두 개 이상의 모니터를 사용하곤 하는데, 이 새로운 기능을 통해 코딩 및 디자인 창을 여러 화면에 걸쳐 확장할 수 있습니다.
사용 방법 창의 탭을 클릭한 다음 Visual Studio IDE 창 밖으로 끌어내면 됩니다. 창을 다시 도킹하려면 제목 표시줄을 클릭하고 IDE 영역 안으로 끌어와서 제목 표시줄을 다른 창의 탭과 나란히 두기만 하면 됩니다. 다시 도킹할 때 창이 올바르게 정렬되는 지점이 되면 창이 어둡게 변하는데, 이 상태에서 놓으면 다시 도킹됩니다. 그림 1은 IDE의 부모 창 밖으로 빼낸 코드 창을 보여 줍니다.
그림 1 IDE에서 창 끌어내기
Visual Studio 2010 편집기의 또 다른 유용한 새 기능은 세로 텍스트 블록을 묶음으로 선택해서 편집할 수 있는 기능입니다. 긴 항목 목록을 편집하다 보면 똑같은 키보드 입력을 빠르게, 반복적으로 하곤 합니다(예: "n+아래쪽 방향키+왼쪽 방향키"를 지루하게 반복). 가장 자주 발생하는 문제라고 하긴 어렵지만 종종 일어나곤 하며, 그럴 때 많은 개발자는 세로 블록 전체를 선택한 다음 똑같은 변경 작업을 모든 줄에 한 번에 적용하는 기능이 있으면 좋겠다는 생각을 합니다. Visual Studio 2010은 이러한 블록 편집 기능을 제공합니다.
사용 방법 Alt 키를 누른 채로 편집할 세로 항목을 선택합니다. 강조 표시된 영역은 한 줄을 편집할 때와 똑같이 작동하지만 편집 내용은 그림 2에서 볼 수 있듯이 선택한 모든 줄에 동시에 복제됩니다.
그림 2 묶음 선택
코드의 참조를 위한 유용한 강조 표시 기능도 있습니다. 편집기에서 변수, 개체, 메서드, 속성, 형식 또는 기타 기호를 클릭하면 해당 기호에 대한 코드의 모든 참조가 강조 표시되므로 이 항목이 사용되는 위치를 신속하게 찾을 수 있습니다.
사용 방법 형식/변수/메서드 등을 클릭하면 다른 인스턴스가 강조 표시됩니다. 그림 3은 jumpList라는 변수에 대해 이 기능이 적용된 모습입니다. 마우스로 클릭하자 코드에서 이 변수가 사용된 지점에 모두 회색 음영이 표시된 것을 볼 수 있습니다..
그림 3 강조 표시된 기호
병렬 프로그래밍 지원
새로운 IDE 기능으로 조금 더 깊이 들어가서, 이번에 다룰 중요한 새 기능은 병렬 프로그래밍에 대한 지원입니다. Visual Studio 2010에는 병렬 응용 프로그램의 디버깅과 분석에 유용한 진단 도구가 함께 제공됩니다. 그러나 도구에 들어가기 전에 병렬 프로그래밍이 무엇인지에 대해 간단히 살펴보고, 그 다음 런타임 및 라이브러리가 이 새 기능을 어떻게 구현하는지 보도록 하겠습니다.
요즘은 표준 개발자 시스템이 두 개 이상의 프로세서를 탑재한 다중 코어 시스템인 경우가 많고, 추세도 더 많은 코어를 탑재한 시스템으로 흐르고 있습니다. 다중 코어 시스템 추세에 영향을 미치는 요인으로는 순수한 기술 혁신 외에 전원 절약이나 클록 속도의 현실적인 제약, 전력 소모 및 발열 등도 있습니다. 업계 유력 인사들 일부는 앞으로 몇 년 내에 주류 시스템에 50개 이상의 코어가 탑재될 것으로 예상합니다.
여기에 문제가 있습니다. 다중 코어 혁명이 일어나기 전에는 더 빠른 시스템이 곧 더 빠른 응용 프로그램 실행 속도를 의미했습니다. 그러나 단일 코어에 묶이는 소프트웨어(현재 대부분의 소프트웨어)는 이 새로운 아키텍처를 활용할 수 없습니다. 따라서 앞으로는 다중 코어 아키텍처를 대상으로 하는 것이 중요합니다. Visual Studio 2010과 .NET Framework 4가 나오기 전에는 두 개 이상의 코어를 활용하는 코드를 작성하기가 어려웠습니다. 이 과제를 해결하기 위해 이번 릴리스에는 개발자가 다중 코어 시스템을 이용하는 데 도움이 되도록 런타임에 대한 몇 가지 업데이트와 새로운 형식, 라이브러리 및 도구가 포함되었습니다.
.NET Framework 4에는 병렬 확장이 포함되며, 병렬 확장은 새로운 TPL(Task Parallel 라이브러리), 새로운 PLILQ 실행 엔진, 그리고 몇몇 새로운 CDS(Coordination Data Structure)로 구성됩니다. TPL에는 두 가지 기본 클래스가 포함됩니다. 이 클래스 중 하나인 System.Threading.Tasks.Parallel에는 For 및 ForEach 메서드의 병렬 버전과 같은 병렬 구문이 포함됩니다. PLINQ 실행 엔진은 이름이 암시하듯 LINQ to Objects의 병렬 버전으로, LINQ의 Enumerable 클래스 대신 ParallelEnumerable 클래스를 제공합니다. PLINQ 사용 방법은 LINQ to Objects 사용 방법과 비슷하지만 똑같지는 않습니다. 마지막으로 CDS에는 스레드로부터 안전한 컬렉션 및 동기화 기본형 그룹이 포함되는데, 이들의 역할은 병렬 시나리오를 간소화하는 것입니다. CDS에는 스레드로부터 안전한 컬렉션에 있음직한 익숙한 요소들(예: ConcurrentDictionary, ConcurrentQueue 및 ConcurrentStack)과 동기화 형식(SemaphoreSlim, SpinLock, SpinWait 등)이 포함됩니다.
Visual Studio 2010은 새로운 병렬 스택 창, 병렬 작업 창 및 동시성 시각화 도우미를 통해 병렬 확장을 지원합니다. 이러한 창은 모두 특정 실행 시점에 다양한 작업의 위치를 파악하는 데 유용하도록 고안되었습니다. 병렬 스택 창에는 여러 작업들이 전용 경로를 통해 어떻게 진행되고 있는지와 이러한 작업에 대한 호출 스택이 표시됩니다. 작업 추상화 관점에서 보거나 스레드로 직접 보도록 선택할 수 있습니다. 그림 4는 작업 추상화 뷰 옵션이 표시된 런타임의 병렬 스택 창을 보여 줍니다.
그림 4 Visual Studio 2010의 병렬 스택 창
병렬 작업 창은 새로운 작업 기반 프로그래밍 모델을 지원하기 위한 용도로 추가되었습니다. 응용 프로그램이 중단 모드에 있는 경우 이 창을 사용하여 작업 목록, 각 작업에 대해 현재 실행 중인 메서드, 계열 스레드, 응용 프로그램 도메인, 작업 ID와 같은 항목을 볼 수 있습니다. 이 창은 단순한 정적 뷰 이상의 기능을 제공합니다. 특정 작업을 클릭하면 IDE에서 현재 실행 중인 코드를 전면으로 가져와 이 작업의 상태를 보여 줍니다. 그림 5는 샘플 응용 프로그램에 대한 이 창을 보여 줍니다. 이 창을 병렬 스택 창과 함께 사용하면 실행 중인 코드를 신속하게 살펴볼 수 있습니다.
그림 5 Visual Studio 2010의 병렬 작업 창
마지막으로, Visual Studio 2010에는 병렬 응용 프로그램 분석을 심화하기 위한 새로운 동시성 시각화 도우미가 있습니다. 이 창은 다른 두 창에 비해 훨씬 더 복잡하며 현재 웹 프로젝트는 지원하지 않습니다. 이 창의 목적은 다중 코어 또는 다중 스레드 시나리오에서 응용 프로그램과 환경 간의 상호 작용에 대한 시야를 제공하는 것입니다. 여기에는 세 가지 뷰가 있습니다.
- CPU 사용률 뷰에는 프로세서 활동이 표시됩니다.
- 스레드 뷰에는 응용 프로그램 스레드의 상호 작용이 표시됩니다.
- 코어 뷰는 스레드가 코어 사이를 어떻게 이동하는지에 대한 시야를 제공합니다.
동시성 시각화 도우미는 Windows용 이벤트 추적에 의존하므로 Windows Vista 이상에서 실행되어야 합니다. 기본적인 텍스트에서 전체적인 그래픽 표현까지 다양한 모습의 이러한 뷰는 고르지 못한 CPU 부하 분산, 실행 병목 지점, 경합 및 기타 잠재적인 성능 저하 요인에 의해 발생하는 코드의 비효율성을 찾아 줍니다. 그림 6은 프로파일링된 응용 프로그램에 대한 스레드 사용량이 표시된 동시성 시각화 도우미를 보여 줍니다.
그림 6 Visual Studio 2010의 동시성 시각화 도우미
웹 업데이트
여기서 설명한 전반적인 업데이트 외에 Visual Studio 2010으로 전환하는 웹 개발자를 위한 몇 가지 중요한 개선 사항도 있습니다. 물론 새로운 MVC(Model-View-Controller) 프로그래밍 모델 도구도 포함되며, 이에 대해서는 다음 섹션에서 다루겠습니다. 또한 클라이언트 및 서버측 웹 기술을 위한 웹 개발 환경도 개선되었으며 새로운 원클릭 웹 배포 모델도 있습니다. 일단 ASP.NET AJAX 및 이와 관련된 IDE의 새로운 기능부터 살펴보겠습니다.
ASP.NET AJAX 도구는 Visual Studio 2008부터 Visual Studio에 포함되었습니다. 그러나 서버 위주의 템플릿으로 인해 일부 개발자는 클라이언트측 개발에는 이 도구의 가치가 크지 않다고 생각하게 되었습니다. 이전부터 클라이언트측 기능도 항상 포함되었지만 Visual Studio 2010에는 ASP.NET AJAX의 클라이언트와 서버측 기능 모두 제대로 활용되도록 추가 지원이 포함되어 있습니다. 클라이언트측 템플릿과 컨트롤은 개선된 클라이언트 데이터 액세스 기능을 활용하는 데 유용하므로 새로운 기능 목록에서 중요한 부분입니다. 그러나 jQuery 통합과 같은 다른 많은 새로운 항목도 살펴볼 가치가 있습니다.
Visual Studio 2010과 .NET Framework 4가 나오기 전에는 소프트웨어 다운로드를 사용하고 Microsoft AJAX Library를 Visual Studio에 통합하는 경우 ScriptManager를 추가할 때 모든 요소가 페이지에 삽입되었습니다. 이번 릴리스에서는 Microsoft AJAX Library와 AJAX Control Toolkit가 결합되었습니다. 또한 Microsoft AJAX 팀이 라이브러리를 리팩터링한 덕분에 전체를 선택하거나 아무것도 선택하지 않는 단순한 두 가지 옵션에서 벗어나 원하는 개별 부분을 요청할 수 있게 되었습니다. 모드를 지정하여 Microsoft AJAX Library 전체를 요청하거나 아무것도 요청하지 않거나 특정 부분만 요청할 수 있습니다.
사용 방법 ScriptManager 태그에 AjaxFrameworkMode 특성만 포함하면 됩니다. 다음과 같이 Disabled, Enabled 또는 Explicit으로 설정할 수 있습니다.
<asp:ScriptManager ... AjaxFrameworkMode="Disabled"/>
Disabled는 Microsoft AJAX 프레임워크를 로드하지 않음을 의미합니다. Enabled는 이전 버전의 동작(전체 라이브러리 로드)을 수행함을 의미합니다. Explicit을 사용하면 로드할 Microsoft AJAX Library 파일을 지정할 수 있습니다. 런타임에 로드된 페이지에서 소스 보기를 사용하여 이를 확인할 수 있습니다.
비슷한 방법으로, 새로운 CDN(콘텐츠 배달 네트워크) 특성은 최신 버전의 스크립트 라이브러리를 사용할 수 있도록 합니다. 이전에는 프로젝트에 jQuery 또는 Microsoft AJAX와 같은 스크립트 라이브러리를 포함하는 경우 해당 릴리스에서는 이 포함한 버전으로만 고정되었습니다. 이제는 솔루션에 고정된 버전을 넣지 않고 웹에서 최신 버전을 다운로드하도록 요청할 수 있습니다.
사용 방법 asp:ScriptManager 태그에 EnableCdn 특성을 포함하고 “true”로 설정하면 됩니다.
<asp:ScriptManager ... EnableCdn="true"/>
ASP.NET AJAX 4.0에서는 순수 클라이언트측 템플릿도 정의할 수 있습니다. 자리 표시자 <ItemTemplate>을 설정한 다음 런타임 값(예: JSON에 바인딩된 개체)에 따라 클라이언트에서 렌더링하도록 두면 됩니다. 런타임이 사용자 대신 인스턴스화를 수행하므로 이를 위한 DOM 코딩이 필요 없습니다.
ASP.NET AJAX 4.0의 가장 유용한 추가 기능 중 하나는 새로운 DataView 컨트롤과 클라이언트 템플릿을 사용하여 클라이언트에 손쉬운 액세스와 2방향 데이터 바인딩을 제공하는 개선된 클라이언트 데이터 액세스입니다. 이 기능은 ASMX 웹 서비스, WCF 서비스, WCF 데이터 서비스, MVC 컨트롤러, 또는 JSON을 반환하는 모든 것을 사용하도록 설계되었으며, 이러한 작업을 온전히 클라이언트측 코드에서 수행합니다.
DataView 컨트롤은 클라이언트 템플릿 지원을 위한 기본 컨트롤입니다. 이 컨트롤은 ListView 컨트롤과 비슷하게 작동하지만 순수하게 클라이언트측에서 구현됩니다. 이 컨트롤을 통해 클라이언트에서 템플릿을 정의하고 런타임에 데이터를 가져온 다음 레코드를 표시할 때 서식을 적용할 수 있습니다.
사용 방법 준비 작업은 다음과 같이 매우 기본적인 단계로 이루어집니다. Northwind SQL 데이터베이스에 엔터티 데이터 모델을 만들고, 이것을 아무 변경 없이 그대로 가져오는 일반적인 WCF 데이터 서비스를 사용합니다. 이는 Employees 테이블을 쿼리에 사용할 수 있음을 의미합니다. 이렇게 했으면 템플릿으로 사용할 컨트롤을 선택한 다음 여기에 ID 특성과 class=“sys-template” 특성을 지정합니다. 데이터 뷰를 만들 때 이 ID가 바인드에서 가져온 데이터의 대상을 나타내는 데 사용됩니다. 수동으로 바인딩할 수 있지만 중괄호를 사용하여 태그에 필드 이름을 직접 포함하는 구문도 있으며, 이는 데이터를 가져와 바인딩할 때 대체됩니다. 이 작업을 수행하는 구문은 여러 개 있지만 이를 실행하기 위한 스크립트 및 태그를 읽기 좋게 작성하는 방법 중 하나는 그림 7과 같이 이중 중괄호를 사용하는 것입니다.
그림 7 DataView 컨트롤로 개선된 데이터 액세스
... <script type="text/javascript"> Sys.require([Sys.components.dataView, Sys.components.adoNetServiceProxy], function () { var adoNetDataServiceProxy = new Sys.Data.AdoNetServiceProxy('NWDataService.svc'); Sys.create.dataView("#employeetemplate", { dataProvider: adoNetDataServiceProxy, fetchOperation: "Employees", autoFetch: true }); }); </script> </head> <body> <div id="employeetemplate" class="sys-template"> <span>{{ FirstName }}</span><br/> </div> </body>
ASP.NET AJAX에서 또 다른 주목할 만한 점은 jQuery와 훨씬 더 밀접하게 통합되도록 설정되었다는 것입니다. jQuery 개발자가 ASP.NET AJAX의 컨트롤을 이용할 수 있도록 하기 위해 이제 모든 AJAX Control Toolkit 컨트롤은 자동으로 jQuery 플러그 인으로 노출됩니다. 이는 jQuery 개발자가 개발 스타일을 변경하지 않고도 컨트롤을 사용할 수 있음을 의미합니다. 쉽게 생각해서 jQuery에 대한 확장으로 보면 됩니다.
ASP.NET AJAX 영역 외에도 ASP.NET 프로그래밍 환경의 여러 부분이 향상되었습니다. Web Forms의 URL 라우팅은 URL에 깔끔하고 논리적인 느낌을 부여하여 SEO(검색 엔진 최적화)에 훨씬 더 유리하고 사람이 읽기에도 더 편하도록 합니다. 요청을 적절한 리소스에 매핑하는 global.asax 파일에 경로를 정의할 수 있습니다. 이는 SEO를 개선하는 데도 도움이 되지만 그림 8에서 볼 수 있듯이 페이지 경로가 예측 가능한 형태를 취할 수 있게 됩니다.
그림 8 Visual Studio 2010의 URL 라우팅 개선
New URL Routing Format: /CurrentPosition/Bob/Tester Old URL Style: /CurrentPositions.aspx?name="Bob"&role="Tester"
시작 웹 사이트, 더 깔끔한 HTML 및 작아진 구성 파일 등 웹과 관련된 향상된 부분이 더 많이 있지만 여기서 모두 다 설명할 수는 없으므로 이제 MVC 도구 추가로 넘어가겠습니다.
MVC 통합
MVC 아키텍처 패턴은 잘 정의된 경계와 명확한 기능별 코드 분류를 통해 유지 관리와 테스트에 용이한 웹 응용 프로그램을 구축하는 데 널리 사용되는 방법입니다. MVC는 ASP.NET 프레임워크를 십분 활용하는 ASP.NET 프로그래밍 스타일입니다. Web Forms 대신 사용할 수 있지만 이를 대체하지는 않습니다. 두 가지 모델은 특정 시나리오와 기술 집합에 따라 모두 매우 뛰어난 기능을 제공합니다. 개발자는 이제 모두 ASP.NET을 기반으로 하고 Visual Studio 2010에서 완전히 지원되는 웹 응용 프로그램의 프로그래밍 모델을 선택할 수 있습니다.
MVC 버전 2 및 계열 도구들(각 Visual Studio 릴리스 사이에 제작되는 도구)은 그림 9에서 볼 수 있듯이 두 가지 프로젝트 템플릿과 함께 Visual Studio 2010 IDE에 통합되었습니다.
그림 9 Visual Studio 2010의 MVC 프로젝트 템플릿
Visual Studio 2010 릴리스에서 MVC 프로그래밍 모델은 세 가지 개선 영역에 집중했습니다. 첫 번째는 더 향상된 영역 분리입니다. 이는 비즈니스 논리 분리를 위한 새로운 RenderAction 메서드, 응용 프로그램의 기능을 분할하기 위한 "하위 응용 프로그램"을 만드는 데 사용되는 Areas 등을 통해 코드의 유지 관리가 더 향상된다는 것을 의미합니다. 두 번째 개선 영역은 유효성 검사로, 클라이언트에 대한 개선된 유효성 검사 규칙 수립과 데이터 주석을 통해 더 쉬워졌습니다. 마지막으로 도우미의 개선입니다. 이제 템플릿 기반 도우미와 강력한 형식의 도우미가 있으므로 엔터티에 대한 UI를 자동으로 생성할 수 있습니다.
사용 방법 RenderAction을 사용하면 여러 컨트롤러에 걸쳐 논리의 한 부분을 더 쉽게 공유할 수 있습니다. 뷰 내에서 RenderAction 메서드를 호출하려면 다음 스크립트를 사용하십시오(HRController 내에서 NewEmployee 작업을 호출함).
<% Html.RenderAction("NewEmployee" "HRController"); %>
SharePoint 통합
Visual Studio 2010의 또 다른 중요한 도구 통합은 SharePoint Foundation(이전의 Windows SharePoint Services)을 위한 템플릿 추가입니다. Visual Studio 2010에는 SharePoint Foundation을 위한 12개의 새로운 템플릿과, Visual Studio 2008의 Visual Studio Tools for Office 추가 기능에 있는 SharePoint 2007 순차 및 상태 시스템 워크플로 템플릿이 포함됩니다. 이러한 템플릿은 생산성 및 유연한 배포를 중심으로 SharePoint 개발 수준을 최상급으로 승격시켜 줍니다.
SharePoint Foundation 자체는 사용자 관리, 기본 목록 인프라 및 사이트 모델과 같은 구성 요소를 통해 기존의 확장을 위한 단순한 포털에서 이제는 처음부터 응용 프로그램을 구축하기 위한 플랫폼으로 주 사용처가 변화되고 있습니다. 이러한 부분들은 데이터 액세스, LOB(기간 업무) 통합 및 워크플로 측면에서 중요한 진전입니다. 또한 더 유연해진 배포 모델도 있습니다. 현재 많은 기업들은 방대한 SharePoint 설치 기반을 보유하고 있으며, 따라서 새로운 SharePoint 응용 프로그램의 애드혹 배포에 대해 더 신중을 기할 수밖에 없습니다. 새로운 유연한 배포 모델을 통해 이제 새 설치 시 전체 SharePoint 환경에 배포할 필요 없이 특정 그룹에 국한시킬 수 있습니다.
Visual Studio 2010에서는 SharePoint 응용 프로그램 구축을 위한 도구 옵션이 대폭 개선되었습니다. 사실 이를 위한 강력한 기능은 이전에도 있었지만 처음 배우기가 상당히 어려웠습니다. 이번 릴리스에서는 SharePoint 지원이 도구에 직접 포함되어 매우 편리합니다. 여기에는 BCS(비즈니스 연결 서비스), 워크플로, 개선된 설계 지원, LINQ to SharePoint 및 시각적 웹 파트에 대한 개선된 설계 지원과 유연한 통합 디버깅 배포 도구가 포함됩니다. 또한 SharePoint Designer 도구에서 Visual Studio 2010으로 항목을 가져오기 위한 브리지도 향상되었습니다.
사용 방법 Visual Studio 2010에서는 새로운 디자인 화면을 통해 시각적 웹 파트를 만들기가 훨씬 더 쉬워졌습니다. 그림 10과 같이 새 프로젝트를 시작하고 SharePoint | 시각적 웹 파트를 선택하면 됩니다.
그림 10 Visual Studio 2010의 SharePoint 시각적 웹 파트 템플릿
이 기능을 위해서는 개발자 시스템에 SharePoint가 설치되어 있어야 하지만 그 과정이 예전만큼 어렵지는 않습니다. Windows Vista SP1 이상 또는 Windows 7을 사용하는 경우 시스템에 직접 SharePoint를 설치하면 되므로 Windows Server를 설치하거나 VM을 설정하는 일에 대해 걱정할 필요가 없습니다.
Visual Studio 2010에서 디버깅을 위한 솔루션을 설치할 위치를 지정하라는 메시지가 표시됩니다. 편집기가 열려 있는 경우 왼쪽 하단의 디자인 탭을 클릭하고 컨트롤을 화면으로 끌어서 놓는 간편한 방법으로 시각적으로 웹 파트를 만들 수 있습니다. 도구 상자가 보이지 않는다면 보기 메뉴 | 도구 상자를 통해 열어야 합니다.
Windows 7 개발
Windows 7의 인기가 높아지고 있으므로 개발자는 새로운 Windows 7 플랫폼에서 제공되는 풍부한 환경을 이용하도록 응용 프로그램에 기능을 추가하기를 원할 수 있습니다. Windows 7 관련 기능을 추가하는 방법은 다양합니다. 인기 있는 새로운 기능 중 하나는 새로운 작업 표시줄입니다. 사용자들의 빠른 도입과 프로그래밍의 용이함을 감안할 때 Windows 7을 대상으로 하는 응용 프로그램에서 이 기능을 사용하는 것은 좋은 생각입니다.
작업 표시줄은 이전 Windows 버전의 빠른 실행 작업 표시줄을 대체합니다. 작업 표시줄은 기본적으로 Windows 7 화면의 하단을 따라 펼쳐져 있으며, 응용 프로그램을 여기에 "꽂아" 놓을 수 있습니다. 또한 이를 통해 응용 프로그램에 점프 목록(도킹된 아이콘을 마우스 오른쪽 단추로 클릭하여 이용할 수 있는 빠른 링크 모음), 작업 표시줄 미리 보기(응용 프로그램이 열린 창을 작게 축소해서 표시)와 같은 요소를 적용할 수 있습니다. 작업 표시줄은 관리 코드(Windows 7 API Code Pack 사용)와 비관리 코드에서 모두 프로그래밍하기 쉽고, Windows 7에서 실행되는 응용 프로그램 구축의 이점을 활용하고자 하는 개발자가 가장 관심을 가져야 할 부분입니다.
사용 방법 사용자는 시작 메뉴, 탐색기 또는 작업 표시줄 자체에서 아이콘을 마우스 오른쪽 단추로 클릭하는 방법으로 간단히 응용 프로그램을 작업 표시줄에 고정하거나 작업 표시줄에서 제거할 수 있습니다. 응용 프로그램을 고정하려면 응용 프로그램(문서가 아니라 응용 프로그램 자체) 아이콘을 마우스 오른쪽 단추로 클릭하고 "작업 표시줄에 고정"을 선택합니다. 작업 표시줄에서 제거하려면 같은 과정 후 "이 프로그램을 작업 표시줄에서 제거"를 선택합니다.
작업 표시줄은 응용 프로그램의 시각적 측면과 기능적 측면을 모두 개선시켜 줍니다. 실행 중인지 여부와 관계없이 모든 프로그램을 작업 표시줄에 고정할 수 있습니다. 고정된 아이콘은 응용 프로그램을 시작하거나 최소화된 창을 나타낼 수 있습니다. 작업 표시줄의 아이콘 위로 커서를 이동하면 응용 프로그램이 실행 중인 경우 핫 트래킹이라고 하는 멋진 시각 효과가 나타납니다. 핫 트래킹은 두드러지는 아이콘 색으로 아이콘을 강조 표시합니다. 물론 고정된 아이콘 바로 위에 실행 중인 응용 프로그램 인스턴스의 미리 보기도 표시됩니다.
작업 표시줄에는 Aero Peek라는 기능도 있습니다. 이 기능을 보려면 커서를 창 미리 보기 위로 이동합니다. 그러면 선택한 미리 보기의 창이 전면으로 나와 표시되며 다른 창들은 어둡게 표시됩니다. 이는 사용자가 포커스를 변경하거나 키를 누를 필요 없이 숨겨진 최소화된 창을 간단히 살펴보는 데 유용한 기능입니다.
응용 프로그램 추적을 위해 실행 중인 응용 프로그램 인스턴스에는 응용 프로그램 ID가 지정되며 작업 표시줄의 해당 응용 프로그램 아이콘에 따라 인스턴스가 정렬됩니다. 개발자는 TaskbarManager 및 JumpList 클래스를 사용하여 응용 프로그램에서 프로그래밍 방식으로 작업 표시줄과 상호 작용할 수 있습니다. 이러한 클래스를 사용하려면 code.msdn.microsoft.com/WindowsAPICodePack의 무료 Windows 7 API Code Pack을 다운로드하여 어셈블리를 참조해야 합니다.
Windows SDK 팀에서 제작한 이 코드 팩을 통해 작업 표시줄을 프로그래밍 방식으로 사용할 수 있습니다. 또한 이 코드 팩에는 Windows 7의 향상된 기능이 적용된 여러 샘플 응용 프로그램이 포함되어 있습니다. 코드 내에서 컴파일된 어셈블리에 대한 참조를 설정하면 됩니다(이 예에서는 Taskbar 프로젝트 탐색).
또한 여러 개의 실행 중인 응용 프로그램 인스턴스에 동일한 응용 프로그램 ID 또는 각기 고유한 응용 프로그램 ID를 지정하여 작업 표시줄에서 이러한 인스턴스를 그룹화하거나 서로 분리할 수 있습니다. 응용 프로그램 인스턴스에 고유한 ID를 지정하려면 Application.Run을 호출하기 전에 응용 프로그램 ID를 설정해야 합니다. 자식 창에 고유한 작업 표시줄 아이콘만 부여하려면 응용 프로그램 ID를 언제든 바꾸면 됩니다.
사용 방법 자식 창에 고유한 작업 표시줄 아이콘을 지정하려면 JumpList 클래스를 사용하여 정적 메서드 CreateJumpListForIndividualWindow를 호출하고 자식 창에 응용 프로그램 ID와 창의 핸들을 전달합니다. 코드는 다음과 같습니다.
childWindowJumpList = JumpList.CreateJumpListForIndividualWindow( childWindowApplicationId, this.Handle);
Windows Azure 통합
클라우드 컴퓨팅은 기존의 구내 및 웹 호스팅 아키텍처 솔루션에 대한 유력한 대안으로 급부상하고 있습니다. 간단히 말해, 클라우드 컴퓨팅은 소프트웨어 솔루션의 일부 또는 전체를 떼어 내 주문형 확장과 높은 안정성을 갖춘 커다란 데이터 센터에서 모든 것을 호스팅하는 회사를 둔다는 개념입니다. Windows Azure 플랫폼은 Microsoft의 클라우드 컴퓨팅 및 서비스 플랫폼으로, Windows Azure, SQL Azure 및 Windows Azure 플랫폼 AppFabric이라는 세 가지 서비스 집합으로 구성됩니다.
Windows Azure는 응용 프로그램 호스팅을 위한 환경으로, 클라우드의 OS라고 생각하면 됩니다. SQL Azure는 기본적으로 클라우드의 데이터베이스입니다. Windows Azure AppFabric은 클라우드에 호스팅되는 응용 프로그램이 사용하는 공통적인 구성 요소 집합입니다. Windows Azure AppFabric에는 현재 액세스 제어 서비스(페더레이션 인증 및 클레임 기반 권한 부여용)와 서비스 버스(클라우드와 구내 솔루션 간 연결용)의 두 가지 서비스가 포함됩니다.
Visual Studio 2010에는 Windows Azure 플랫폼 솔루션을 구축하기 위한 여러 프로젝트 템플릿이 포함되어 있습니다. VB.NET과 C#에 대해 모두 웹 역할용으로 4개, 작업자 역할용으로 하나의 템플릿이 있습니다. F#을 위한 작업자 역할 프로젝트 템플릿도 있습니다. VB.NET 및 C# 웹 역할 템플릿에는 ASP.NET, MVC with ASP.NET, WCF 서비스 및 CGI용으로 하나씩이 포함되어 있습니다.
Visual Studio 2010의 Windows Azure 플랫폼 프로젝트 작업 측면에서 한 가지 독특한 점은 프로젝트를 만들 때 여러 역할을 선택할 수 있다는 것입니다. 예를 들어 C#의 ASP.NET MVC 웹 역할과 VB.NET의 작업자 역할을 포함하여 새 프로젝트를 만들 수 있습니다. 클라우드 응용 프로그램에 대해 새로 만들기 | 프로젝트 환경이 조금 다른 것은 이것 때문입니다. 즉, 대부분의 다른 프로젝트 템플릿에서 볼 수 있는 단일 선택 패러다임을 통해서가 아니라 대화 상자에서 역할을 선택합니다.
사용 방법 Visual Studio 2010에서 Windows Azure 플랫폼을 대상으로 하는 프로젝트를 만들려면 그림 11과 같이 설치된 템플릿 목록에서 클라우드를 선택합니다.
그림 11 Visual Studio 2010에서 클라우드 프로젝트 형식 선택
이렇게 하면 원하는 역할을 선택할 수 있는 대화 상자가 표시되며 각 역할은 서로 다른 형식 및/또는 언어를 가질 수 있습니다. 그림 12는 ASP.NET MVC 웹 역할 한 개, VB.NET 작업자 역할 두 개 및 F# 작업자 역할 한 개가 포함된 새로운 Windows Azure 클라우드 서비스 프로젝트를 보여 줍니다.
그림 12 여러 역할과 언어로 클라우드 서비스 프로젝트 설정
다중 대상 지정
다중 대상 지정 자체는 사실 Visual Studio 2010에서 새로운 기능은 아니지만 주목할 만한 새로운 확장성 기능을 제공합니다. 많은 사람들이 다중 대상 지정의 이점과 이를 통해 Visual Studio 2010으로 이전 버전의 .NET Framework에서 실행되는 솔루션을 구축하는 방법을 모른다는 사실은 다소 의외입니다. 다중 대상 지정은 고급 디버깅 및 향상된 편집기 기능을 제공하는 최신 도구를 활용하고자 하지만 아직 코드(도는 고객)를 .NET Framework 4로 이동할 준비는 되지 않은 개발 팀을 위한 기능입니다. 다중 대상 지정을 사용하면 .NET Framework 버전 2.0, 3.0, 3.5 또는 4를 대상으로 응용 프로그램을 구축할 수 있습니다.
사용 방법 새 프로젝트를 시작할 때그림 13과 같이 드롭다운 목록에서 대상 프레임워크를 선택하기만 하면 됩니다.
그림 13 다중 대상 지정을 통해 대상 프레임워크 버전 선택
<More Frameworks(추가 프레임워크)…>(그림 13)에서 동그라미로 표시된 드롭다운 상자의 마지막 항목)를 사용하면 지원되는 대상 프레임워크를 확장할 수 있습니다. 이렇게 하면 프레임워크의 이후 버전을 추가할 수 있고, 앞으로 예정된 다른 .NET Framework 프로필까지 추가가 가능합니다. 이러한 추가 항목은 대부분의 경우 MSI를 통해 설치되겠지만 궁극적으로는 XML 설명 파일로 프레임워크 어셈블리를 시스템에 직접 복사하여 수동으로 추가할 수 있습니다.
기타
Visual Studio 2010에는 이 기사에서 다룬 것보다 훨씬 더 많은 새로운 기능이 있습니다. 회사에서 회사 리소스를 연계하는 데 유용한 사용자 지정 가능한 시작 페이지도 살펴보십시오. 또한 C++/ANSI 업데이트, 지속적으로 업데이트되는 도움말, 새로운 F# 프로그래밍 언어, Entity Framework, 프레임워크 향상, 코드 시각화를 비롯해 익힐 만한 새로운 기능이 많습니다. 이러한 기능을 갖춘 Visual Studio 2010은 현재 업계에서 기대하는 종류의 소프트웨어를 제공할 수 있는 매력적인 개발 도구입니다. 이 기사가 Visual Studio 2010이 제공하는 기능을 파악하는 데 도움이 되었기를 바랍니다. 직접 체험하고 싶다면 microsoft.com/vstudio에서 평가판을 다운로드하십시오.
Doug Turnure Microsoft Visual Studio 팀의 프로그램 관리자로 고객 의견 및 도입을 주로 담당합니다. 지금까지 개발자, 저자, 트레이너, 마케팅 담당자 등을 거쳤으며 가끔 회의 발표자를 맡기도 했습니다. 오랫동안 시애틀에서는 살지 않겠다고 다짐했었지만 지금은 시애틀에서의 생활을 즐기고 있습니다.
이 문서를 검토하는 데 많은 도움을 주신 기술 전문가인 Miguel Castro, Mark Dunn, Jim Wooley에게 감사의 말을 전합니다.
'디버깅 & 스킬 > 디버깅 툴&유틸' 카테고리의 다른 글
바운즈 체커(bounds checker) 메모리누수 정보 얻는 툴 (0) | 2013.05.07 |
---|---|
Rational Purify 메모리 누수정보 얻는 툴킷 (0) | 2013.05.07 |
프로파일과 도구들에 대한 ppt (0) | 2013.02.02 |
심볼 스토어 생성 (0) | 2012.12.23 |
Debug Diagnostic Tool (0) | 2012.12.23 |