은 어떤처럼, 각 ASP.NET 페이지는 .NET 클래스로 컴파일이다 다른. 컨트롤 (ASCX)은 같은 방법으로 컴파일됩니다. C# 및 VB.NET 용 컴파일러처럼 ASP.NET 마크 업용 컴파일러가 있습니다. ASP.NET 마크 업을 원시 MSIL로 컴파일되는 "또 다른"언어로 생각할 수 있습니다.
네이티브 ASP.NET 마크 업은 PageParser에 의해 처리됩니다. 이 클래스에는 재미 있고 유용한 메소드가 하나 있다는 것을 알 수 있습니다 (GetCompiledPageInstance). 의미 하듯이이 페이지는 기본 .NET 클래스로 페이지를 컴파일합니다. 이를 재정의 할 수 있습니다 (예 : 자신 만의 마크 업을 만들어 자신의 파서/컴파일러 작성). Spark은 ASP.NET 마크 업에 대한 대중적인 대안입니다.
각 클래스는 궁극적으로 Page 또는 Control에서 상속됩니다. 이 두 클래스에는 Render() 메서드가 있습니다.이 메서드는 클래스의 사용자 지정 기능을 실행 한 후 HTML을 출력 스트림에 씁니다.
큰 차이점은 컴파일은 종종 C#이나 VB.NET 코드와 다른 시간에 발생한다는 것입니다. 프레젠테이션 .NET 언어를 기능적 .NET 언어에서 분리 할 수있는 기능이므로 실제로는 기술적 인 요구 사항이 아닙니다. ASPX 및 ASCX 페이지는 웹 서버의 컨텍스트에서 요청 될 때 ASP.NET 런타임에 의해 컴파일됩니다. 그런 다음 컴파일 된 어셈블리는 a) 웹 응용 프로그램이 종료되거나 b) ASPX 파일 중 하나에서 파일 시스템 변경이 감지되어 다시 컴파일을 트리거 할 때까지 메모리에 보관됩니다.
It is possible to compile ASPX 페이지를 C#/VB.NET /와 함께 사용하면 전체 응용 프로그램을 단일 어셈블리로 배포 할 수 있습니다. 여기에는 두 가지 장점이 있습니다. 하나는 단일 DLL을 쉽게 배포 할 수 있다는 것입니다. 둘째, LOOOONG 대기 시간을 없애기 때문에 ASP.NET 웹 응용 프로그램에 "처음으로 발생"할 수 있습니다. 모든 페이지가 사전 컴파일되므로 어셈블리는 각 파일을 컴파일하는 대신 첫 번째 요청시 메모리에로드하기 만하면됩니다. 나는 항상이 사이트가 마음에
당신이 웹 서버 컨트롤을 HTML 태그로 렌더링하는 방법을 물어? – TStamper
기본적으로 저는 제 질문을 로터리 방식으로 묻습니다. XML 파일에서 마크 업을 자동으로 읽고 무언가를 생성합니다. 웹 폼과 약간 닮은 것을 생성합니다. 이유는 모르겠지만 일반적으로 XML 구문 분석에 어려움을 겪고 있습니다. ASP.NET에서 ASPX 페이지를 구문 분석하는 방법에 대해 더 많이 이해하고 싶다면 내가 성취하고자하는 것을 구현하는 방법을 더 잘 이해할 수있을 것입니다. . – senfo
Google (또는 Bing!) "asp.net 페이지 수명주기" 나는 그것이 당신이 찾고있는 것이라고 생각합니다. –