티스토리 뷰
Visual Studio 2008 서비스 팩 1 알아보기
엄준일 닷넷엑스퍼트 선임컨설턴트
현재 닷넷엑스퍼트(http://www.dotnetxpert.com)의 선임 컨설턴트로 제직 중이며, MS ASP.NET MVP 로 활동 중이다. ASP.NET 뿐만 아니라, 닷넷 프레임워크와 비주얼 스튜디오의 전반적인 분야로 개인 블로그(http://blog.powerumc.kr)를 운영하고 있다. 닷넷과 비주얼 스튜디오가 개발자들에게 미래의 동반자라고 확신을 하며 꾸준히 새로운 기술을 연마하고 있다.
2008년 08월 11일에 Microsoft Download 사이트를 통해 Visual Studio 2008 SP1 과 .NET Framework 3.5 SP1 이 공개가 되었다. 이전(Visual Studio 2003, 2005)의 Service Pack 을 보면 단순히 버그 픽스에 지나지 않았지만, 이번 Service Pack 은 가히 메이져급 업데이트라고 불릴 만큼 버그 픽스는 물론이고 상당히 많은 부분에서 기능 개선과 새로운 기능으로 무장하였다. 업데이트 분야도 Visual Studio 와 .NET Framework 뿐만이 아니라 Team Foundation Server, Visual Studio SDK 에도 많은 부분이 개선되었으며, 이 모든 것에 대해 손가락으로 헤아리기도 무척 벅찰 지경이다.
필자는 “Visual Studio 제품은 Service Pack 이 나와야 쓸만하다” 라는 말을 자주 들어보곤 했다. 이런 이야기는 많은 사용자들이 자질한 버그 때문에 선뜻 Visual Studio 2008 으로 업그레이드를 망설이는지 알 수 있는 대목이다. 하지만 오늘 이 글을 통해 마이크로스프트에서 얼마나 정성껏 Service Pack 을 준비하고, Visual Studio 2008 로의 업그레이드를 망설였다면 이제 더 이상 그럴 고민을 할 필요가 없는 충분한 이유를 이야기 하려고 한다.
우선 Service Pack 1 을 설치하기 전에, 아래의 표 1 의 정보에서 자신의 개발환경에 적용이 되는지부터 알아보자.
l The Microsoft .NET Framework 3.5
l The Microsoft Windows SDK
l Visual Studio 2008 Team Suite
l Visual Studio 2008 Team Edition for Database Professionals
l Visual Studio 2008 Team Edition for Software Architects
l Visual Studio 2008 Team Edition for Software Developers
l Visual Studio 2008 Team Edition for Software Testers
l Visual Studio 2008 Standard Edition
l Visual Studio 2008 Professional Edition |
기본적으로 이번 Service Pack 은 Bootstrapper(실행 모듈) 과 ISO Full Package 의 두 가지 형태의 설치 파일을 제공하고 있다. 만약 Bootstrapper 로 설치하게 되면 인터넷을 통해 Service Pack 을 다운로드 받게 된다. 그렇기 때문에 반드시 사용자의 컴퓨터는 인터넷에 연결이 되어 있어야 한다. 만약 자신이 사용하는 Visual Studio 제품이 위에 해당하지 않는 Visual Studio Express 사용자라면 반드시 [다운로드 2 Visual Studio 2008 Express Service Pack 다운로드 정보] 의 링크를 통해 설치하기 바란다.
다운로드 1 Visual Studio Service Pack 다운로드 정보
만약, 자신이 Visual Studio 2008 Express 를 사용한다면 별도의 링크를 통해 Service Pack 1 을 설치할 수 있다.
· Visual Studio 2008 Express Edition SP1 (exe)
· Visual Studio 2008 Express Edition SP1 (iso)
|
MSDN Library 도 다운로드 받을 수 있다. 하지만, 아직까지 한글 문서를 지원하지 않고 있기 때문에 한글 문서를 설치하길 원하는 독자라면 좀 더 기다려볼 수 밖에 없을 것 같다.
다운로드 3 MSDN Library for Visual Studio 2008 SP1 (영문)
이밖에도 Team Foundation Server 2008 SP1, Visual Studio 2008 SDK 1.1, 그리고 Visual Studio 2008 SP1 용 Silverlight Beta 2 Tool 도 공개가 되었으며, 아래의 주소를 통해 다운로드 받을 수 있다.
Team Foundation Server - http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=9e40a5b6-da41-43a2-a06d-3cee196bfe3d
Visual Studio 2008 SDK 1.1 - http://blogs.msdn.com/vsxteam/archive/2008/08/12/visual-studio-2008-sp1-now-available.aspx
|
다운로드 4 그밖의 Service Pack 1 다운로드 정보
ASP.NET 의 재탄생
ASP.NET 과 관련하여 웹 개발자들을 위해 이미 Visual Studio 2008 Web Development Hot-Fix Roll-Up Available 이라는 제목으로 Hot-Fix 가 공개가 되었었다. 이번 Visual Studio 2008 Service Pack 은 이 Hot-Fix 가 포함되어 설치가 된다. 그렇기 때문에 Visual Studio 2008 SP1 을 설치하기 전에 이전에 공개된 Hot-Fix 를 설치하였다면, 프로그램 추가/제거를 통해 반드시 이전에 공개되었던 Hot-Fix 를 제거하기 바란다.
Visual Studio 를 통해 복잡한 Web Form 을 개발해 본 독자라면 느린 디자인 뷰의 성능이 가장 짜증나게 하는 원인이었을 것이다. Visual Studio 2005 이후, 여러 층(Depth) 로 이루어진 HTML 페이지에서 HTML Code 를 작성하게 될 경우, 약 2~3초 정도 키보드 타이핑이 느려지거나, 소스 코드 에디터가 얼마 동안 멈춰버리는 현상이 발생하였다. 그리고 HTML 페이지를 열 때, 매우 느리게 동작하였으며, 특히 HTML 코드에서의 들여쓰기와 내어쓰기(TAB, Shift+TAB) 동작이 느렸다. 그리고 프로젝트가 여러 개의 어셈블리나 .refresh 파일을 포함하고 있을 때 빌드 속도 또한 저하되었다.
ASP.NET 에서 Service Pack 은 이렇게 대체로 눈으로 보이지 않는 성능 부분에서 많은 부분이 개선이 되었다. 필자 또한 실제로 Visual Studio 2008 과 Service Pack 1 을 설치하였을 때, 약 30% 가량의 체감 속도가 개선되었음을 느낄 수 있었다.
ASP.NET Dynamic Data(동적 데이터)
Dyanmic Data 의 Dynamic 의 의미는 Runtime 시 물리적인 데이터베이스 스키마로부터 데이터 필드(Data Field) 의 행동을 추론한다는 의미이다. 반복적으로 컨트롤을 추가하고, 로직을 작성하는 부분을 자동화 할 수 있는 템플릿을 제공하여, 화면의 디자인과 많은 코드를 줄일 수 있다. 데이터베이스의 테이블을 이용하여 원하는 데이터 모델을 만들고, 이 데이터 모델을 이용하여 마스터(Master)/디테일(Detail) 관계와 편집/삭제 기능 등을 자동으로 생성할 수 있다. 이로써 반복적인 CRUD(Create/Read/Update/Delete) 작업을 위한 코드를 최소한으로 줄일 수 있으며, 다양한 커스터마이징 방법도 제공해 주고 있기 때문에, 관심있게 살펴볼 필요가 있을 것이다.
이번 Service Pack 에는 ASP.NET MVC Preview 에서 보여주었던 System.Web.Abstractions 과 System.Web.Routing 이 포함되게 되어, 수십/수백개의 데이터베이스 테이블에 대해 동적으로 고유 URL 을 자동으로 생성해 준다. (MVC Framework 전체가 포함된 것은 아니다.)
“새 프로젝트” 에서 “Dynamic Data 웹 응용 프로그램” 을 선택하고, 필자의 블로그 데이터베이스 테이블을 LINQ to SQL 로 추가해 보았다.
그림 1 새 프로젝트 추가를 통해 Dynamic Data 웹 응용 프로그램을 추가한다
그림 2 LINQ to SQL 로 데이터베이스 테이블을 추가
웹 프로젝트의 Global.asax 에 친절하게 주석으로 추가할 코드를 설명하였으며, 주석의 설명대로 약간의 코드만 추가하게 되면 다수의 데이터베이스 테이블의 CRUD 가 자동으로 생성이 되며, 테이블간의 기본키와 외래키를 분석하여 자동으로 Master/Detail 관계를 형성해 준다.
그림 3 Dynamic Data 를 이용한 CRUD 기반의 데이터 처리
Visual Studio 2008 SP1 이전에 없던 Jscript 탭 항목이 생겼다. 이 옵션은 도구-옵션-텍스트 편집기에서 찾아볼 수 있다. 이 기능을 이용하여 자바스크립트 코드를 쉽게 포멧팅할 수 있다.
그림 4 JScript 의 서식을 지정할 수 있다
기존의 VB.NET 이나 C# 코드에서 기본 설정이 되었던 '; 입력 시 완성 문에 서식 자동 지정' 과 '} 입력 시 완성 블록에 서식 자동 지정' 등이 체크가 되어 있으면 상황에 맞에 자바스크립트 코드를 포멧팅(Formatting) 할 수 있다.
l ; 입력 시 완성 문에 서식 자동 지정 적용
적용 전 |
적용 후 |
l } 입력 시 완성 블록에 서식 자동 지정 적용
적용 전 |
적용 후 |
Javascript 인텔리센스 성능/기능 개선
Visual Studio 2008 이 출시 되었을 때, 웹 개발자들에게 Visual Studio 2005 에 비해 크게 향상된 인텔리센스 기능이 무척 인상적이었다. 하지만 이번 Visual Studio 2008 SP1 에서는 이 보다 더 강력한 기능과 보다 나은 성능을 보여준다. 인텔리센스 뿐만 아니라 풍선 도움말도 지원하게 되었다.
그림 5 JQuery Javascript 엔진에 인텔리센스를 사용
현재 공개된 몇몇의 Javascript 엔진은 Visual Studio 2008 SP1 에 대응되는 인텔리센스와 풍선 도움말을 지원하기 위한 Script 들이 공개가 되었다. 이 Script Source Code 는 아래의 [다운로드 5] 에서 다운로드 받을 수 있다.
Jquery.intellisense.js |
|
Prototype.intellisense.js |
다운로드 5 Visual Studio 2008 SP1 의 인텔리센스 기능을 위한 Javascript 엔진
ASP 에 Intellisence 지원
ASPX 확장자 뿐만 아니라, ASP 를 위해 .asp 확장자에도 인텔리센스 기능이 추가되었다. 기존의 ASP 개발자는 Visual Studio 6 버전을 이용하지 않고 최신의 Visual Studio 버전을 이용하여 강력한 툴 기능과 함께 인텔리센스 기능을 이용할 수 있다.
그림 6 ASP 에서 인텔리센스 기능 활용
AJAX.NET 개선
AJAX.NET 에 Script Combining 기능이 추가되었다. 기존에 ScriptManager 를 통해 Script References 를 등록하게 되면, 등록된 Script References 만큼을 웹 서버에 요청을 하였다. 하지만 Script Combining 을 이용하여 이러한 여러 개의 Script References 를 1개의 스크립트로 처리하게 되므로, AJAX.NET 환경의 웹 응용 프로그램에 대한 페이지 로딩 시간이 개선되었다. 아래의 그림을 통해 웹 서버로 요청의 수가 얼마나 줄었는지 알 수 있다.
그림 7 CompositeScript 에 등록하기 전
그림 8 CompositeScript 로 Script References 를 등록
그림 9 CompositeScript 에 등록 후
그리고, AJAX Browser History 기능이 추가되었다. AJAX 환경의 웹 응용 프로그램은 웹브라우져의 “뒤로가기”, “앞으로가기” 버튼을 클릭할 경우 의도하지 않았던 이전의 페이지 등으로 이동하게 되는 경험을 해보았을 것이다. 하지만 이제 하나의 페이지에서 AJAX 를 통해 UI 를 제어할 경우 웹브라우져를 통해 History 관리가 가능해졌다. 서버 사이드 컨트롤(Server-Side Controls) 뿐만 아니라, 클라이언트 사이드 컨트롤(Client-Side Controls) 에 모두 사용이 가능하다.
그림 10 .NET Framework 3.5 Enhancements Training Kit 의 AJAX Browser History 데모
.NET Framework Client Profile 의 혁신적인 배포 시나리오
.NET Framework 3.5 Client Profile(Client Profile) 은 클라이언트 어플케이션을 배포할 때 .NET Framework 의 설치를 더 빨리 할 수 있도록 많은 고객의 요구에 부응하기 위해 만들어졌다. 기존의 .NET Framework 의 재배포 모듈 크기가 197MB 인 반면, Client Profile 에서는 26.5MB 까지 작아졌다. Client Profile 은 새로운 기능이 아니라, .NET Framework SP1 에서 자주 사용하는 어셈블리와 파일 등을 분리하였다
· Common Language Runtime(CLR)
· ClickOnce
· Windows Forms
· Windows Presentation Foundation
· Windows Communication Foundation
Client Profile 은 .NET Framework 이 주로 사용되는 어셈블리와 파일이 분리되는 형태로, .NET Framework 2.0 Client 부터 별도의 어셈블리로 구성이 되어있는 형태이다. Client Profile 은 기존의 .NET Framework Full Package 가 배포되어 버젼별로 관리되는 위치에 배포가 되기 때문에, 클라이언트 어플케이션이 Full Package 를 요구하게 되면 사용자의 컴퓨터는 보다 쉽게 .NET Framework Full Package 로 업그레이드 된다.
그림 11 Full Framework 설치와 Client Profile 설치 비교
이 Client Profile 은 부트스트래퍼(Boot strapper) 는 클라이언트 재배포 패키지(client redistributable packages) 의 배포를 관리하는 부분이다. 이 부트스트래퍼의 용량은 200KB 정도로 작으며, 웹으로부터 배포되기 위해 설계가 되었다. 별도의 Client Profile 부트스트래퍼를 통해 사용자들은 인트라넷과 같은 환경에서 웹으로부터 업데이트도 가능하다.
그림 12 Client Profile Bootstrapper
.NET Framework 가 설치되지 않은 컴퓨터에서 보다 빠르고 쉽게 .NET Framework Client Profile 에 포함되어진 WPF/Windows Forms/WCF 등을 설치할 수 있다. Visual Studio Service Pack 1 이 설치가 되면, 클라이언트 어플케이션의 경우 프로젝트 속성에 "클라이언트 전용 프레임워크 하위 집합" 이라는 체크 항목이 생긴다. 단지, 체크박스에 체크를 하는 것만으로 Client Profile 을 배포할 수 있게 된다.
그림 13 Client Profile 설정 화면
설정이 완료되게 되면, app.config 에는 sku="Client" 속성이 추가되고 실행 시에 .NET Framework Client Profile 을 통해 클라이언트 어플케이션이 실행되도록 하고 있다.
그림 14 Client Profile 을 설정한 후 App.Config
Client Profile 은 Windows XP SP2 이상의 환경에서만 설치된다. 다른 OS 에 대해서는 Client Profile 이 설치되는 해당 사항이 없기 때문이다. 그 이유는 Vista 와 Windows Server 2008 은 이미 .NET Framework 3.0 의 일부가 설치되어 있으며, Server 용 OS 인 Windows Server 2003 에서 해당 사항이 없게 된다. 또한, x86 에서만 설치가 지원되고 IA-64 운영체제에서 설치하는 경우 .NET Framework 3.5 SP1 을 전체 설치해야 한다.
OS |
. NET Framework 미설치 |
. NET Framework 1.1 |
. NET Framework 2.0/SP1 |
. NET Framework 3.0/SP1 |
. NET Framework 3.5/SP1 |
Windows XP SP2 |
Client Profile |
3.5 SP1 |
3.5 SP1 |
3.5 SP1 |
3.5 SP1 |
Windows Vista |
N/A |
N/A |
3.5 SP1 |
3.5 SP1 |
3.5 SP1 |
Windows Server 2003 |
3.5 SP1 |
3.5 SP1 |
3.5 SP1 |
3.5 SP1 |
3.5 SP1 |
Windows Server 2008 |
N/A |
N/A |
3.5 SP1 |
3.5 SP1 |
3.5 SP1 |
표 7 Client Profile
Client Profile =. NET Framework 3.5 Client Profile 이 설치됩니다.
3.5 SP1 =. NET Framework 3.5 SP1 이 전체 설치됩니다.
클라이언트 어플케이션 개발자가 .NET 플랫폼을 이용하여 개발하기 위해 가장 큰 고민이 바로 .NET Framework 의 배포였다면, 이렇게 .NET Framework Service Pack 의 Client Profile 을 이용하여 클라이언트 어플케이션 개발자는 수백 MB가 되는 .NET Framework 의 배포에 대한 고민을 한시름 놓을 수 있게 되었다. Client Profile 이 사용자에게 설치되어 .NET Framework 3.5 SP1 까지의 핵심적인 어셈블리가 설치가 되기 때문에, LINQ 나 WPF, WCF 와 같은 최신 기술을 이용하여 개발된 어플케이션을 사용자에게 배포할 수 있다.
ADO.NET 의 새로운 변화의 물결
데이터베이스와 객체지향 언어간의 데이터의 설계나 구조는 다르기 마련이다. 이들 중 어느 하나라도 그 구조가 변경되게 되면, 다른 한쪽의 구조도 변경이 되어야 한다. 이러한 작업은 매우 번거로운 작업이며 조금이라도 실수를 한다면 데이터의 신뢰도가 낮아지며, 중대한 오류를 야기시킬 수도 있다. 바로 이러한 고민을 한번에 해결할 수 있고, 개발 생산성을 높여줄 수 있는 것이 ADO.NET Entity Framework 이다.
ADO.NET Entity Framework 은 ADO.NET 의 다음 단계로써 데이터에 대한 개발자들의 추상적인 단계를 끌어올리고, 데이터베이스 구조나 데이터소스를 중대한 오류 없이 코드를 작성할 수 있다. 행(Row) 와 열(Column) 의 2차원적인 편평한 코드보다 관계형 데이터(Relational Data) 를 넘어 상위 레벨의 Entity Data Model 을 정의할 수 있다. 많은 시간을 Entity 작성에 고민하였다면, ADO.NET Entity Framework 의 Entity Designer 를 통해 짧은 시간에 좋은 품질 Entity Object Model 을 설계할 수 있다.
그림 15 ADO.NET Entity Framework 을 이용하여 Entity Data Model 설계
ADO.NET Entity Framework 의 Entity Designer 는 LINQ to SQL 과 사용방법이 매우 유사하다. 데이터베이스의 다수의 테이블을 추가하기만 하면 자동으로 Entity Object Model 이 완성된다. LINQ to SQL 에서 Entity 의 1:1 매핑만을 지원하고, 테이블의 변경이 될 경우 테이블의 스키마가 업데이트 되지 않았다. 하지만 이번 ADO.NET Entity Framework 은 테이블 스키마의 정보를 분석하여 1:N 관계의 Entity 간 매핑을 할 수 있으며, 원본 테이블의 테이블 스키마 변동 시 마우스 버튼입력 몇 번으로 업데이트할 수 있다. 데이터베이스 뿐만 아니라 빈 모델(Empty Model)을 통해 코드로 작성해야 했던 많은 시간과 노력을 줄여줄 것이다.
코드명 Astoria 로 알려졌던 프로젝트가 ADO.NET Data Services 로 정식 릴리즈 되었다. ADO.NET Data Services 는 간단한 URI 를 호출하여 데이터를 조회하거나 조작할 수 있는 기능을 제공하는 서비스이다. 프리젠테이션과(Presentation) 데이터 엑세스(Data Access) 코드를 분리하여, 웹으로 부터 데이터를 엑세스 하기 위해 유연하고 사용하기 쉬운 서비스를 제공한다.
이 서비스의 특징은 웹에서 표준 HTTP 를 이용하여 REST 와 ATOM Protocol 을 지원하고, 대용량 데이터 서비스가 가능하다. 또한 이러한 서비스를 호출할 때, Entity Data Model Designer 를 사용하여 Entity Data Model(EDM) 을 통해 데이터를 정의하고, ADO.NET Data Services 의 쿼리식을 이용하여 특정 데이터를 질의할 수 있는 필터링 기능도 지원한다. 클라이언트 어플케이션은 HTTP 동사 GET,POST,PUT, DELETE 을 전송하고, 이런 상호작용을 통해 CRUD 기반의 서비스를 쉽게 만들 수 있다.
그림 16 새 항목을 통해 ADO.NET Data Services 를 추가
Service Pack 정식 버전에서는 리소스로 포함되었던 MicrosoftAjaxDataService.js 를 더 이상 제공하지 않는다. 때문에 반드시 MicrosoftAjaxDataService.js 와 대응되는 새로운 최신 버전을 다운로드 하여 Script References 로 사용하기를 바란다.
다운로드 6 MicrosoftAjaxDataService.js 와 대응되는 DataService.js 다운로드
그림 17 ADO.NET Data Services 를 이용하여 개발
Data Service 의 Query 를 쉽게 만들고, 데이터를 조회해 볼 수 있는 툴도 공개가 되었다. ADO.NET Data Service Viewr Tools 는 아래와 같이 인텔리센스를 통해 Data Service 의 Query 를 쉽게 만들어 줄 수 있다.
다운로드 7 ADO.NET Data Service Viewr Tools 다운로드
그림 18 ADO.NET Data Service Viewr Tools
WPF 의 개선된 성능
WPF 도 이번 Service Pack1 에서 많은 부분의 기능 개선과 새로운 기능들이 포함되었다. 특히 CLR 과 NGEN Images 를 최적화 하는 방법으로 Disk IO Access Patterns 을 향상시킴으로써, 어떠한 코드의 수정 없이도 Cold Startup(시스템이 부팅된 후 WPF 어플케이션이 처음 실행될 때) 시 20~40% 의 퍼포먼스가 향상시켰고, Text, Visual, DrawingBrush 등을 사용할 때 Software Rendering 이 아닌 GPU 를 이용한 Hardware Rendering 을 사용하여 훨씬 빠른 성능을 기대할 수 있다.
.NET SP1 이전까지만 해도 모든 BitmapEffects 는 Software 적으로 랜더링(Rendering)이 되었다. 하지만, SP1 이후부터는 Blur 나 DropShadow BitmapEffects 들은 GPU 를 통해 하드웨어 가속(Hardware Accelerated)을 통해 랜더링되기 때문에, 훨씬 빠른 성능을 기대할 수 있다. 그리고, BlurEffect 와 DropShadowEffect 와 같은 새로운 효과(Effect)가 추가되었고, 예전에 사용되던 BevelBitmapEffect, BlurBitmapEffect, DropShadowBitmapEffect 등의 몇 가지는 Obsolete Attribute 이 선언이 되어 더 이상 사용을 하지 않도록 변경이 되었다.
그림 19 WPF 에 새로 추가된 Effect
또한, SP1 에서의 WPF 는 DirectX 를 함께 혼용하여 사용할 수 있다. WPF 내부적으로 DirectX 를 직/간접적으로 사용하지만 DirectX 를 직접 WPF 에서 사용할 수 있는 인터페이스(Interface) 를 제공해 주지 않았지만, SP1 에서 DirectX 를 혼용하거나 직접적으로 사용 할 수 있게 되었다. 예를 들면, WPF 3D 에서 텍스쳐(Texture)를 적용하거나 Brush 와 같이 DirectX Surface 에 사용할 수 있다.
WriteableBitmap 도 내부적으로 변화를 보이고 있다. BitmapSource 를 쓰거나 업데이트할 수 있는 이 기능은 프레임(Frame)마다 시스템 메모리(System-Memory)의 Bitmap 에 그리거나 업데이트한다. 예전에는 이러한 구조가 매 프레임이 업데이트될 때 새로운 비트맵(Bitmap) 을 할당하게 되어 어떤 경우에는 매우 느리게 동작하였다. 하지만, SP1 에서 WriteableBitmap 은 내부적으로 새롭게 개선이 되었다. 이전에 새롭게 메모리를 할당을 하였다면, SP1 에서는 UI 변화와 동시에 사용되었던 메모리를 사용하게 되어, 이전에는 불가능 했던 페인트 프로그램(Paint Program) 이나 프렉탈 랜더Fractal Renderer), Music Visualization 과 같이 복합적이고 기하학적인 처리가 필요한 분야에서 사용할 수 있게 되었다.
그리고, 2D 환경에서 Windows Forms 과 같이 컨트롤(Control)이나 패널(Panel) 에 Z-Index 속성을 지정할 수 있게 되어, 화면에 표시되는 우선순위를 지정할 수 있게 되었다.
이외에도 기존의 컨트롤(Controls) 에 대한 개선으로 스크롤(Scroll) 성능을 약 40% 향상시켰다. 이런한 것을 Container Recycling 이라고 부른다. Container Recycling 은 ListBox, ListView, TreeView 컨트롤에서 지원한다. 데이터소스(Data Source)가 텍스트(Text) 일 때, 화면에 보이는 자식 컨트롤(ListBoxItem 등)으로 스크롤이 될 경우 새로운 자식 컨트롤을 생성하지 않고 기존의 자식 컨트롤을 재사용 하는 방법으로 스크롤 성능을 향상 시켰다. VirtualizationMode=”Recycling” 은 항상 IsVirtualizaing=”True” 와 함께 사용되어져야 한다.
그림 20 VirtualizingStackPanel 설정
또한, IsDeferredScrollingEnabled 속성이 추가되어, False 로 설정할 경우 스크롤바가 이동하는 즉시 스크롤을 하는 반면, True 로 설정할 경우 스크롤이 완료 되기 전까지 스크롤이 되지 않는다. 이러한 경우는 대용량의 데이터를 바인딩 할 경우에 매우 유용하게 사용할 수 있다.
그림 21 지연 스크롤(Deferred Scrolling) 속성
· WCF Contract 에서 ADO.NET Entity Framework 사용 지원
· DataContract serializer, UriTemplate나 WCF Web Programming Model 의 API 편리성 개선
· VS2008 SP1로의 TestClient 개선
· WCF 서비스 프로젝트에 VS2008 SP1에 Hosting Wizard 추가
· 파셜 트러스트의 디버그 개선
· Windows Server 2008 지원
· SQL Server 2008 지원
· 소스 제어에 추가 대화 상자의 사용 편의성 및 확장성 향상
· Windows 탐색기에서 끌어서 놓기 작업을 통해 소스 제어에 추가
· 바인딩된 솔루션에 없는 파일에 대한 버전 제어 작업 지원
· 마우스 오른쪽 단추를 클릭하여 소스 제어 탐색기에서 작업 폴더/폴더 숨기기 설정
· 소스 제어 탐색기의 체크 인 날짜/시간 열
· 소스 제어 탐색기의 편집 가능한 경로 필드
· 전자 메일로 작업 항목 및 쿼리 전송
· 파일을 스트림으로 다운로드하기 위한 새로운 API
· 알림에서 제공되는 Team System Web Access 페이지 링크
· 서버당 프로젝트 수 개선
· 성능 및 확장성 향상
· 훨씬 더 강력하게 VSS 변환기 개선
· 명령줄에서 팀 프로젝트를 만드는 작업 지원
· Visual Studio Shell 재배포 패키지의 작아진 용량
· 설치시 Progress 제어 지원
· Visual Studio Shell development 가 사용자 계정에서 실행되도록 변경
· 새롭게 추가된 XML Tree Editor 와 TFS 샘플
· DSL 출력 미리보기
· Shell Documentation 업데이트
· 오피스 리본 스타일 Interface
· Office 2007, Office 2003 과 Office XP 시각 효과
· Visual Studio 스타일의 도킹 툴바(Docking Toolbar), Panes
· 커스터마이징 가능한 툴바(Toolbar) 와 메뉴(Menu)
· 고급 GUI 컨트롤
· MDI Tab 과 Groups
· 기타 등등..
단순히 몇 가지의 버그의 패치 수준이 아닌, 기능 개선과 새로운 기능의 꾸러미를 내놓았다. 마이크로소프트에서 미쳐 Visual Studio 와 .NET Framework, 그리고 그 외의 제품에 넣지 못한 수많은 기능들을 이번 Service Pack 을 통해 개발자의 갈증을 해소시켰다고 볼 수 있다. 일각에선 수많은 기능 개선과 새로운 기능을 가리켜 “Visual Studio 와 .NET Framework 의 차기 버전 수준이다”라고 말할 정도이며, 어떤 이는 새롭게 배워야 할 것이 많아 졌다며 한숨을 내쉬기도 한다. 필자 또한 광범위한 이번 Service Pack 을 전부 체험할 수 없었고, 충분한 자료 또한 찾기가 쉽지 않았다. 너무나 다양한 분야별로 업그레이드 되어, 많은 부분을 독자들에게 전달할 수 없었던 것이 많은 아쉬움으로 남는다. 하지만, 분명한 것은 Visual Studio 2008 과 .NET Framework 3.5, 그리고 Service Pack 으로의 업그레이드를 하는 충분한 이유가 될 것이다. 이제는 더 이상 망설일 이유가 없지 않은가??
참고문헌
|
'.NET > Visual Studio' 카테고리의 다른 글
Package Load Failure 의 Activity Log 확인 (0) | 2008.12.12 |
---|---|
VSTS 2010 - 시작페이지 변경하기 (Customization Start Page) (0) | 2008.11.12 |
VSTS 2010 - Visualize Code RelationShip ( 코드 관계 시각화 ) (0) | 2008.10.29 |
Visual Studio SDK 개발 중 bison.exe 와 flex.exe 문제 해결 (0) | 2008.10.28 |
VSTS 2010 - 똑똑해진 에디터 (0) | 2008.10.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- 2,841,738
- Today
- 3
- Yesterday
- 47
링크
- ***** MY SOCIAL *****
- [SOCIAL] 페이스북
- [SOCIAL] 팀 블로그 트위터
- .
- ***** MY OPEN SOURCE *****
- [GITHUB] POWERUMC
- .
- ***** MY PUBLISH *****
- [MSDN] e-Book 백서
- .
- ***** MY TOOLS *****
- [VSX] VSGesture for VS2005,200…
- [VSX] VSGesture for VS2010,201…
- [VSX] Comment Helper for VS200…
- [VSX] VSExplorer for VS2005,20…
- [VSX] VSCmd for VS2005,2008
- .
- ***** MY FAVORITES *****
- MSDN 포럼
- MSDN 라이브러리
- Mono Project
- STEN
- 일본 ATMARKIT
- C++ 빌더 포럼
- .
TAG
- Visual Studio 2008
- ASP.NET
- TFS
- Team Foundation Server 2010
- Windows 8
- mono
- umc
- .NET Framework 4.0
- testing
- Visual Studio 2010
- Silverlight
- ALM
- 땡초
- c#
- Team Foundation Server
- monodevelop
- 비주얼 스튜디오 2010
- 엄준일
- LINQ
- Managed Extensibility Framework
- test
- github
- TFS 2010
- 비주얼 스튜디오
- .NET
- MEF
- 팀 파운데이션 서버
- POWERUMC
- Visual Studio
- Visual Studio 11
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |
글 보관함
- 2020/05 (1)
- 2019/10 (3)
- 2018/11 (1)
- 2018/08 (2)
- 2017/04 (1)
- 2017/01 (2)
- 2016/11 (2)
- 2016/08 (1)
- 2016/05 (1)
- 2016/04 (2)
- 2016/02 (2)
- 2016/01 (1)
- 2015/05 (1)
- 2015/04 (2)
- 2015/03 (1)
- 2015/02 (1)
- 2015/01 (1)
- 2014/11 (1)
- 2014/09 (2)
- 2014/08 (2)
- 2014/05 (2)
- 2014/04 (3)
- 2014/03 (2)
- 2014/02 (2)
- 2014/01 (4)
- 2013/12 (2)
- 2013/11 (1)
- 2013/10 (2)
- 2013/09 (6)
- 2013/08 (3)