다음을 통해 공유


웹 솔루션 및 프로젝트 파일 변환

업데이트: 2007년 11월

Visual Studio 2005는 다양한 방법으로 웹 프로젝트 모델을 변경합니다. 예를 들어, 웹 응용 프로그램 폴더의 모든 파일이 웹 프로젝트의 일부로 간주되므로 프로젝트 파일은 더 이상 필요하지 않습니다.

새 웹 프로젝트 모델은 ASP.NET Web Forms 페이지(.aspx 파일), ASP.NET 사용자 정의 컨트롤(.asxc 파일), Global.asax 파일 및 Web.config 파일과 같은 파일의 변환에 영향을 줍니다. 이러한 파일에 대해 수행되는 정확한 변경 방식은 변환되는 프로젝트의 프로그래밍 언어에 따라 다릅니다.

Visual Studio 2005는 한 클래스가 여러 파일에 걸쳐 있는 partial 클래스를 사용하기 위해 코드 숨김 모델을 변경합니다. 이전의 코드 숨김 모델의 경우 .aspx 파일은 해당하는 코드 숨김 파일(.aspx.vb 또는 .aspx.cs)에서 만들어진 컴파일된 클래스 파일에서 상속을 받습니다. 그러나 새 코드 숨김 모델의 경우 .aspx 파일은 해당하는 .aspx.vb 또는 .aspx.cs 파일뿐만 아니라 .aspx 파일에서 생성된 스텁 파일로 구성된 컴파일된 클래스에서 상속됩니다. 이 스텁 파일은 .aspx 파일에 사용되는 컨트롤의 필드 선언을 정의합니다. 이러한 변화로 인해 사용자 코드에서 자동 생성 코드를 분리할 수 있습니다. 사용자 정의 컨트롤(.ascx) 및 사용자 정의 컨트롤에 대한 코드 숨김 파일은 비슷하게 취급됩니다. 코드 숨김 모델에 대한 자세한 내용은 ASP.NET 웹 페이지 코드 모델을 참조하십시오.

Visual Studio 2005는 한 어셈블리를 생성하는 방식에서 여러 어셈블리를 생성하는 방식으로 컴파일 모델을 변경합니다. 각 ASP.NET 웹 페이지 및 사용자 정의 컨트롤은 자체의 어셈블리로 컴파일될 수 있습니다. 이러한 변화를 통해 소스 코드를 서버에 게시하고 필요할 때 웹 응용 프로그램 일부를 동적으로 컴파일할 수 있는 등 보다 다양한 배포 시나리오가 허용됩니다.

코드 숨김 파일

새 ASP.NET 버전 2.0 코드 숨김 모델로 변환하는 동안 ASP.NET 웹 페이지 및 사용자 정의 컨트롤이 다음과 같이 변경됩니다.

  • @ Page 지시문의 CodeBehind 특성이 CodeFile 특성으로 변경됩니다.

  • 연관된 컴파일 클래스 파일을 가리키는 @ Page 지시문에 Inherits 특성이 추가됩니다.

  • 모든 코드 숨김 클래스 정의가 Partial 키워드를 구현하도록 변경됩니다.

  • 사용자 정의 컨트롤에 대한 멤버 선언이 코드 숨김 페이지에서 제거됩니다. 컴파일 모델에서는 선언 코드에서 사용자 정의 컨트롤의 인스턴스가 자동으로 만들어집니다.

  • 이벤트가 선언 구문을 사용하여 컨트롤에 바인딩됩니다. 예를 들어, Button 컨트롤에 대한 Click 이벤트는 선언 코드에서 asp:button 요소에 OnClick 특성을 추가하여 컨트롤에 바인딩됩니다. 메서드의 대리자 및 Visual Basic Handles 키워드는 제거됩니다. 동적으로 만들어진 컨트롤에 대한 대리자와 같이 선언 코드에 나타나지 않는 멤버에 대한 대리자는 제거되지 않습니다.

  • 페이지 클래스가 아닌 클래스 파일에서 Friend 또는 Internal로 표시된 멤버 선언이 Public으로 변경됩니다.

  • 디버거 중단점은 변환되지 않으며 변환된 파일에 표시되지 않습니다.

    참고:

    @ Page 지시문에 CodeBehind 특성이 없는 웹 페이지나 사용자 정의 컨트롤은 변환되지 않습니다. 마찬가지로 Src 특성을 포함하는 웹 페이지나 컨트롤은 원래대로 유지됩니다.

독립 실행형 코드 파일

독립 실행형 코드 파일은 다음과 같이 변경됩니다.

  • 독립 실행형 코드 파일이 App_Code 디렉터리로 이동합니다.

  • Friend 또는 Internal로 표시된 멤버 선언이 모두 Public으로 변경됩니다. 이렇게 변경해야 하는 이유는 어셈블리가 여러 개인 경우 컴파일된 독립 실행형 코드 파일을 포함하는 어셈블리 이외의 어셈블리에도 멤버가 노출되도록 액세스 수준을 설정해야 하기 때문입니다.

  • Type.GetType 메서드에 대한 호출이 BuildManager.GetType 메서드를 사용하도록 변경됩니다. BuildManager.GetType 메서드는 최상위 어셈블리 내에서 형식을 찾습니다.

  • 디버거 중단점은 변환되지 않으며 변환된 파일에 표시되지 않습니다.

디자이너 설정

디자이너와 관련된 페이지의 설정은 변환 중에 다양한 방식으로 처리됩니다.

  • MS_POSITIONING 특성(선형 레이아웃 또는 모눈 레이아웃)은 원래대로 유지되며 Visual Studio는 개별 컨트롤의 절대 위치 지정 특성과 함께 이 설정을 유지합니다. 그러나 기본적으로 Visual Studio의 새 페이지는 선형 레이아웃을 사용하며 MS_POSITIONING 특성을 포함하지 않습니다.

  • 기본 클라이언트 스크립트 언어에 대한 <meta> 태그는 원래대로 유지됩니다.

Global.asax 파일

Global.asax 파일이 변환되면 해당 코드 숨김 파일이 App_Code 디렉터리로 이동합니다. 이러한 변환 프로세스를 통해 다음과 같은 변경이 수행됩니다.

  • CodeBehind 및 Inherits 특성이 @ Application - Global.asax 지시문에서 제거됩니다.

  • Language 특성이 아직 지정되지 않은 경우 @ Page 지시문에 추가됩니다.

  • Visual Basic의 경우 Namespace 문이 클래스 파일에 추가됩니다. 네임스페이스는 웹 프로젝트의 루트 네임스페이스로 정의됩니다.

Web.config 파일

Visual Studio 2005에서 Web.config 파일은 Visual Studio .NET보다 더 다양한 요소를 지원합니다. 예를 들어, Visual Studio에 적용되는 프로젝트 설정이 종종 Web.config 파일로 변환됩니다. 자세한 내용은 웹 프로젝트 설정 변환을 참조하십시오.

참고 항목

개념

웹 응용 프로그램 프로젝트 개요

Visual Studio .NET에서 웹 프로젝트 변환

웹 프로젝트 설정 변환

기타 리소스

Global.asax 구문

ASP.NET 구성 설정

ASP.NET 구성 파일

Global.asax 구문