ASP.NET 웹 양식
ASP.NET Web Forms원본 작성자 | 마이크로소프트 |
---|---|
초기 릴리즈 | 2002년; | 전(
운영 체제 | 창문들 |
플랫폼 | .NET Framework |
유형 | 웹 응용 프로그램 프레임워크 |
웹사이트 | dotnet |
ASP.NET Web Forms는 웹 애플리케이션 프레임워크이며 마이크로소프트 ASP가 지원하는 여러 프로그래밍 모델 중 하나이다.NET 기술.웹 양식 애플리케이션은 C# 또는 Visual Basic과 같이 Common Language Runtime을 지원하는 모든 프로그래밍 언어로 작성될 수 있다.웹 양식 페이지의 주요 구성 요소는 서버 제어로, HTML 마크업 렌더링 및 이벤트 대응을 담당하는 재사용 가능한 구성요소들이다.[1]보기 상태라는 기법은 보통 상태 비저장 HTTP 요청 간에 서버 제어 상태를 유지하기 위해 사용된다.[2]
웹 양식은 원본에 포함되었다.2002년 NET Framework 1.0 릴리즈( 참조).NET Framework 버전 기록 및 ASP.ASP에서 사용할 수 있는 첫 번째 프로그래밍 모델로서 NET 버전 기록).최신 ASP와는 달리 NET.NET 구성 요소, 웹 양식은 ASP가 지원하지 않는다.NET Core.[3]
특성.
공식적으로 웹 양식이라고 알려진 ASP.NET 웹 페이지는 ASP에서 응용 프로그램 개발을 위한 주요 구성 요소였다.[4]MVC 도입 전 NET.[5]웹 양식에는 웹 애플리케이션 형식과 웹 사이트 형식이라는 두 가지 기본 방법론이 있다.[6]웹 애플리케이션은 배포 전에 컴파일되어야 하며, 웹 사이트는 사용자가 사전 컴파일 없이 서버에 직접 파일을 복사할 수 있도록 한다.웹 양식은 확장명이 ".aspx"인 파일에 포함되어 있으며, 이러한 파일에는 일반적으로 정적(X)이 포함되어 있다.HTML 마크업 또는 구성요소 마크업.구성요소 표시는 프레임워크나 웹 페이지에 정의된 서버측 웹 컨트롤과 사용자 제어를 포함할 수 있다.예를 들어, 텍스트 상자 구성요소는 페이지에서 다음과 같이 정의될 수 있다.<asp:textbox id='myid' runat='server'>
html 입력 상자로 렌더링된다.또한 서버에서 실행되는 동적 코드는 블록 내의 페이지에 배치될 수 있다.<% -- dynamic code -- %>
PHP, JSP, ASP와 같은 다른 웹 개발 기술과 유사하다.ASP와 함께.NET Framework 2.0은 동적 코드가 .aspx.vb 또는 .aspx.cs 또는 .aspx.fs 파일(사용되는 프로그래밍 언어에 따라 달라짐)[7]에 들어가는 동안 정적 텍스트를 .aspx 페이지에 유지할 수 있도록 하는 새로운 코드-위드 모델을 도입했다.
코드-뒤집기 모형
마이크로소프트는 이 코드를 별도의 파일이나 특별히 지정된 스크립트 태그에 넣는 코드-바이드 모델을 사용하여 동적 프로그램 코드를 처리할 것을 권고한다.코드-백그라운드 파일은 일반적으로 "MyPage.aspx.cs" 또는 "MyPage.aspx.vb"와 같은 이름을 가지고 있는 반면 페이지 파일은 MyPage.aspx(페이지 파일 이름(ASPX)로 표시되지만 최종 확장자는 페이지 언어를 나타낸다.이러한 관행은 Visual Studio 및 기타 IDE에서 자동으로 이루어지지만 사용자는 코드-백페이지 이름을 변경할 수 있다.또한 웹 애플리케이션 형식에서 pagename.aspx.cs은 pagename.designer.cs 파일에 연결되는 부분 클래스다.디자이너 파일은 ASPX 페이지에서 자동 생성되는 파일로, 프로그래머가 ASP에서 필요했던 대로 수동으로 선언할 필요 없이 코드 뒤 페이지에서 ASPX 페이지의 구성요소를 참조할 수 있다.버전 2 이전의 NET 버전.[8]개발자는 이러한 형식의 프로그래밍을 사용할 때, 문서의 절차적 단계적 검토가 아닌 로드되는 페이지나 클릭되는 컨트롤과 같은 다른 이벤트에 응답하기 위해 코드를 작성한다.
ASP.NET의 코드-바이드 모델은 개발자들이 프리젠테이션과 콘텐츠의 분리를 염두에 두고 애플리케이션을 구축하도록 장려한다는 점에서 클래식 ASP에서 탈피한 것이다.이론적으로, 예를 들어, 이것은 웹 디자이너가 그것을 구동하는 프로그래밍 코드를 방해할 가능성이 적은 설계 마크업에 초점을 맞출 수 있게 한다.이는 MVC(모델-뷰-컨트롤러) 프레임워크의 뷰에서 컨트롤러를 분리하는 것과 유사하다.
지시
지시는 ASP의 방법에 대한 특별 지침이다.NET는 페이지를 처리해야 한다.[9]가장 일반적인 지시는<%@ Page %>
ASP가 사용하는 많은 속성을 지정할 수 있다.NET 페이지 구문 분석기 및 컴파일러.
사용자 컨트롤
사용자 컨트롤은 ASP에서 컨트롤로 등록되고 사용되는 페이지 섹션의 캡슐화다.네트
사용자 정의 컨트롤
프로그래머들은 또한 ASP를 위한 맞춤형 제어장치를 만들 수 있다.NET 애플리케이션.사용자 제어와 달리, 이러한 제어장치에는 ASCX 마크업 파일이 없으며, 모든 코드가 동적 링크 라이브러리(DLL) 파일로 컴파일된다.이러한 사용자 정의 컨트롤은 여러 웹 애플리케이션과 Visual Studio 2013 프로젝트에서 사용될 수 있다.
렌더링 기법
.NET는 "방문 합성" 렌더링 기법을 사용한다.컴파일하는 동안 템플릿(.aspx) 파일은 원래 템플릿을 나타내는 제어 트리(복합)를 작성하는 초기화 코드로 컴파일된다.리터럴 텍스트는 리터럴 제어 클래스의 인스턴스에 들어가고 서버 제어는 특정 제어 클래스의 인스턴스에 의해 표현된다.초기화 코드는 사용자 작성 코드(일반적으로 다중 부분 클래스의 조합에 의해)와 결합되어 페이지별 클래스가 된다.그 페이지는 제어 트리의 루트로서 두 배가 된다.
페이지에 대한 실제 요청은 여러 단계를 거쳐 처리된다.먼저 초기화 단계 중에 페이지 클래스의 인스턴스가 생성되고 초기화 코드가 실행된다.이렇게 하면 초기 제어 트리가 생성되며, 이 트리는 일반적으로 다음 단계에서 페이지의 방법에 의해 조정된다.트리의 각 노드는 클래스의 인스턴스로 대표되는 컨트롤이므로, 코드는 트리 구조를 변경할 뿐만 아니라 개별 노드의 속성/방법도 조작할 수 있다.마지막으로 렌더링 단계 동안 방문자는 트리의 모든 노드를 방문하여 각 노드에게 방문자의 방법을 사용하여 렌더링할 것을 요청한다.결과 HTML 출력은 클라이언트로 전송된다.
요청이 처리된 후 페이지 클래스의 인스턴스는 삭제되고 이 인스턴스와 함께 전체 제어 트리.이것은 초보 ASP들 사이에서 혼란의 원천이다.페이지 요청/응답 주기마다 손실되는 클래스 인스턴스 멤버에 의존하는 NET 프로그래머.
국가관리
ASP.NET 애플리케이션은 웹 서버에 의해 호스팅되며 상태 비저장 HTTP 프로토콜을 사용하여 액세스된다.이와 같이, 애플리케이션이 상태 저장적 상호작용을 사용하는 경우, 그것은 스스로 상태 관리를 구현해야 한다.ASP.NET은 국가 관리를 위한 다양한 기능을 제공한다.개념적으로 마이크로소프트는 "상태"를 GUI 상태로 취급한다.애플리케이션이 "데이터 상태"를 추적해야 하는 경우 문제가 발생할 수 있다. 예를 들어, 요청 사이의 과도 상태(지속 평가) 또는 초기화에 오랜 시간이 걸릴 수 있는 유한 상태 기계.ASP의 상태 관리.인증이 있는 NET 페이지는 웹 스크래핑을 어렵거나 불가능하게 만들 수 있다.
적용
애플리케이션 상태는 공유 사용자 정의 변수의 집합에 의해 유지된다.이러한 설정은 다음과 같은 경우에 설정되고 초기화된다.Application_OnStart
응용 프로그램의 첫 번째 인스턴스 로딩에 대한 이벤트 화재. 마지막 인스턴스가 종료될 때까지 사용할 수 있다.응용 프로그램 상태 변수에 액세스하려면Applications
응용 프로그램 상태에 대한 래퍼를 제공하는 컬렉션.응용 프로그램 상태 변수는 이름으로 식별된다.[10]적용은 국가 관리다.
세션 상태
서버측 세션 상태는 사용자 세션 중에 지속되는 사용자 정의 세션 변수 집합에 의해 유지된다.다음 변수를 사용하여 액세스하십시오.Session
각 세션 인스턴스에 고유한 컬렉션.세션이 종료되지 않더라도 정의된 비활성 시간 후에 변수가 자동으로 소멸되도록 설정할 수 있다.클라이언트측 사용자 세션은 쿠키 또는 URL 자체의 세션 ID를 인코딩하여 유지 관리된다.[10]
ASP.NET은 서버측 세션 변수에 대해 세 가지 지속성 모드를 지원한다.[10]
- 인프로세스
- 세션 변수는 ASP 내에서 유지된다.NET 프로세스.이것이 가장 빠른 방법이다. 그러나 이 모드에서는 ASP가 실행되면 변수가 파괴된다.NET 공정을 재활용하거나 종료한다.
- 상태 서버 모드
- ASP.NET은 상태 변수를 유지하는 별도의 윈도우즈 서비스를 실행한다.왜냐하면 ASP 외부에서 국가 관리가 이루어지기 때문이다.ASP 때문에 NET 프로세스.NET 엔진은 을 사용하여 데이터에 액세스한다.NET 원격 설치, ASPState는 In-Process보다 느리다.이 모드는 ASP를 허용한다.여러 서버에 걸쳐 로드 밸런싱 및 확장되는 NET 애플리케이션국가 관리 서비스는 ASP와는 독립적으로 운영되기 때문이다.NET, 세션 변수는 ASP에서 지속될 수 있다.NET 프로세스가 종료됨.그러나 세션 상태 서버는 하나의 인스턴스로 실행되기 때문에 세션 상태의 오류 지점 중 하나이다.세션 상태 서비스는 로드 밸런싱을 할 수 없으며 세션 변수에 저장할 수 있는 유형에 제한이 있다.
- SQL Server 모드
- 상태 변수는 데이터베이스에 저장되어 ASP에서 세션 변수를 유지할 수 있다.NET 프로세스가 종료됨.이 모드의 주요 장점은 응용프로그램이 서버 클러스터의 부하를 분산시켜 서버 간 세션을 공유할 수 있다는 것이다.이것은 ASP에서 가장 느린 세션 상태 관리 방법이다.네트
ASP.NET 세션 상태를 사용하면 사용자가 ASP를 탐색할 때 사용자의 값을 저장하고 검색할 수 있다.웹 응용 프로그램의 NET 페이지.HTTP는 상태 비저장 프로토콜이다.이것은 웹 서버가 페이지에 대한 각 HTTP 요청을 독립된 요청으로 처리한다는 것을 의미한다.서버는 이전 요청 시 사용된 변수 값에 대한 지식을 보유하지 않는다.ASP.NET 세션 상태는 세션으로 제한된 시간 동안 동일한 브라우저의 요청을 식별하고 세션 기간 동안 변수 값을 유지할 수 있는 방법을 제공한다.기본적으로 ASP.모든 ASP에 대해 NET 세션 상태가 활성화됨.NET 애플리케이션.
세션 상태에 대한 대안은 다음과 같다.
- ASP의 모든 사용자가 액세스할 수 있는 변수를 저장하는 애플리케이션 상태.NET 애플리케이션.
- 프로필 속성 - 만료되지 않고 데이터 저장소에서 사용자 값을 유지하는 속성.
- ASP.NET 캐싱 - 모든 ASP가 사용할 수 있는 메모리에 값을 저장한다.NET 애플리케이션.
- 페이지의 값을 유지하는 상태 보기.
- 쿠키
- HTTP 요청에서 사용할 수 있는 HTML 양식의 쿼리 문자열 및 필드.
상태 보기
View state는 ASP가 내보내는 HTML 페이지에 의해 활용되는 페이지 레벨 상태 관리 메커니즘을 말한다.웹 양식 제어 및 위젯의 상태를 유지하기 위한 NET 응용 프로그램.컨트롤의 상태는 인코딩되어, 다음과 같이 알려진 숨겨진 필드에서 모든 양식 제출 시 서버로 전송된다.__VIEWSTATE
서버는 페이지를 다시 렌더링할 때 컨트롤이 마지막 상태로 렌더링되도록 변수를 다시 전송한다.서버 측에서, 프로세싱에 어떤 제어의 상태 변경이 필요한 경우, 애플리케이션은 보기 상태를 변경할 수 있다.개별 제어의 상태는 서버에서 디코딩되며 ASP에서 사용할 수 있다.NET 페이지:ViewState
수집의[11]
이것의 주된 용도는 우체국 전체에 걸쳐 양식 정보를 보존하는 것이다.View state는 기본적으로 켜져 있으며, 일반적으로 포스트백(postback) 중에 실제로 사용되는지 여부에 관계없이 페이지의 모든 컨트롤에 있는 데이터를 직렬화한다.그러나 View 상태는 제어당, 페이지당 또는 서버 전체에서 비활성화될 수 있으므로 이러한 동작을 수정할 수 있으며 수정해야 한다.
뷰 상태 데이터를 포함하는 Base64 문자열은 쉽게 디시리얼화될 수 있으므로 개발자는 민감한 정보나 개인 정보를 페이지나 컨트롤의 뷰 상태로 저장하는 것을 경계할 필요가 있다.기본적으로 보기 상태는 암호화되지 않음__VIEWSTATE
가치. 암호화는 서버 전체(및 서버별) 단위로 실행될 수 있어 일정 수준의 보안을 유지할 수 있다.[12]
서버측 캐싱
ASP.NET은 애플리케이션 전체에서 공유되는 "Cache" 개체를 제공하며 다양한 개체를 저장하는 데도 사용할 수 있다."Cache" 개체는 지정된 시간 동안만 데이터를 보관한다.
기타
ASP가 지원하는 기타 국가 관리 수단.NET는 쿠키, 캐싱 및 쿼리 문자열이다.
템플릿 엔진
처음 출시되었을 때 ASP.NET에는 템플릿 엔진이 부족했다.왜냐하면 .NET Framework는 객체 지향적이며 상속을 허용하며, 많은 개발자들은 "에서 상속되는 새로운 기본 클래스를 정의한다.System.Web.UI.Page
", HTML을 렌더링하는 메서드를 작성한 다음, 응용프로그램의 페이지가 이 새로운 클래스에서 상속되도록 하십시오.이렇게 하면 사이트 전체에서 공통 요소를 재사용할 수 있지만, 복잡성을 가중시키고 소스 코드를 마크업과 섞는다.또한, 이 방법은 응용프로그램을 설계하는 동안이 아니라 실행해야만 시각적으로 테스트할 수 있다.다른 개발자들은 모든 페이지에서 동일한 네비게이션과 다른 요소를 구현할 필요가 없도록 파일 및 기타 기술을 사용해 왔다.
ASP.NET 2.0은 템플릿 기반 페이지 개발이 가능한 마스터 페이지 개념을 도입했다.웹 애플리케이션은 ASP로 시작하는 하나 이상의 마스터 페이지를 가질 수 있다.NET 2.0은 내포될 수 있다.[13]마스터 템플리트는 동적 콘텐츠가 이동하는 위치를 나타내는 ContentPlaceHolders라는 플레이스홀더 제어와 하위 페이지 간에 공유되는 HTML 및 JavaScript를 가지고 있다.
하위 페이지는 콘텐트 페이지를 채우는 마스터 페이지의 플레이스홀더에 매핑되어야 하는 ContentPlaceHolder 컨트롤을 사용한다.페이지의 나머지 부분은 워드프로세서의 메일 병합과 같이 마스터 페이지의 공유 부분에 의해 정의된다.내용 페이지의 모든 마크업 및 서버 제어는 ContentPlaceHolder 제어 내에 배치되어야 한다.
컨텐츠 페이지에 대한 요청이 있을 때 ASP.NET는 컨텐츠 페이지의 출력을 마스터 페이지의 출력과 병합하여 사용자에게 출력을 전송한다.
마스터 페이지는 내용 페이지가 완전히 접근할 수 있는 상태로 남아 있다.이것은 컨텐츠 페이지가 여전히 헤더를 조작하고 제목을 변경하며 캐싱을 구성할 수 있다는 것을 의미한다.마스터 페이지가 공공 재산이나 방법(예: 저작권 고지 설정)을 노출하는 경우, 컨텐츠 페이지도 이러한 것을 사용할 수 있다.
기타 파일
다른 버전의 ASP와 연결된 기타 파일 확장명.NET에는 다음이 포함된다.
확장 | 버전에 소개됨 | 설명 |
---|---|---|
아삭스 | 1.0 | 이것은 글로벌 애플리케이션 파일이다.이 파일을 사용하여 전역 변수(웹 응용 프로그램의 모든 웹 페이지에서 액세스할 수 있는 변수)를 정의할 수 있다.애플리케이션 & 세션 오브젝트와 관련된 전체 애플리케이션 이벤트를 정의하는 데 주로 사용된다.Global.asax, 응용 프로그램 수준 논리에[14] 사용 |
아스크스 | 1.0 | 사용자 제어, 사용자 제어 파일[15] 논리에 사용 |
애쉬스 | 1.0 | 사용자 지정 HTTP 핸들러에는 사용자 인터페이스가 없다. |
아스멕스 | 1.0 | 웹 서비스 페이지.버전 2.0부터는 app_code 폴더에 asmx 파일의 페이지 뒤의 코드가 배치된다. |
질식시키다 | 1.0 | 웹 컨트롤, 프리젠테이션 및 비즈니스 로직을 포함할 수 있는 ASP.NET 웹 양식 페이지.http://msdn.microsoft.com/en-us/library/2wawkw1c.aspx |
도끼드 | 1.0 | web.config 요청 추적에서 활성화된 경우.axd는 애플리케이션 레벨 추적을 출력한다.또한 특수 웹 자원에도 사용된다.제어/구성 요소 개발자가 한 파일에 배포할 이미지, 스크립트, css 등으로 구성 요소/컨트롤 전체를 패키징할 수 있도록 하는 axd 핸들러('factor') |
브라우저 | 2.0 | 버전 2.0. ASP에 도입된 XML 형식으로 저장된 브라우저 기능 파일.NET 2는 공통 웹 브라우저를 지원하기 위해 기본적으로 이 중 많은 부분을 포함한다.이것들은 어떤 브라우저가 어떤 능력을 가지고 있는지 명시한다. 그래서 ASP.NET 2는 그에 따라 자동으로 출력을 사용자 정의하고 최적화할 수 있다.예를 들어 W3C Validator와 같은 특수 .브라우저 파일을 무료로 다운로드할 수 있으므로 표준 준수 페이지를 표준 준수 페이지로 올바르게 표시할 수 있다.machine.config에 있고 ASP의 web.config에서 재정의될 수 있는 사용하기 어려운 BrowserCaps 섹션을 대체한다.NET 1.x. |
구성 | 1.0 | web.config는 특정 웹 응용 프로그램에서 이 확장자를 기본적으로 사용하는 유일한 파일이지만(machine.config는 전체 웹 서버와 그 확장자의 모든 응용 프로그램에 유사하게 영향을 미침) ASP.NET는 다른 구성 파일을 생성하고 소비할 수 있는 기능을 제공한다.이것들은 XML 형식으로 저장된다. |
cs/vb/fs | 1.0 | 코드 파일(cs는 C#, vb는 Visual Basic, fs는 F#)파일 뒤에 있는 코드(위 참조)는 주로 확장자가 ".aspx.cs " 또는 ".aspx.vb " 가장 일반적인 두 언어의 경우.다른 코드 파일(흔히 공통 "도서관" 클래스를 포함)도 cs/vb 확장자를 가진 웹 폴더에 존재할 수 있다.ASP에서.NET 2는 앱_코드 폴더 내부에 배치하여 동적으로 컴파일하여 전체 응용프로그램이 사용할 수 있도록 해야 한다. |
cshtml | 4.1 | 보기(레이저 구문을 사용한 C# 및 HTML 혼합) |
dbml | 3.5 | LINQ에서 SQL 데이터 클래스 파일 |
edmx | 3.5 | ADO.NET 엔티티 프레임워크 모델 |
숙달하다 | 2.0 | 마스터 페이지 파일.기본 파일 이름은 Master1.master 입니다. |
복사를 하다 | 1.0 | 국제화 및 로컬리제이션용 리소스 파일.리소스 파일은 전역(예: 메시지) 또는 로컬일 수 있으며, 이는 하나의 spx 또는 ascx 파일에 특정됨을 의미한다. |
시테맵 | 2.0 | 시트맵 구성 파일.기본 파일 이름은 web.sitemap입니다. |
가죽을 벗기다 | 2.0 | 테마 스킨 파일. |
svc | 3.0 | Windows Communication Foundation 서비스 파일 |
vbhtml | 4.1 | 보기(레이저 구문을 사용한 VB와 HTML 혼합) |
디렉토리 구조
일반적으로 ASP.NET 디렉토리 구조는 개발자의 선호도에 의해 결정될 수 있다.몇 개의 예약된 디렉토리 이름을 제외하고, 사이트는 모든 수의 디렉토리에 걸쳐 있을 수 있다.구조는 일반적으로 URL에 직접 반영된다.ASP는.NET는 처리 중 어느 지점에서라도 요청을 가로채기 위한 수단을 제공하며, 개발자는 중앙 애플리케이션이나 전면 컨트롤러를 통해 요청을 전달하도록 강요받지 않는다.
특수 디렉터리 이름(ASP에서).NET 2.0 켜짐)은 다음과 같다.[16]
- 앱_코드
- 이것은 "원시 코드" 디렉토리 입니다.ASP.NET 서버는 자동으로 이 폴더의 파일(및 하위 디렉터리)을 사이트의 모든 페이지 코드에서 액세스할 수 있는 어셈블리로 컴파일한다.App_Code는 일반적으로 데이터 액세스 추상화 코드, 모델 코드 및 비즈니스 코드에 사용된다.또한 사이트별 http 핸들러 및 모듈 및 웹 서비스 구현이 이 디렉토리에 저장된다.App_Code를 사용하는 대신 개발자는 사전 컴파일된 코드가 있는 별도의 어셈블리를 제공할 수 있다.
- 앱_데이터
- App_Data ASP.NET 디렉토리는 ASP에서 사용하는 모든 데이터베이스의 기본 디렉토리다.NET 웹 사이트.이러한 데이터베이스에는 액세스(mdb) 파일 또는 SQL 서버(mdf) 파일이 포함될 수 있다.앱_데이터는 ASP에 대해 쓰기 액세스가 활성화된 유일한 디렉토리다.NET 웹 응용 프로그램:[17]
- App_GlobalResources
- 사이트의 모든 페이지에서 사용할 수 있는 지역화된 리소스로 resx 파일 보유여기가 ASP가 있는 곳이야.NET 개발자는 일반적으로 둘 이상의 페이지에 사용되는 지역화된 메시지 등을 저장한다.
- App_LocalResources
- 예: CheckOut.aspx.fr-FR.resx라는 파일은 프랑스어 버전의 CheckOut.aspx 페이지에 대한 지역화된 리소스를 보유하고 있다.UI 문화가 프랑스어로 설정되면 ASP.NET는 자동으로 이 파일을 찾아서 로컬리제이션에 사용한다.
- App_Offline.htm
- 응용 프로그램 요청에 대한 파일 내용을 반환하여 응용 프로그램을 실행 중지하는 파일(디렉토리가 아님)
- 앱_테마스
- 새 ASP인 테마와 관련된 파일을 보관하는 폴더를 추가한다.웹 사이트 전체에 걸쳐 일관된 외관을 보장하고 필요할 때 웹 사이트의 외관을 쉽게 변경할 수 있는 NET 기능.
- App_WebReference
- 사이트에서 사용할 웹 서비스에 대한 참조를 위해 검색 파일과 WSDL 파일을 보관한다.
- 빈
- 프로그램에서 참조할 컨트롤, 구성 요소 또는 기타 코드에 대해 컴파일된 코드(.dll 파일) 포함.Bin 폴더에서 코드로 표시되는 클래스는 응용프로그램에서 자동으로 참조된다.
퍼포먼스
ASP.NET은 웹 서버에서 하나 이상의 DLL 파일에 처음 사용될 때 서버측 코드를 컴파일하여 다른 스크립트 기반 기술(클래식 ASP 포함)에 비해 성능상의 이점을 목표로 한다.이러한 dll 파일 또는 어셈블리는 공통 언어 런타임 내에서 실행하기 위한 마이크로소프트 중간 언어(MSIL)를 포함하고 있다. 이는 순수한 스크립트로 작성된 언어에 대한 성능 향상을 제공하며, JavaServer 페이지와 유사하지 않고 파이썬에서 사용하는 접근법과 유사하다.[18]이 컴파일은 페이지가 처음 요청될 때 자동으로 발생한다(즉, 개발자가 페이지에 대해 별도의 컴파일 단계를 수행할 필요가 없다는 것을 의미한다).
이 기능은 컴파일된 바이너리의 성능상의 이점과 함께 스크립팅 언어에 의해 제공되는 개발의 용이성을 제공한다.그러나 새로 편집된 페이지가 웹 서버에서 처음 요청될 때 컴파일이 사용자에게 눈에 띄게 짧은 지연을 일으킬 수 있지만 요청된 페이지가 더 업데이트되지 않는 한 다시 한 번 지연되지는 않는다.
ASPX 및 기타 리소스 파일은 인터넷 정보 서비스 서버(또는 다른 호환 ASP)의 가상 호스트에 배치된다.NET 서버: 아래 기타 구현을 참조하십시오.클라이언트가 처음으로 페이지를 요청할 때 .NET Framework는 파일을 파싱하고 에 컴파일한다.NET 조립 및 응답 전송. 후속 요청은 DLL 파일에서 처리된다.기본적으로 ASP.NET은 첫 번째 요청 시 1000개의 파일 묶음으로 전체 사이트를 컴파일한다.컴파일 지연으로 문제가 발생하는 경우, 배치 크기나 컴파일 전략을 수정할 수 있다.
개발자들은 또한 마이크로소프트 Visual Studio를 사용하여 배포 전에 "코드백드" 파일을 사전 컴파일하도록 선택할 수 있으므로 프로덕션 환경에서 적시 컴파일할 필요가 없다.[19]이것은 또한 웹 서버에 소스 코드를 가질 필요가 없다.컴파일 전 텍스트도 지원한다.
ASP.NET와 Classic ASP 비교
ASP.NET WebForms는 Windows 사용자 인터페이스와 유사한 컨트롤로 구성된 페이지를 빌드할 수 있는 기능을 제공하여 개발자의 Windows 응용 프로그램 개발에서 웹 개발로의 전환을 단순화한다.버튼이나 라벨과 같은 웹 컨트롤은 윈도우 컨트롤과 매우 같은 방식으로 기능한다: 코드는 그것의 속성을 할당하고 그것의 이벤트에 반응할 수 있다.제어장치는 자신을 렌더링하는 방법을 안다. Windows 제어장치는 자신을 화면에 그리는 반면 웹 제어장치는 최종 사용자의 브라우저로 전송된 결과 페이지의 일부를 구성하는 HTML과 자바스크립트의 세그먼트를 생성한다.
ASP.NET WebForms는 프로그래머가 ASP와 PHP와 같은 기존의 웹 스크립팅 환경이 아닌 이벤트 중심 GUI 모델을 사용하여 애플리케이션을 개발할 것을 권장한다.이 프레임워크는 자바스크립트와 같은 기존 기술을 "ViewState"와 같은 내부 구성요소와 결합하여 본질적으로 상태 비저장 웹 환경에 지속적인 (요청간) 상태를 가져다 준다.
Classic ASP와 비교한 다른 차이점은 다음과 같다.
- 컴파일된 코드는 개발 단계에서 더 많은 설계 시간 오류가 발생하면서 애플리케이션이 더 빨리 실행된다는 것을 의미한다.
- 런타임 오류 처리 기능이 대폭 향상되어, 트라이캐치 블록을 사용한 예외 처리 기능 활용
- 제어 장치 및 이벤트와 같은 Microsoft Windows 응용 프로그램과 유사한 은유.
- 사용자 정의 제어뿐만 아니라 광범위한 제어장치 및 클래스 라이브러리를 통해 응용프로그램을 신속하게 구축할 수 있다.이러한 컨트롤의 대부분은 대부분의 편집기에서 시각적으로 수행될 수 있기 때문에 페이지에 배치하는 것이 더 쉽다.
- ASP.NET는 의 다국어 기능을 사용한다.VB에서 웹 페이지를 코딩할 수 있는 NET 공용 언어 런타임.NET, C#, F#, 델파이.NET 등
- 전체 페이지를 캐시하거나 일부만 캐시하여 성능을 향상시키는 기능
- 코드-비즈드 개발 모델을 사용하여 비즈니스 로직을 프레젠테이션과 분리할 수 있는 능력.
- 페이지 및 컨트롤 프로그래밍에 진정한 객체 지향 설계를 사용할 수 있는 기능
- ASP라면.NET 애플리케이션에서 메모리 누수, ASP.NET 런타임은 오류가 발생한 애플리케이션을 호스팅하는 AppDomain을 언로드하고 새 AppDomain에서 애플리케이션을 다시 로드한다.
- ASP의 세션 상태.NET은 Microsoft SQL Server 데이터베이스나 웹 서버와 동일한 컴퓨터 또는 다른 컴퓨터에서 실행되는 별도의 프로세스에 저장될 수 있다.이러한 방식으로 웹 서버가 재설정되거나 ASP가 재설정될 때 세션 값이 손실되지 않는다.NET worker 프로세스는 재활용된다.
- ASP 버전.2.0 이전 NET는 표준 준수가 부족하다는 지적을 받았다.클라이언트 브라우저로 전송된 생성된 HTML과 JavaScript는 W3C/ECMA 표준에 대해 항상 검증되지는 않는다.또한, 프레임워크의 브라우저 감지 기능은 Microsoft 자체 Internet Explorer 이외의 웹 브라우저를 "하향 레벨"로 잘못 식별하여 일부 기능이 제거되거나 때로는 장애가 발생하거나 장애가 발생하거나 장애가 발생하여 이러한 클라이언트에 HTML/JavaScript를 반환하였다.그러나 버전 2.0에서는 사이트 구성에 따라 모든 컨트롤이 유효한 HTML 4.0, XHTML 1.0(기본값) 또는 XHTML 1.1 출력을 생성한다.표준 준수 웹 브라우저의 탐지는 더욱 강력하고 캐스캐딩 스타일시트에 대한 지원은 더 광범위하다.
- 웹 서버 제어: 이것들은 ASP에 의해 도입된 제어 장치들이다.웹 양식에 UI를 제공하기 위한 NET WebForms.이러한 제어장치는 주 관리형 제어장치로서 WYSIWYG 제어장치다.
참조
인용구
- ^ "What is Web Forms". docs.microsoft.com.
- ^ "ASP.NET View State Overview". msdn.microsoft.com.
- ^ "Choose between ASP.NET and ASP.NET Core". docs.microsoft.com.
- ^ Staff (November 2001). "Overview of ASP.NET and Web Forms". Microsoft. Retrieved 2011-06-05.
- ^ (MacDonald & Szpuszta 2005, 페이지 63)
- ^ "Web Application Projects versus Web Site Projects in Visual Studio".
- ^ "Code Behind vs. Code Inline". Microsoft .NET Framework. Microsoft. Archived from the original on 11 November 2010. Retrieved 2010-11-22.
- ^ "aspx.designer.cs how does it work?". StackOverflow. September 10, 2015.
- ^ "ASP.NET Web Page Syntax Overview". Microsoft .NET Framework. Microsoft. Retrieved 2010-11-22.
- ^ a b c "INFO: ASP.NET State Management Overview". Retrieved 2007-10-23.
- ^ "ViewState in ASP.NET". Archived from the original on 14 October 2007. Retrieved 2007-10-23.
- ^ "Encrypting Viewstate in ASP.NET". Retrieved 2009-07-19.
- ^ "ASP.NET Master Pages". microsoft.com. Microsoft.
- ^ "Global.asax Syntax". microsoft.com. Microsoft.
- ^ "Turning an .ascx User Control into a Redistributable Custom Control". microsoft.com. Microsoft.
- ^ "ASP.NET Web Project Folder Structure". microsoft.com. Microsoft.
- ^ "ASP.NET Directory Structure". aspnet4.com.
- ^ (MacDonald & Szpuszta 2005, 페이지 7–8)
- ^ "ASP.NET Web Site Project Precompilation Overview: Performing Precompilation". Microsoft Developer Network. Retrieved 13 January 2016.
원천
- MacDonald, Matthew; Szpuszta, Mario (2005). Pro ASP.NET 2.0 in C# 2005 (1st ed.). Apress. ISBN 978-1-59059-496-4.
외부 링크
![]() | 위키북스는 의 주제에 관한 책을 가지고 있다.NET 개발 재단 |
- 공식문서
- www.asp.net의 웹 양식
- ASP 소개.NET 및 웹 양식(2001년 초 문서)