본문 바로가기
개발, IT

웹 사이트와 웹 응용 프로그램의 차이

by Nabi™ 2008. 5. 26.
VS.NET 2005 서비스 1 설치하면 프로젝트에 응용 프로그램이라는 것이 추가됩니다.

응용 프로그램 프로젝트는 기존의 ASP.NET 1.1방식을 따릅니다.

, 빌드를 하면 obj폴더가 생성되고 안에 debug폴더나 release폴더가 생성되고, bin폴더에 컴파일된 dll 생성됩니다.


사이트에서는 obj,debug,release폴더가 생성되지 않습니다. 빌드를 해도 bin폴더에 dll 생성하지 않고 단지 소스의 에러 체크 정도만 확인하는 수준에서 끝납니다. bin폴더에 dll이 추가되는 경우는 다른 dll을 참조할 때 입니다.

 

다른 차이점은 웹사이트는 aspx웹페이지 파일들이 요청될 동적으로 컴파일된다는 겁니다.(미리 컴파일이라는 것이 있는데 일단 여기서는 제외합니다.)


개별 파일의 동적 컴파일은 다른 웹페이지의 클래스를 참조할 없습니다.

예들 들어, WebForm1.aspx 클래스는 WebForm1, WebForm2.aspx 클래스는 WebForm2라고 했을 WebForm1 클래스에서 다음과 같이 WebForm2 인스턴스를 만들 없습니다.

(* 이것과 관련된 대표적인 또 다른 예는 클래스 뷰 창에서 aspx 페이지에 대한 클래스가 나오지 않는다는 겁니다.

그러나 App_Code폴더에서 클래스 파일을 만들면 클래스 뷰 창에서 클래스을 볼 수 있습니다. App_Code 폴더의 클래스들은 내부적으로 미리 자동 컴파일되기 때문입니다.)


WebForm2 wf=new WebForm2();// 사이트에서는 이게 안됨


실행하면 당장 WebForm2 찾을 없다는 메시지가 나올 겁니다.


그러나 응용 프로그램에서는 이게 됩니다.

아마도 동적 컴파일이 아니고 먼저 완전히 컴파일이 후에 실행된다는 전제 때문에 다른 웹페이지(클래스) 참조할 있도록 허용한 같습니다.


응용 프로그램의 관계는 aspx ascx에서도 허용이 됩니다.

예를 들어 자식컨트롤 ascx에서 WebForm1 public void TestFun()이라는 함수를 접근하고자 때는 다음과 같이 있습니다.


WebForm1 wf = (WebForm1)this.Parent.Parent;

wf.TestFun();

 


*

Visual Studio 2005 서비스 팩 1 (SP1) 아래주소에서 다운로드할 있습니다.

http://www.microsoft.com/korea/msdn/vstudio/support/vs2005sp1/default.aspx

좋은정보가 되셨다면 아래 한번 클릭해주세요^^


댓글