배포할 파일 확인(VB)

작성자 : Scott Mitchell

PDF 다운로드

개발 환경에서 프로덕션 환경으로 배포해야 하는 파일은 ASP.NET 애플리케이션이 웹 사이트 모델 또는 웹 애플리케이션 모델을 사용하여 빌드되었는지 여부에 따라 부분적으로 달라집니다. 이러한 두 프로젝트 모델 및 프로젝트 모델이 배포에 미치는 영향에 대해 자세히 알아봅니다.

소개

ASP.NET 웹 애플리케이션을 배포하려면 개발 환경에서 프로덕션 환경으로 ASP.NET 관련 파일을 복사해야 합니다. ASP.NET 관련 파일에는 ASP.NET 웹 페이지 태그와 코드, 클라이언트 및 서버 쪽 지원 파일이 포함됩니다. 클라이언트 쪽 지원 파일은 웹 페이지에서 참조하고 브라우저로 직접 전송되는 파일(예: 이미지, CSS 파일 및 JavaScript 파일)입니다. 서버 쪽 지원 파일에는 서버 쪽에서 요청을 처리하는 데 사용되는 파일이 포함됩니다. 여기에는 구성 파일, 웹 서비스, 클래스 파일, Typed DataSets 및 LINQ to SQL 파일이 포함됩니다.

일반적으로 모든 클라이언트 쪽 지원 파일을 개발 환경에서 프로덕션 환경으로 복사해야 하지만 복사되는 서버 쪽 지원 파일은 서버 쪽 코드를 어셈블리( .dll 파일)로 명시적으로 컴파일하는지 또는 이러한 어셈블리가 자동으로 생성되었는지 여부에 따라 달라집니다. 이 자습서에서는 코드를 어셈블리로 명시적으로 컴파일할 때 배포해야 하는 파일과 이 컴파일 단계가 자동으로 수행될 때 배포해야 하는 파일을 강조 표시합니다.

명시적 컴파일 및 자동 컴파일

ASP.NET 웹 페이지는 선언적 태그와 소스 코드로 나뉩니다. 선언적 태그 부분에는 HTML, 웹 컨트롤 및 데이터 바인딩 구문이 포함됩니다. 코드 부분에는 Visual Basic 또는 C# 코드로 작성된 이벤트 처리기가 포함되어 있습니다. 태그 및 코드 부분은 일반적으로 서로 다른 파일 WebPage.aspx 로 구분됩니다. 코드가 있는 동안 WebPage.aspx.vb 선언적 태그를 포함합니다.

Text 속성이 페이지가 로드되는 현재 날짜 및 시간으로 설정된 Label 컨트롤이 포함된 라는 Clock.aspx ASP.NET 페이지를 고려합니다. 선언적 태그 부분(의 Clock.aspx)에는 레이블 웹 컨트롤 <asp:Label runat="server" id="TimeLabel" /> 에 대한 태그가 포함되지만 코드 부분(의 Clock.aspx.vb)에는 다음 코드가 포함된 이벤트 처리기가 있습니다 Page_Load .

Protected Sub Page_Load(ByVal sender As Object, ByVal e As  System.EventArgs) Handles Me.Load
    TimeLabel.Text =  "The time at the beep is: " & DateTime.Now.ToString()
End Sub

ASP.NET 엔진이 이 페이지에 대한 요청을 처리하려면 먼저 페이지의 코드 부분(파일)을 WebPage.aspx.vb 컴파일해야 합니다. 이 컴파일은 명시적으로 또는 자동으로 발생할 수 있습니다.

컴파일이 명시적으로 수행되면 전체 애플리케이션의 소스 코드가 애플리케이션의 디렉터리에 있는 Bin 하나 이상의 어셈블리(.dll파일)로 컴파일됩니다. 컴파일이 자동으로 수행되면 결과 자동 생성 어셈블리는 기본적으로 폴더에 Temporary ASP.NET Files 배치되며, 이 위치는 의 컴파일> 요소를 통해< 구성할 수 있지만 에서 %WINDOWS%\Microsoft.NET\Framework\<version>찾을 수 있습니다.Web.config 명시적 컴파일을 사용하면 ASP.NET 애플리케이션의 코드를 어셈블리로 컴파일하기 위해 몇 가지 작업을 수행해야 하며 이 단계는 배포 전에 발생합니다. 자동 컴파일을 사용하면 리소스에 처음 액세스할 때 웹 서버에서 컴파일 프로세스가 발생합니다.

사용하는 컴파일 모델에 관계없이 모든 ASP.NET 페이지( WebPage.aspx 파일)의 태그 부분을 프로덕션 환경에 복사해야 합니다. 명시적 컴파일을 사용하면 폴더의 Bin 어셈블리를 복사해야 하지만 ASP.NET 페이지의 코드 부분( WebPage.aspx.vb 파일)을 복사할 필요는 없습니다. 자동 컴파일을 사용하면 코드가 있고 페이지를 방문할 때 자동으로 컴파일될 수 있도록 코드 부분 파일을 복사해야 합니다. 각 ASP.NET 웹 페이지의 태그 부분에는 페이지의 연결된 코드가 이미 명시적으로 컴파일되었는지 또는 자동으로 컴파일해야 하는지 여부를 나타내는 특성이 있는 지시문이 포함되어 @Page 있습니다. 따라서 프로덕션 환경은 컴파일 모델에서 원활하게 작동할 수 있으며 명시적 또는 자동 컴파일이 사용되었음을 나타내기 위해 특별한 구성 설정을 적용할 필요가 없습니다.

표 1에는 명시적 컴파일과 자동 컴파일을 사용할 때 배포할 다양한 파일이 요약됩니다. 사용된 컴파일 모델에 관계없이 해당 폴더가 있는 경우 항상 폴더에 Bin 어셈블리를 배포해야 합니다. 폴더에는 Bin 웹 애플리케이션과 관련된 어셈블리가 포함되어 있으며, 여기에는 명시적 컴파일 모델을 사용할 때 컴파일된 소스 코드가 포함됩니다. 디렉터리에는 Bin 다른 프로젝트의 어셈블리와 사용 중인 오픈 소스 또는 타사 어셈블리도 포함되며 프로덕션 서버에 있어야 합니다. 따라서 일반적으로 배포할 때 폴더를 Bin 프로덕션에 복사합니다. (자동 컴파일 모델을 사용하고 외부 어셈블리를 사용하지 않는 경우 디렉터리가 없습니다 Bin . 괜찮습니다!)

컴파일 모델 태그 부분 파일을 배포하시겠습니까? 소스 코드 파일을 배포하시겠습니까? 디렉터리에 어셈블리를 Bin 배포하시겠습니까?
명시적 컴파일
자동 컴파일 예(있는 경우)

표 1: 배포하는 파일은 사용된 컴파일 모델에 따라 달라집니다.

메모리 레인 아래로 여행을 복용

사용되는 컴파일 방법은 부분적으로 ASP.NET 애플리케이션이 Visual Studio에서 관리되는 방식에 따라 달라집니다. 이후. NET은 2000년에 시작되었으며 Visual Studio .NET 2002, Visual Studio .NET 2003, Visual Studio 2005 및 Visual Studio 2008의 네 가지 버전이 있습니다. 웹 애플리케이션 프로젝트 모델을 사용하여 Visual Studio .NET 2002 및 2003 관리되는 ASP.NET 애플리케이션. 웹 애플리케이션 프로젝트 모델의 주요 기능은 다음과 같습니다.

  • 프로젝트를 구성하는 파일은 단일 프로젝트 파일에 정의됩니다. 프로젝트 파일에 정의되지 않은 파일은 Visual Studio에서 웹 애플리케이션의 일부로 간주되지 않습니다.
  • 명시적 컴파일을 사용합니다. 프로젝트를 빌드하면 프로젝트 내의 코드 파일이 폴더에 배치 Bin 되는 단일 어셈블리로 컴파일됩니다.

Microsoft가 Visual Studio 2005를 릴리스했을 때 웹 애플리케이션 프로젝트 모델에 대한 지원을 삭제하고 웹 사이트 프로젝트 모델로 대체했습니다. 웹 사이트 프로젝트 모델은 다음과 같은 방법으로 웹 애플리케이션 프로젝트 모델과 차별화되었습니다.

  • 프로젝트의 파일을 철자하는 단일 프로젝트 파일이 있는 대신 파일 시스템이 사용됩니다. 요컨대, 웹 애플리케이션 폴더(또는 하위 폴더) 내의 모든 파일은 프로젝트의 일부로 간주됩니다.
  • Visual Studio에서 프로젝트를 빌드해도 디렉터리에 어셈블리가 Bin 만들어지지 않습니다. 대신 웹 사이트 프로젝트를 빌드하면 컴파일 시간 오류가 보고됩니다.
  • 자동 컴파일 지원. 웹 사이트 프로젝트는 일반적으로 코드가 미리 컴파일될 수 있지만(명시적 컴파일) 태그 및 소스 코드를 프로덕션 환경에 복사하여 배포됩니다.

Microsoft는 Visual Studio 2005 서비스 팩 1을 릴리스했을 때 웹 애플리케이션 프로젝트 모델을 부활시켰습니다. 그러나 Visual Web Developer는 웹 사이트 프로젝트 모델만 계속 지원했습니다. 좋은 소식은 Visual Web Developer 2008 서비스 팩 1에서 이 제한이 삭제되었다는 것입니다. 현재는 웹 애플리케이션 프로젝트 모델 또는 웹 사이트 프로젝트 모델을 사용하여 Visual Studio(및 Visual Web Developer)에서 ASP.NET 애플리케이션을 만들 수 있습니다. 두 모델 모두 장단점이 있습니다. 두 모델을 비교하고 상황에 가장 적합한 프로젝트 모델을 결정하려면 웹 애플리케이션 프로젝트 소개: 웹 사이트 프로젝트 및 웹 애플리케이션 프로젝트 비교를 참조하세요.

샘플 웹 애플리케이션 살펴보기

이 자습서의 다운로드에는 책 리뷰라는 ASP.NET 애플리케이션이 포함되어 있습니다. 웹 사이트는 누군가가 온라인 커뮤니티와 책 리뷰를 공유하기 위해 만들 수있는 취미 웹 사이트를 모방합니다. 이 ASP.NET 웹 애플리케이션은 매우 간단하며 다음 리소스로 구성됩니다.

  • Web.config애플리케이션의 구성 파일입니다.

  • master 페이지(Site.master).

  • 7개의 서로 다른 ASP.NET 페이지:

    • ~/Default.aspx - 사이트의 홈페이지입니다.

    • ~/About.aspx - "사이트 정보" 페이지

    • ~/Fiction/Default.aspx - 검토된 소설 책을 나열하는 페이지입니다.

      • ~/Fiction/Blaze.aspx - 리처드 바흐만 소설 블레이즈의 리뷰.
    • ~/Tech/Default.aspx - 검토된 기술 서적을 나열하는 페이지입니다.

      • ~/Tech/CYOW.aspx - 사용자 고유의 웹 사이트 만들기를 검토합니다.
      • ~/Tech/TYASP35.aspx - 24시간 ASP.NET 3.5에 대한 교육 검토
  • 폴더에 있는 Styles 세 개의 서로 다른 CSS 파일입니다.

  • 4 개의 이미지 파일 - ASP.NET 로고 및 검토 된 세 권의 책의 표지 이미지로 구동 - 모두 폴더에 Images 있습니다.

  • Web.sitemap 사이트 맵을 정의하고 루트 디렉터리 및 FictionTech 폴더의 Default.aspx 페이지에 메뉴를 표시하는 데 사용되는 파일입니다.

  • 기본 Page 클래스를 정의하는 라는 BasePage.vb 클래스 파일입니다. 이 클래스는 사이트 맵에서 Page 페이지의 위치에 따라 속성을 자동으로 설정 Title 하여 클래스의 기능을 확장합니다. 한마디로 확장되는 모든 ASP.NET 코드 숨김 클래스 BasePage 는 사이트 맵의 System.Web.UI.Page위치에 따라 타이틀이 값으로 설정됩니다. instance 경우 ~/Tech/CYOW.aspx 페이지를 볼 때 제목은 "홈: 기술: 사용자 고유의 웹 사이트 만들기"로 설정됩니다.

그림 1은 브라우저를 통해 볼 때 책 리뷰 웹 사이트의 스크린샷을 보여줍니다. 여기서는 24시간 만에 3.5 ASP.NET 교육 책을 검토하는 ~/Tech/TYASP35.aspx 페이지가 표시됩니다. 페이지 위쪽과 왼쪽 열의 메뉴에 걸쳐 있는 이동 경로는 에 정의된 Web.sitemap사이트 맵 구조를 기반으로 합니다. 오른쪽 위 모서리에 있는 이미지는 폴더에 있는 Images 책 표지 이미지 중 하나입니다. 웹 사이트의 모양과 느낌은 폴더의 CSS 파일에 Styles 의해 철자가 지정된 계단식 스타일시트 규칙을 통해 정의되며, 가장 중요한 페이지 레이아웃은 master 페이지에 Site.master정의됩니다.

책 리뷰 웹 사이트는 제목의 구색에 대한 리뷰를 제공합니다

그림 1: 책 리뷰 웹 사이트는 다양한 제목에 대한 리뷰를 제공합니다(전체 크기 이미지를 보려면 클릭).

이 애플리케이션은 데이터베이스를 사용하지 않습니다. 각 검토는 애플리케이션에서 별도의 웹 페이지로 구현됩니다. 이 자습서(및 다음 몇 가지 자습서)는 데이터베이스가 없는 웹 애플리케이션 배포를 안내합니다. 그러나 이후 자습서에서는 이 애플리케이션을 개선하여 검토, 읽기 권한자 의견 및 기타 정보를 데이터베이스 내에 저장하고 데이터 기반 웹 애플리케이션을 올바르게 배포하기 위해 수행해야 하는 단계를 살펴봅니다.

참고

이 자습서에서는 웹 호스트 공급자를 사용하여 ASP.NET 애플리케이션을 호스팅하는 데 중점을 두고 ASP와 같은 보조 topics 탐색하지 않습니다. NET의 사이트 맵 시스템 또는 기본 Page 클래스를 사용합니다. 이러한 기술에 대한 자세한 내용과 자습서 전체에서 다루는 다른 topics 대한 자세한 내용은 각 자습서의 끝에 있는 추가 읽기 섹션을 참조하세요.

이 자습서의 다운로드에는 각각 다른 Visual Studio 프로젝트 형식으로 구현된 두 개의 웹 애플리케이션 복사본인 BookReviewsWAP, 웹 애플리케이션 프로젝트 및 웹 사이트 프로젝트인 BookReviewsWSP가 있습니다. 두 프로젝트 모두 Visual Web Developer 2008 SP1을 사용하여 만들어졌으며 ASP.NET 3.5 SP1을 사용합니다. 이러한 프로젝트를 사용하려면 먼저 데스크톱에 콘텐츠의 압축을 풉니다. 웹 애플리케이션 프로젝트(BookReviewsWAP)를 열려면 폴더로 이동하고 BookReviewsWAP 솔루션 파일 를 BookReviewsWAP.sln두 번 클릭합니다. 웹 사이트 프로젝트(BookReviewsWSP)를 열려면 Visual Studio를 시작한 다음 파일 메뉴에서 웹 사이트 열기 옵션을 선택하고 바탕 화면의 BookReviewsWSP 폴더로 이동한 다음 확인을 클릭합니다.

이 자습서의 나머지 두 섹션에서는 애플리케이션을 배포할 때 프로덕션 환경에 복사해야 하는 파일을 확인합니다. 다음 두 자습서인 FTP를 사용하여 사이트 배포Visual Studio를 사용하여 사이트 배포 는 이러한 파일을 웹 호스트 공급자에 복사하는 다양한 방법을 보여 줍니다.

웹 애플리케이션 프로젝트에 배포할 파일 결정

웹 애플리케이션 프로젝트 모델은 명시적 컴파일을 사용합니다. 프로젝트의 소스 코드는 애플리케이션을 빌드할 때마다 단일 어셈블리로 컴파일됩니다. 이 컴파일에는 ASP.NET 페이지의 코드 숨김 파일(~/Default.aspx.vb, ~/About.aspx.vb등)과 클래스가 BasePage.vb 포함됩니다. 결과 어셈블리의 이름은 애플리케이션 BookReviewsWAP.dllBin 디렉터리에 있습니다.

그림 2는 책 리뷰 웹 애플리케이션 프로젝트를 구성하는 파일을 보여줍니다.

솔루션 탐색기 웹 애플리케이션 프로젝트를 구성하는 파일을 나열합니다.

그림 2: 솔루션 탐색기 웹 애플리케이션 프로젝트를 구성하는 파일을 나열합니다.

참고

그림 2에서 알 수 있듯이 ASP.NET 페이지의 코드 숨김 파일은 Visual Basic 웹 애플리케이션 프로젝트의 솔루션 탐색기 표시되지 않습니다. 페이지의 코드 숨김 클래스를 보려면 솔루션 탐색기 페이지를 마우스 오른쪽 단추로 클릭하고 코드 보기를 선택합니다.

웹 애플리케이션 프로젝트 모델을 사용하여 개발된 ASP.NET 애플리케이션을 배포하려면 먼저 애플리케이션을 빌드하여 최신 소스 코드를 어셈블리로 명시적으로 컴파일합니다. 다음으로, 다음 파일을 프로덕션 환경에 복사합니다.

  • ~/, ~/Default.aspxAbout.aspx등과 같은 모든 ASP.NET 페이지에 대한 선언적 태그를 포함하는 파일입니다. 또한 모든 master 페이지 및 사용자 컨트롤에 대한 선언적 태그를 복사합니다.
  • 폴더의 어셈블리(.dll 파일)입니다 Bin . 프로그램 데이터베이스 파일(.pdb) 또는 디렉터리에서 찾을 수 있는 Bin XML 파일을 복사할 필요가 없습니다.

ASP.NET 페이지의 소스 코드 파일을 프로덕션 환경에 복사할 필요가 없으며 클래스 파일을 복사 BasePage.vb 할 필요도 없습니다.

참고

그림 2에서 알 BasePage 수 있듯이 클래스는 프로젝트의 클래스 파일로 구현되어 라는 HelperClasses폴더에 배치됩니다. 프로젝트가 컴파일되면 파일의 BasePage.vb 코드는 ASP.NET 페이지의 코드 숨김 클래스와 함께 단일 어셈블리 BookReviewsWAP.dll로 컴파일됩니다. ASP.NET 웹 사이트 프로젝트에 대한 클래스 파일을 보관하도록 설계된 라는 App_Code 특수 폴더가 있습니다. 폴더의 App_Code 코드는 자동으로 컴파일되므로 웹 애플리케이션 프로젝트와 함께 사용하면 안 됩니다. 대신 애플리케이션의 클래스 파일을 , 또는 Classes또는 유사한 일반 HelperClasses폴더에 배치해야 합니다. 또는 별도의 클래스 라이브러리 프로젝트에 클래스 파일을 배치할 수 있습니다.

폴더의 ASP.NET 관련 태그 파일 및 어셈블리 Bin 를 복사하는 것 외에도 클라이언트 쪽 지원 파일(이미지 및 CSS 파일)과 다른 서버 쪽 지원 파일 Web.configWeb.sitemap을 복사해야 합니다. 이러한 클라이언트 및 서버 쪽 지원 파일은 명시적 컴파일 또는 자동 컴파일 사용 여부에 관계없이 프로덕션 환경에 복사해야 합니다.

웹 사이트 프로젝트 파일에 배포할 파일 결정

웹 사이트 프로젝트 모델은 웹 애플리케이션 프로젝트 모델을 사용할 때 사용할 수 없는 기능인 자동 컴파일을 지원합니다. 명시적 컴파일을 사용하면 프로젝트의 소스 코드를 어셈블리로 컴파일하고 해당 어셈블리를 프로덕션 환경에 복사해야 합니다. 반면에 자동 컴파일을 사용하면 소스 코드를 프로덕션 환경에 복사하기만 하면 필요에 따라 런타임에 의해 컴파일됩니다.

Visual Studio의 빌드 메뉴 옵션은 웹 애플리케이션 프로젝트와 웹 사이트 프로젝트 모두에 있습니다. 웹 애플리케이션 프로젝트를 빌드하면 프로젝트의 소스 코드가 디렉터리에 있는 Bin 단일 어셈블리로 컴파일됩니다. 웹 사이트 프로젝트를 빌드하면 컴파일 시간 오류가 있는지 확인하지만 어셈블리는 만들지 않습니다. 웹 사이트 프로젝트 모델을 사용하여 개발된 ASP.NET 애플리케이션을 배포하려면 적절한 파일을 프로덕션 환경에 복사하기만 하면 되지만 컴파일 시간 오류가 없도록 먼저 프로젝트를 빌드하는 것이 좋습니다.

그림 3은 책 리뷰 웹 사이트 프로젝트를 구성하는 파일을 보여줍니다.

솔루션 탐색기 웹 사이트 프로젝트를 구성하는 파일을 나열합니다.

그림 3: 솔루션 탐색기 웹 사이트 프로젝트를 구성하는 파일을 나열합니다.

웹 사이트 프로젝트를 배포하려면 모든 ASP.NET 관련 파일을 프로덕션 환경에 복사해야 합니다. 여기에는 코드 파일과 함께 ASP.NET 페이지, master 페이지 및 사용자 컨트롤에 대한 태그 페이지가 포함됩니다. 클래스 파일(예: BasePage.vb)도 복사해야 합니다. BasePage.vb 파일은 클래스 파일에 대한 웹 사이트 프로젝트에서 사용되는 특수 ASP.NET 폴더인 폴더에 있습니다App_Code. 프로덕션 환경에서 특수 폴더를 만들어야 하며, 개발 환경의 App_Code 폴더에 있는 클래스 파일을 프로덕션의 App_Code 폴더에 복사해야 합니다.

ASP.NET 태그 및 소스 코드 파일을 복사하는 것 외에도 클라이언트 쪽 지원 파일(이미지 및 CSS 파일)과 다른 서버 쪽 지원 파일 및 Web.configWeb.sitemap을 복사해야 합니다.

참고

웹 사이트 프로젝트는 명시적 컴파일을 사용할 수도 있습니다. 이후 자습서에서는 웹 사이트 프로젝트를 명시적으로 컴파일하는 방법을 검토합니다.

요약

ASP.NET 애플리케이션을 배포하려면 개발 환경에서 프로덕션 환경으로 필요한 파일을 복사해야 합니다. 동기화해야 하는 정확한 파일 집합은 ASP.NET 애플리케이션의 코드가 명시적으로 컴파일되는지 또는 자동으로 컴파일되는지에 따라 달라집니다. 사용하는 컴파일 전략은 Visual Studio가 웹 애플리케이션 프로젝트 모델 또는 웹 사이트 프로젝트 모델을 사용하여 ASP.NET 애플리케이션을 관리하도록 구성되어 있는지 여부에 따라 영향을 받습니다.

웹 애플리케이션 프로젝트 모델은 명시적 컴파일을 사용하고 프로젝트의 코드를 폴더의 단일 어셈블리 Bin 로 컴파일합니다. 애플리케이션을 배포할 때 ASP.NET 페이지의 태그 부분과 폴더의 Bin 내용을 프로덕션 환경으로 푸시해야 합니다. 예를 들어 코드 파일 및 코드 숨김 클래스와 같은 애플리케이션의 소스 코드는 프로덕션 환경에 복사할 필요가 없습니다.

웹 사이트 프로젝트 모델은 기본적으로 자동 컴파일을 사용하지만, 이후 자습서에서 볼 수 있듯이 웹 사이트 프로젝트를 명시적으로 컴파일할 수 있습니다. 자동 컴파일을 사용하는 ASP.NET 애플리케이션을 배포하려면 태그 부분 소스 코드를 프로덕션 환경에 복사해야 합니다. 코드는 처음으로 요청될 때 프로덕션 환경에서 자동으로 컴파일됩니다.

이제 개발 환경과 프로덕션 환경 간에 동기화해야 하는 파일을 검토했으므로 Book Reviews 애플리케이션을 웹 호스트 공급자에 배포할 준비가 되었습니다.

행복한 프로그래밍!

추가 정보

이 자습서에서 설명하는 topics 대한 자세한 내용은 다음 리소스를 참조하세요.