source

ASP.NET 웹 사이트 또는 ASP.NET 웹 응용 프로그램?

nicesource 2023. 6. 3. 08:29
반응형

ASP.NET 웹 사이트 또는 ASP.NET 웹 응용 프로그램?

Visual Studio에서 새 ASP.NET 프로젝트를 시작하면 ASP.NET 웹 응용 프로그램을 만들거나 ASP.NET 웹 사이트를 만들 수 있습니다.

ASP.NET 웹 응용 프로그램과 ASP.NET 웹 사이트의 차이점은 무엇입니까?내가 왜 다른 것보다 하나를 선택하겠습니까?

사용 중인 Visual Studio 버전에 따라 답변이 다릅니까?

웹사이트:

사이트 프로젝트는 즉시 컴파일됩니다.DLL 파일이 훨씬 더 많아지는 문제가 발생할 수 있습니다.또한 다른 디렉토리가 아직 코드로 컴파일되지 않았기 때문에 한 디렉토리에 페이지 또는 컨트롤을 참조해야 하는 다른 디렉토리에 페이지 또는 컨트롤이 있을 때 문제가 발생합니다.출판에 또 다른 문제가 있을 수 있습니다.

Visual Studio에서 동일한 이름을 계속 다시 사용하라는 메시지가 표시되지 않으면 항상 페이지에서 생성되는 DLL 파일의 새 이름이 나타납니다.그러면 동일한 클래스 이름을 포함하는 DLL 파일의 여러 개의 근접 복사본이 생성되어 많은 오류가 발생할 수 있습니다.웹 사이트 프로젝트는 Visual Studio 2005와 함께 도입되었지만 인기가 없는 것으로 드러났습니다.

웹 응용 프로그램:

웹 응용 프로그램 프로젝트는 추가 기능으로 생성되었으며 현재 Visual Studio 2005용 SP 1의 일부로 존재합니다.주요 차이점은 웹 응용 프로그램 프로젝트가 Visual Studio 2003과 함께 제공된 웹 프로젝트와 유사하게 작동하도록 설계되었다는 것입니다.빌드 시 응용 프로그램을 단일 DLL 파일로 컴파일합니다.프로젝트를 업데이트하려면 프로젝트를 다시 컴파일하고 DLL 파일을 게시해야 변경 사항이 발생합니다.

웹 응용 프로그램 프로젝트의 또 다른 좋은 기능은 프로젝트 보기에서 파일을 제외하는 것이 훨씬 쉽다는 것입니다.웹 사이트 프로젝트에서 제외하는 각 파일의 이름은 파일 이름에 제외된 키워드를 사용하여 변경됩니다.웹 응용 프로그램 프로젝트에서 프로젝트는 이름을 바꾸지 않고 프로젝트 보기에 포함/제외할 파일을 추적하기만 하면 되므로 작업이 훨씬 쉬워집니다.

언급

ASP.NET 2.0 - 웹 사이트 대 웹 응용 프로그램 프로젝트 기사에서도 하나를 사용하고 다른 하나를 사용하지 않는 이유에 대해 설명합니다.다음은 발췌한 내용입니다.

  • 대형 Visual Studio .NET 2003 애플리케이션을 VS 2005로 마이그레이션해야 합니까?웹 응용 프로그램 프로젝트를 사용합니다.
  • 프로젝트 파일을 만들지 않고 디렉터리를 열고 웹 프로젝트로 편집하시겠습니까?웹 사이트 프로젝트를 사용합니다.
  • 컴파일 중에 빌드 전 단계와 빌드 후 단계를 추가해야 합니까?웹 응용 프로그램 프로젝트를 사용합니다.
  • 여러 웹 프로젝트를 사용하여 웹 애플리케이션을 구축해야 합니까?웹 응용 프로그램 프로젝트를 사용합니다.
  • 각 페이지에 대해 하나의 어셈블리를 생성하시겠습니까?웹 사이트 프로젝트를 사용합니다.
  • 각 페이지 뷰에 전체 사이트를 구축하지 않고 동적으로 편집하고 페이지 작업을 수행하는 것을 선호하십니까?웹 사이트 프로젝트를 사용합니다.
  • 코드 이면 모델보다 한 페이지 코드 모델을 선호하십니까?웹 사이트 프로젝트를 사용합니다.

웹 응용 프로그램 프로젝트 사이트 프로젝트(MSDN)는 웹 사이트와 웹 응용 프로그램 프로젝트의 차이점을 설명합니다.또한 Visual Studio에서 수행할 구성에 대해서도 설명합니다.

사이트는 IIS와 같은 ASP.NET 웹 서버에 배포하는 사이트입니다.파일과 폴더의 묶음입니다.웹 사이트에는 사용자를 Visual Studio에 연결하는 항목이 없습니다(프로젝트 파일이 없음).웹 페이지(예: .aspx, .ascx, .master)의 코드 생성 및 컴파일은 런타임에 동적으로 수행되며, 이러한 파일의 변경 사항은 프레임워크에 의해 감지되어 자동으로 다시 컴파일됩니다.특수 App_Code 폴더에 페이지 간에 공유하고자 하는 코드를 넣거나, 미리 컴파일하여 Bin 폴더에 어셈블리를 넣을 수 있습니다.

애플리케이션은 특별한 Visual Studio 프로젝트입니다.웹 사이트와의 주요 차이점은 프로젝트를 빌드할 때 모든 코드 파일이 하나의 어셈블리로 컴파일되어 bin 디렉토리에 배치된다는 것입니다. 코드 파일을 웹 서버에 배포하지 않습니다.공유 코드 파일을 위한 특별한 폴더를 두는 대신 클래스 라이브러리에서와 같이 파일을 어디에나 둘 수 있습니다.웹 응용 프로그램에는 프로젝트 및 코드 파일과 같이 배포할 수 없는 파일이 포함되어 있으므로 Visual Studio에는 게시 명령을 사용하여 지정된 위치로 웹 사이트를 출력합니다.

앱_코드 대 빈

일반적으로 공유 코드 파일을 배포하는 것은 좋지 않지만 그렇다고 해서 웹 응용 프로그램을 선택해야 하는 것은 아닙니다.웹 사이트의 모든 코드를 포함하는 클래스 라이브러리 프로젝트를 참조하는 웹 사이트를 가질 수 있습니다.웹 애플리케이션은 편리한 방법일 뿐입니다.

코드비하인드

이 항목은 .aspx 및 .ascx 파일에만 적용됩니다.이 항목은 파일 뒤에 코드를 사용하지 않는 ASP.NET MVC 및 ASP.NET 웹 페이지와 같은 새로운 응용 프로그램 프레임워크에서 점점 더 관련성이 높아집니다.

.aspx 페이지 및 .ascx 컨트롤의 코드 뒤에 있는 파일을 포함하여 모든 코드 파일을 단일 어셈블리로 컴파일하면 웹 응용 프로그램에서 작은 변경 사항마다 다시 빌드해야 하며 실시간 변경을 수행할 수 없습니다.웹 사이트의 변경 사항이 런타임에 의해 감지되고 페이지/컨트롤이 자동으로 다시 컴파일되는 동안 변경 사항을 보려면 계속 재구성해야 하므로 개발 중에 이 문제가 발생할 수 있습니다.

페이지/컨트롤에 고유한 이름을 지정하거나 다른 네임스페이스로 구성할 필요가 없으므로 어셈블리 뒤의 코드를 런타임에서 관리하는 것이 작업량을 줄일 수 있습니다.

코드 파일을 배포하는 것이 항상 좋은 생각이라고 말하는 것은 아니지만(특히 공유 코드 파일의 경우), 파일 뒤의 코드에는 UI 관련 작업을 수행하는 코드, 연결 이벤트 핸들러 등만 포함되어야 합니다.중요한 코드가 항상 Bin 폴더에 있도록 응용프로그램을 계층화해야 합니다.그런 경우 파일 뒤에 코드를 배포하는 것은 유해하다고 간주되지 않습니다.

웹 응용 프로그램의 또 다른 제한 사항은 프로젝트 언어만 사용할 수 있다는 것입니다.웹 사이트에서 일부 페이지는 C#, 일부 페이지는 VB 등으로 구성할 수 있습니다.특별한 Visual Studio 지원이 필요하지 않습니다.이것이 바로 빌드 공급자 확장성의 장점입니다.

또한 웹 응용 프로그램에서는 컴파일러가 클래스 뒤에 사용자의 코드만 컴파일하고 런타임에 컴파일되는 마크업 코드(MVC에서는 MvcBuildViews 옵션을 사용하여 이 문제를 해결할 수 있음)를 컴파일하지 않으므로 페이지/컨트롤에서 오류를 감지할 수 없습니다.

비주얼 스튜디오

웹 응용 프로그램은 Visual Studio 프로젝트이므로 웹 사이트에서 사용할 수 없는 일부 기능을 사용할 수 있습니다.예를 들어 빌드 이벤트를 사용하여 다양한 작업(예: Javascript 파일 최소화 및/또는 결합)을 수행할 수 있습니다.

Visual Studio 2010에 도입된 또 다른 좋은 기능은 Web.config 변환입니다.웹 사이트에서도 사용할 수 없습니다.이제 VS 2013에서 웹 사이트와 함께 작동합니다.

웹 응용프로그램을 작성하는 것이 특히 대규모 사이트의 경우 웹 사이트를 작성하는 것보다 빠릅니다.이는 주로 웹 응용프로그램이 마크업 코드를 컴파일하지 않기 때문입니다.MVC에서 MvcBuildViews를 true로 설정하면 마크업 코드가 컴파일되고 오류 감지가 발생하므로 매우 유용합니다.단점은 솔루션을 구축할 때마다 전체 사이트가 구축된다는 것입니다. 이는 특히 사이트를 편집하지 않을 경우 속도가 느리고 비효율적일 수 있습니다.MvcBuildViews를 켜거나 끌 수 있습니다(프로젝트 언로드가 필요함).한편, 웹 사이트에서는 솔루션의 일부로 사이트를 구축할지 여부를 선택할 수 있습니다.그렇지 않은 경우에는 솔루션을 구축하는 것이 매우 빠르며 변경한 경우 언제든지 웹 사이트 노드를 클릭하고 빌드를 선택할 수 있습니다.

MVC 웹 응용 프로그램 프로젝트에는 '보기 추가', '보기로 이동', '컨트롤러 추가' 등과 같은 일반적인 작업을 위한 추가 명령 및 대화 상자가 있습니다.이러한 기능은 MVC 웹 사이트에서 사용할 수 없습니다.

IIS Express를 개발 서버로 사용하는 경우 웹 사이트에서 가상 디렉터리를 추가할 수 있습니다.이 선택사항은 웹 응용프로그램에서 사용할 수 없습니다.

NuGet 패키지 복원이 웹 사이트에서 작동하지 않습니다. 패키지에 나열된 패키지를 수동으로 설치해야 합니다.config 패키지 복원은 이제 NuGet 2.7을 시작하는 웹 사이트에서 작동합니다.

사이트 = 그래픽 디자이너가 웹 사이트를 만들고 프로그래머가 한 페이지 또는 두 페이지만 편집할 때 사용합니다.

응용 프로그램 = 프로그래머가 응용 프로그램을 만들고 그래픽 디자이너가 한 두 개의 페이지/페이지만 편집할 때 사용합니다.

프로젝트 파일을 업데이트할 필요가 없기 때문에 개발자 스튜디오 없이 HTML 도구를 사용하여 웹 사이트를 작업할 수 있습니다.웹 애플리케이션은 팀이 대부분 개발자 스튜디오를 사용하고 있고 높은 코드 콘텐츠가 있을 때 가장 좋습니다.

(일부 코딩 오류는 컴파일 시 웹 응용프로그램에서 발견되지만 실행 시간까지 웹 사이트에서 찾을 수 없습니다.)

경고: 저는 이 답변을 수년 전에 썼고 그 이후로 Asp.net 을 사용하지 않았습니다.저는 이제 상황이 바뀌었다고 생각합니다.

동적으로 컴파일된 프로젝트가 필요한 경우가 아니면 웹 사이트 프로젝트를 사용하지 마십시오.

왜 그럴까요? 왜냐하면 웹사이트 프로젝트는 여러분의 프로젝트를 바꾸거나 이해하려고 할 때 여러분을 궁지로 몰아넣을 것이기 때문입니다.Visual Studio의 정적 타이핑 찾기 기능(예: 용도 찾기, 리팩터)은 모두 합리적인 크기의 프로젝트에 영구적으로 필요합니다.자세한 내용은 Visual Studio에서 스택 오버플로 문제 느린 "모든 참조 찾기"를 참조하십시오.

왜 Visual Studio 2005에서 고통을 유발하고, 정신을 맑게 하며, 생산성을 떨어뜨리는 카번클 웹 사이트 프로젝트 유형을 위해 웹 애플리케이션을 삭제했는지 정말 이해할 수 없습니다.

MSDN에는 다음과 같은 차이점을 설명하는 기사가 있습니다.

웹 사이트 프로젝트와 웹 응용 프로그램 프로젝트 비교

BTW: 이 주제에 대해 다음과 같은 몇 가지 유사한 질문이 있습니다.

이것은 다소 당연하게 들릴 수 있지만, Visual Studio 2005는 원래 웹 사이트와 함께 제공되었기 때문에 오해의 소지가 있다고 생각합니다.프로젝트가 상당히 제한적이고 논리적 또는 물리적 분리가 많지 않은 웹 사이트를 다루는 경우 해당 웹 사이트는 문제가 없습니다.그러나 많은 사용자가 데이터를 추가하고 업데이트하는 모듈이 다른 웹 응용 프로그램이라면 웹 응용 프로그램을 사용하는 것이 더 좋습니다.

웹사이트 모델의 가장 큰 증거는 무엇이든app_code섹션이 동적으로 컴파일됩니다.완전한 재배포 없이 C# 파일 업데이트를 수행할 수 있습니다.하지만 이것은 큰 희생을 치릅니다.이불 속에서 통제하기 어려운 많은 일들이 일어납니다.네임스페이스는 제어하기 어렵고 특정 DLL 사용은 기본적으로 아래의 모든 항목에 대해 창 밖으로 사라집니다.app_code모든 것이 동적으로 컴파일되기 때문입니다.

웹 애플리케이션 모델은 동적 컴파일 기능을 가지고 있지 않지만, 당신은 제가 언급한 것들을 통제할 수 있습니다.

만약 당신이 n-계층 개발을 하고 있다면, 나는 웹 애플리케이션 모델을 적극 추천합니다.제한된 웹 사이트나 빠르고 더러운 구현을 수행하는 경우 웹 사이트 모델에 이점이 있을 수 있습니다.

보다 자세한 분석은 다음에서 확인할 수 있습니다.

MCTS 자체 학습 키트 시험 70-515 책에서:

웹 애플리케이션(프로젝트)을 사용하면,

  1. MVC 응용 프로그램을 만들 수 있습니다.
  2. Visual Studio는 폴더 구조에 의존하지 않고 프로젝트 파일(.csproj 또는 .vbproj)에 파일 목록을 저장합니다.
  3. Visual Basic과 C#은 함께 사용할 수 없습니다.
  4. 디버깅 세션을 중지하지 않고는 코드를 편집할 수 없습니다.
  5. 여러 웹 프로젝트 간에 종속성을 설정할 수 있습니다.
  6. 배포하기 전에 응용프로그램을 컴파일해야 하므로 다른 페이지가 컴파일되지 않을 경우 페이지를 테스트할 수 없습니다.
  7. 서버에 소스 코드를 저장할 필요가 없습니다.
  8. 어셈블리 이름과 버전을 제어할 수 있습니다.
  9. 배포 후에는 다시 컴파일하지 않고 개별 파일을 편집할 수 없습니다.

그것은 당신이 개발하고 있는 것에 달려 있습니다.

내용 중심의 웹 사이트는 내용이 자주 변경될 것이며 웹 사이트가 이를 위해 더 좋습니다.

응용프로그램은 데이터베이스에 데이터를 저장하고 페이지와 코드가 거의 변경되지 않는 경향이 있습니다.이 경우 어셈블리 배포가 훨씬 더 제어되고 장치 테스트를 더 잘 지원하는 웹 응용 프로그램이 더 좋습니다.

Compilation 우선 컴파일에 차이가 있습니다.웹 사이트는 서버에서 미리 컴파일되지 않고 파일로 컴파일됩니다.웹 사이트에서 무언가를 변경하려는 경우 서버에서 특정 파일을 다운로드하고 변경한 후 이 파일을 다시 서버로 업로드하면 모든 것이 정상적으로 작동하기 때문에 이점이 될 수 있습니다.웹 응용 프로그램에서는 모든 것이 미리 컴파일되어 있고 DLL이 하나만 남아 있기 때문에 이 작업을 수행할 수 없습니다.프로젝트의 한 파일에서 무언가를 변경할 때는 모든 것을 다시 컴파일해야 합니다.따라서 서버의 일부 파일을 변경하려면 웹 사이트를 사용하는 것이 좋습니다.또한 많은 개발자가 하나의 웹 사이트에서 작업할 수 있습니다.반대로 코드를 서버에서 사용할 수 없도록 하려면 웹 응용 프로그램을 선택해야 합니다.이 옵션은 웹 사이트를 게시한 후 하나의 DLL 파일이 생성되므로 장치 테스트에도 더 적합합니다.

Project structure 프로젝트의 구조에도 차이가 있습니다.웹 응용 프로그램에는 일반 응용 프로그램과 동일한 프로젝트 파일이 있습니다.웹 사이트에는 기존 프로젝트 파일이 없으며 솔루션 파일만 있습니다.모든 참조 및 설정은 web.config 파일에 저장됩니다.@Page directive @Page 지시문에는 이 페이지와 연결된 클래스를 포함하는 파일에 대한 다른 속성이 있습니다.웹 응용 프로그램에서는 표준 "CodeBeynd"이며, 웹 사이트에서는 "CodeFile"을 사용합니다.아래 예제에서 이를 확인할 수 있습니다.

웹 응용 프로그램:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"  
Inherits="WebApplication._Default" %>  

웹사이트:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

네임스페이스 - 위의 예제에서는 네임스페이스가 어떻게 작성되는지에 대한 또 다른 차이점도 볼 수 있습니다.웹 응용 프로그램에서 네임스페이스는 단순히 프로젝트의 이름입니다.웹 사이트에는 동적으로 컴파일된 페이지에 대한 기본 네임스페이스 ASP가 있습니다.

편집 및 계속 - 웹 응용 프로그램 편집 및 계속 옵션을 사용할 수 있습니다(설정하려면 도구 메뉴에서 옵션을 클릭한 다음 디버깅에서 편집 및 계속을 클릭해야 합니다).이 기능은 웹 사이트.ASP.NET MVC에서 작동하지 않습니다. 다음을 사용하여 웹 응용 프로그램을 개발하려는 경우

ASP.NET MVC(모델 보기 컨트롤러)의 최상의 기본 옵션은 웹 응용 프로그램입니다.웹 사이트에서 MVC를 사용할 수 있지만 권장되지 않습니다.

요약 - ASP.NET 웹 응용프로그램과 웹 사이트의 가장 중요한 차이점은 컴파일입니다.따라서 소수의 사람들이 수정할 수 있는 더 큰 프로젝트를 수행하는 경우에는 웹 사이트를 사용하는 것이 좋습니다.그러나 소규모 프로젝트를 수행하는 경우에는 웹 응용 프로그램도 사용할 수 있습니다.

예, 웹 응용 프로그램은 웹 사이트보다 훨씬 낫습니다. 웹 응용 프로그램은 우리에게 자유를 주기 때문입니다.

  1. 하나의 우산 아래 여러 프로젝트를 두고 프로젝트 종속성을 설정합니다.예: PCS의 경우 웹 애플리케이션 내에서 다음과 같은 기능을 제공할 수 있습니다.

    • 웹 포털
    • 알림 컨트롤러(전자 메일 전송용)
    • 비즈니스 계층
    • 데이터 액세스 계층
    • 예외 관리자
    • 서버 유틸리티
    • WCF 서비스(모든 플랫폼에 공통)
    • 리스트 항목
  2. ASP.NET 페이지와 연결된 클래스 파일에 있는 코드에 대해 단위 테스트를 실행하려면 다음과 같이 하십시오.

  3. 독립 실행형 클래스의 페이지 및 사용자 컨트롤과 연결된 클래스를 참조합니다.
  4. 전체 사이트에 대한 단일 어셈블리를 작성하려면 다음과 같이 하십시오.
  5. 사이트에 대해 생성된 어셈블리 이름 및 버전 번호에 대한 제어
  6. 소스 코드를 프로덕션 서버에 배치하지 않도록 하려면 IIS 서버에 소스 코드를 배포하지 않도록 해야 합니다.공유 호스팅 환경과 같은 일부 시나리오에서는 IIS 서버의 소스 코드에 대한 무단 액세스가 우려될 수 있습니다.(웹 사이트 프로젝트의 경우 개발 컴퓨터에서 사전 컴파일하고 소스 코드 대신 생성된 어셈블리를 배포하여 이러한 위험을 방지할 수 있습니다.그러나 이 경우 쉬운 사이트 업데이트의 이점을 일부 잃게 됩니다.)
  7. 웹 사이트 성능 문제(웹 사이트에 대한 첫 번째 요청으로 인해 사이트를 컴파일해야 할 수 있으며, 이로 인해 지연될 수 있습니다.또한 웹 사이트가 메모리가 부족한 IIS 서버에서 실행되는 경우 전체 사이트를 단일 어셈블리에 포함하면 여러 어셈블리에 필요한 것보다 더 많은 메모리를 사용할 수 있습니다.)

주요 차이점 중 하나는 웹 사이트가 동적으로 컴파일되고 즉시 어셈블리를 만든다는 것입니다.웹 애플리케이션은 하나의 큰 어셈블리로 컴파일됩니다.

Visual Studio 2008에서는 이 둘을 구분할 수 없습니다.

일반적으로 응용 프로그램은 배포 전에 컴파일되지만 웹 사이트는 app_code 디렉터리를 사용합니다.앱 코드 폴더가 변경되면 서버가 코드를 다시 컴파일합니다.즉, 웹 사이트에서 코드를 즉시 추가/변경할 수 있습니다.

앱의 장점은 재컴파일이 없으므로 초기 시작 시간이 더 빨라진다는 것입니다.

ASP.NET 웹사이트에서 웹 애플리케이션 프로젝트와 웹 배포 프로젝트 비디오를 보는 것을 추천합니다. 이것은 저에게 큰 도움이 되었습니다.

그런데, 제목을 혼동하지 마십시오. 동영상의 상당 부분은 웹 사이트 프로젝트와 웹 응용 프로그램 프로젝트의 차이점과 Microsoft가 Visual Studio 2005에 웹 응용 프로그램 프로젝트를 다시 도입한 이유를 설명합니다(이미 아시다시피,원래 웹 사이트 프로젝트만 함께 제공되었으며 SP1에 웹 응용 프로그램 프로젝트가 추가되었습니다.차이점을 알고 싶은 사람에게 추천하는 멋진 비디오입니다.

"웹 사이트"는 특별한 App_Code 디렉터리에 코드가 있으며 런타임에 여러 DLL(어셈블리)로 컴파일됩니다."웹 응용프로그램"은 하나의 DLL로 미리 컴파일됩니다.

웹사이트와 프로젝트>>웹사이트는 비주얼 스튜디오를 사용하여 ASP.NET 애플리케이션을 만드는 두 가지 다른 방법입니다.하나는 프로젝트가 없는 것이고 다른 하나는 프로젝트 환경입니다.차이점 영역

  1. 솔루션 파일은 프로젝트 환경의 루트 디렉터리와 동일한 디렉터리에 저장됩니다.
  2. 프로젝트 환경에 배포하기 전에 솔루션 및 프로젝트 파일을 제거해야 합니다.
  3. 전체 루트 디렉터리는 프로젝트가 없는 환경에 배포됩니다.

두 가지 접근법을 사용하는 데 있어 기본적인 차이는 별로 없습니다.그러나 시간이 더 오래 걸리는 웹 사이트를 만드는 경우 프로젝트 환경을 선택합니다.

웹 응용 프로그램 프로젝트 모델

  • Visual Studio .NET 웹 프로젝트와 동일한 웹 프로젝트 의미를 제공합니다.프로젝트 파일(프로젝트 파일 기반 구조)이 있습니다.빌드 모델 - 프로젝트의 모든 코드가 단일 어셈블리로 컴파일됩니다.IIS와 기본 제공 ASP.NET Development 서버를 모두 지원합니다.Visual Studio 2005(리팩터링, 제네릭 등) 및 ASP.NET(마스터 페이지, 구성원 자격 및 로그인, 사이트 탐색, 테마 등)의 모든 기능을 지원합니다.FPSE(FrontPage Server Extensions) 사용은 더 이상 필요하지 않습니다.

웹 사이트 프로젝트 모델

  • 프로젝트 파일이 없습니다(파일 시스템 기준).
  • 새로운 컴파일 모델.
  • 각 페이지 보기에서 전체 사이트를 구성하지 않고 동적으로 편집하고 페이지 작업을 수행합니다.
  • IIS와 기본 제공 ASP.NET Development 서버를 모두 지원합니다.
  • 각 페이지에는 자체 어셈블리가 있습니다.
  • 다른 코드 모델입니다.

ASP.NET에는 사용자가 응용프로그램의 보안과 쉬운 유지관리에 필요한 유연한 기능이 포함되어 있습니다.

웹 응용 프로그램을 ASP.NET 프레임워크 내에서 실행되는 이진 파일로 생각할 수 있습니다.또한 소스 코드를 검토하고 쉽게 배포할 수 있는 정적 웹 페이지로서의 웹 사이트입니다.

하지만 이 두 가지 ASP.NET 기술의 장점과 단점은 좋은 것입니다.

웹 사이트 - 솔루션 파일이 생성되지 않습니다.만약 우리가 웹사이트를 만들고 싶다면, 비주얼 스튜디오가 필요하지 않습니다.

웹 응용 프로그램 - 솔루션 파일이 만들어집니다.우리가 웹 애플리케이션을 만들려면 시각적 스튜디오가 필요합니다.의 일단데생다니성합을 입니다..dll파일이 bin 폴더에 있습니다.

웹 응용 프로그램에서는 프로젝트 기능의 계층을 생성할 수 있으며 여러 프로젝트로 분할하여 계층 간 상호 종속성을 생성할 수 있지만 웹 사이트에서는 이 작업을 수행할 수 없습니다.

웹 응용 프로그램 프로젝트에서 Visual Studio는 페이지 및 사용자 컨트롤을 위한 추가 .designer 파일이 필요합니다.웹 사이트 프로젝트에는 이 오버헤드가 필요하지 않습니다.마크업 자체가 디자인으로 해석됩니다.

웹사이트 : app_code 폴더를 자동으로 생성하며, 사용자가 서버에 게시한 후 특정 파일이나 페이지에서 일부 변경을 수행하면 모든 파일을 컴파일할 필요가 없습니다.

웹 응용 프로그램은 생성하지 않는 웹 사이트와 사용자가 한 파일에서 변경할 경우 변경 사항을 반영하기 위해 전체 프로젝트를 컴파일해야 하는 것보다 솔루션 파일을 자동으로 생성합니다.

웹 애플리케이션, 단일 DLL 파일 및 유지 관리가 용이합니다.그러나 웹 사이트는 더 유연합니다. 이동 중에 aspx 파일을 편집할 수 있습니다.

웹 응용 프로그램은 하나의 어셈블리로 컴파일할 수밖에 없기 때문에 더 많은 메모리가 필요합니다.방금 대형 레거시 사이트를 웹 응용 프로그램으로 변환했는데, 컴파일 시 메모리가 부족한 문제가 있습니다. 둘 다 아래와 같은 오류 메시지가 표시됩니다.

Unexpected error writing metadata to file '' -- 
Not enough storage is available to complete this operation. 

오류 및 런타임에 아래와 같은 오류 메시지가 표시됩니다.

Exception information: 
    Exception type: HttpException 
    Exception message: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()

메모리가 제한된 레거시 하드웨어에서 더 큰 사이트를 변환하는 방법은 웹 사이트 모델로 되돌리는 옵션을 선택하는 것입니다.초기 성공 후에도 나중에 문제가 슬금슬금 발생할 수 있습니다.

웹 지원 응용 프로그램은 웹 사이트의 예입니다.

웹 지원 응용 프로그램은 웹 사이트의 예입니다.웹 사이트와 웹 응용 프로그램은 모두 요구 사항에 따라 동적/정적일 수 있습니다. 여기 웹 사이트와 웹 응용 프로그램의 작동을 이해하는 예가 있습니다.

위의 답변 중 일부를 요약하면 다음과 같습니다.

페이지를 실시간으로 변경할 수 있습니까?

사이트: 가능합니다.찬성: 단기 혜택.반대: 프로젝트 혼란의 장기적인 위험.

앱: 단점: 사용할 수 없습니다.페이지를 편집하고 변경 내용을 소스 제어에 보관한 다음 전체 사이트를 빌드하고 배포합니다.찬성: 품질 프로젝트를 유지합니다.

개발 문제

사이트: .csproj 파일 없이 간단한 프로젝트 구조입니다.두 개의 .aspx 페이지는 충돌 없이 동일한 클래스 이름을 가질 수 있습니다..net 프레임워크가 자체 생성 파일과 충돌하는 이유 및 .net 프레임워크가 자체 생성 파일과 충돌하는 이유와 같은 빌드 오류로 이어지는 임의 프로젝트 디렉터리 이름입니다.찬성: 단순(단순).단점: 불규칙함.

앱: .csproj 파일이 있는 WebForms 프로젝트와 유사한 프로젝트 구조입니다.asp 페이지의 클래스 이름은 고유해야 합니다.찬성: 심플(스마트).반대: 웹 앱은 여전히 간단하기 때문에 없습니다.

언급URL : https://stackoverflow.com/questions/398037/asp-net-web-site-or-asp-net-web-application

반응형