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 의 정보에서 자신의 개발환경에 적용이 되는지부터 알아보자.
 
The Microsoft .NET Framework 3.5
The Microsoft Windows SDK
Visual Studio 2008 Team Suite
Visual Studio 2008 Team Edition for Database Professionals
Visual Studio 2008 Team Edition for Software Architects
Visual Studio 2008 Team Edition for Software Developers
Visual Studio 2008 Team Edition for Software Testers
Visual Studio 2008 Standard Edition
Visual Studio 2008 Professional Edition
1 Visual Studio Service Pack 1 이 적용되는 제품
 
기본적으로 이번 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)
다운로드 2 Visual Studio 2008 Express Service Pack 다운로드 정보
 
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 도 공개가 되었으며, 아래의 주소를 통해 다운로드 받을 수 있다.
 
다운로드 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) 할 수 있다.
 
; 입력 시 완성 문에 서식 자동 지정 적용
적용 전
적용 후
 
} 입력 시 완성 블록에 서식 자동 지정 적용
적용 전
적용 후
 
 
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 으로의 업그레이드를 하는 충분한 이유가 될 것이다. 이제는 더 이상 망설일 이유가 없지 않은가??
 
 
참고문헌
 

Posted by 땡초 POWERUMC

댓글을 달아 주세요

  1. 태디 2010.01.13 22:26 신고 Address Modify/Delete Reply

    얼마전까지 맞고 있던 프로젝트가 .Net 3.5 + MSSQL 프로젝트였는데...

    현재 개발하고 있는 신규프로젝트는 이전에 개발했던 프로젝트와 업무프로세스는 유사하지만 내부로직만 변경된상태에서 반도체쪽 JAVA 플랫폼에 EES라는 메인시스템이 있거든 근데 여기 서브시스템으로
    .Net 3.5 + Oracle 10g 조합으로 개발을 하고 있어 서브시스템이라고는 하지만
    DataBase만 Oracle로 사용하고 각기 독립적으로 돌아가는 시스템이야..

    지금 개발하는 프로젝트를 배포하면서 .Net 3.5 SP1으로 프레임워크 업데이트 해서
    배포하려고 하는데 문제 없을까...

    Visual Studio 2008(.Net 3.5)을 이용하여 개발하고는 있지만 소스코드단은 거진 .Net 1.1 or 2.0 기술만 사용하고 있어.(윈폼)

    Client 사용자 PC는 환경은 주로 Windows Xp

    • 땡초 POWERUMC 2010.01.13 23:19 신고 Address Modify/Delete

      일단 형이 얘기한것처럼 가장 큰 문제는
      .NET 3.5 SP1 의 배포인데...

      사실상 가장 편한 방법은 없구,
      단지 MS 사이트 인터넷을 통한 느린 설치이냐,
      아니면 인트라넷의 인프라을 이용한 빠른 설치이냐,
      이것이 문제인데..

      .NET Framework 의 배포는 이 둘다 가능하긴 해...
      서버가 무엇이냐에 따라 약간의 꽁수가 필요하지만,
      아마도 인트라넷을 통한 .NET Framework 배포가
      가장 안정적이고 빠른 배포 시나리오 같애.

      보통 일반적인 IT인들의 편견이,
      JAVA 설치는 인정하는데,
      .NET 설치는 비굴한 변명이 많다는... ㅋㅋ;;

  2. 테디 2010.01.14 07:09 Address Modify/Delete Reply

    우리가 닷넷프레임워크 배포하는방법은 인트라넷을 통한 방법을 이용하고
    클라이언트 사용자가 실행파일을 실행하는 순간 웹서비스를 통해서 내려받고 있어
    아무튼 고맙다 .net 3.5 sp1 으로 배포하는거 이쪽 담당자와 상
    의해서 해야겠다