VS 2010 은 VS 2008, VS 2005, VS 2003 과 함께 같은 컴퓨터에 설치할 수 있고, 각 버전의 모든 기능을 사용할 수 있다. 
또한 .NET 4.0 은 다른 버전들과 함께 설치될 수 있는데 4.0은 새로운 버전의 프레임워크 버전과 CLR 엔진을 가지고 있으며 다른 버전들과 독립적으로 동작한다. 
즉, 각 버전들은 다른 버전의 실행에 영향을 주지 않는다는 것이다. 

VS 2008's Multi-Targeting Support

VS 2008은 .NET 멀티타겟팅을 지원하는 첫 버전이다. 즉, VS 2008 로 .NET 3.5 프로젝트 뿐 만 아니라 2.0, 3.0 프로젝트를 만드는 데 사용할 수 있다. 이 특징으로 어플리케이션이 설치된 클라이언트 및 서버에 설치된 새로운 .NET 버전을 요구없이 개발자는 더 빠르게 업그레이드하고 새로운 버전 프레임워크(3.5) 를 사용할 수 있게 해준다. 

.NET 2.0, 3.0, 3.5 의 VS 2008의 멀티타겟팅 지원은 사실 같은 CLR 버전 위에서 동작하며 차이점은 각.NET 버전은 그들의 프레임워크 라이브러리 상에 있다는 것이다.
결과적으로 VS 의 컴파일러는 같은 IL 출력을 생성할 수 있으며 디버거는 같은 CLR 엔진을 디버거 할 수 있고, IDE의 멀티 타겟팅 지원은 선택한 .NET 번전이 지원하지 않을때 뷰로부터 새 어셈블리들과 프로젝트 템플릿 들을 걸러내는데 초첨이 맞춰쳐 있다.

이 멀티 타겟팅 기능은 완벽하진 않지만 그럭저럭 동작한다. VS 2008의 인텔리전스는 항상 .NET 3.5 버전의 프레임워크 라이브러리에 대한 멤버와 유형들을 보여준다. 예를 들어, 불합리하게도 ASP.NET 2.0 프로젝트 내에서도 3.5의 인텔리전스를 보여준다는 것이다.

VS 2010's Multi-Targeting Support

새로운 멀티 타겟팅 기능이 어떻게 동작하는지 이해하기 위해서는 VS 2010을 사용하여 ASP.NET 웹 응용프로그램을 생성해보자. 일단 프로젝트는 .NET 2.0 을 사용할 것이다. 


이 프로젝트는 .NET 2.0을 사용하기 때문에 VS 2010은 자동으로 ASP.NET 2.0 에 제공되는 컨트롤들과 해당 프레임워크의 인텔리전스를 보여줄 것이다. 
VS 2008과 달리 VS 2010 속성들은 숨겨주고 ASP.NET 2.0의 버튼 컨트롤에서 지원하는 속성들만 보여준다.


코드를 작성할 때, VS 2010은 .NET 2.0에서 지원하는 함수들/속성들/이벤트들 과 코드 인텐리전스를 보여주다. 아래 그림을 보면  "Response" 객체의 ASP.NET 2.0 의 인텔리전스 만을 볼 수 있다.


내장 VS 웹서버를 사용하여 응용프로그램을 동작할 때, ASP.NET 2.0 버전을 사용하며, 디버거도 CLR 2.0을 디버그 할 것이다.



Moving a Project from .NET 2.0 to .NET 4.0

우리는 아래 그림과 같이 프로젝트의 .NET 버전을  최근의 버전으로 변경하여 재시작할 수 있다.
(.NET 버전 목록들 중 "Serer Core" 프로파일이 있는데 이는 GUI가 없는 Windows Server 2008 R2을 지원한다.)


이 실행에 대해 우리는 프로젝트를 .NET 4.0으로 변경할 수 있다. 변경했을때 VS 2010은 자동으로 프로젝트 어셈블리를 업데이트하고 프로젝트의 web.config 파일을 새로운 버전을 반영할 수 있도록 수정한다. 

일단 우리가 이렇게 하면 , VS 2010은 ASP.NET 4.0 버전에서 사용할 수 있는 새로운 모든 컨트롤들과 속성들을 보여주기 위해서 툴박스와 마크업 인텔리전스를 걸러낼 것이다. 
예를 들어, 아래 속성창을 보면 ASP.NET 4.0의 모든 컨트롤에 대하여 사용할 수 있는 "ClientIDMode"라는 새 속성을 보여준다.  
( ClientIDMode 는 컨트롤에 대하여 클라이언트 id 가 출력되는 방법을 선택하고 클라이언트의 지저분한 아이디를 피하게 해준다. )


우리는 프로젝트가 .NET 4.0 을 사용하도록 업그레이드 했었고, VS 2010은 .NET 4.0에 맞는 인텔리전스를 보여줄 것이다. 


( 새로운 Response.RedirectPermanant() 함수는 검색엔진에서 사이트의 좋지못한 링크를 피하게 하는 "HTTP 301 Moved" 응답을 해주는 함수이다.  또 ASP.NET 웹 폼과 ASP.NET MVC 기반 응용프로그램에서 지원되는 URL 라우팅 엔진이 있는데, 새 Response.RedirctToRoute() 함수는 쉽게 라우팅될 수 있게 해주는 함수이다. ) 

끝으로 VS 2010은 내장 웹서버로 프로젝트를 운영할 때, ASP.NET 4.0 버전을 사용하여 동작할 것이다.


Posted by hgjung

댓글을 달아 주세요