웹 프로그래밍에서 CodeBehind와 CodeFile의 차이점
CodeBehind - ASP.Net 처음부터 있던거.
실행되기 이전에 먼저 컴파일되어야 하며, 컴파일 되면 *.dll 파일은 bin 폴더에 생성된다.
배포(Deploy)하기 전에 반드시 먼저 컴파일되어야 한다.(Visual Studio)
고객에서 소스를 제공하고 싶지 않을때는 CodeBehind을 사용한다.
배포할때는 *.aspx파일과 *.dll파일, Web.config 파일 등(*.aspx.cs 파일은 제외)만 제공한다
CodeFile - ASP.Net 2.0부터 등장
배포할때는 소스파일(*.aspx, *.aspx.cs)도 함께(*.dll은 불포함) 제공한다.
ASP.Net 2.0 런타임이 필요시 마다 스스로 알아서 컴파일하며, 컴파일된 *.dll 파일은
c:\Windows\Microsoft.NET[.NET version]\Temporary ASP.NET Files에 생성된다.
(예: c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporay ASP.NET Files)
* VisualStudio 에서 새로 작성할때
"새로 만들기(N) > "웹 사이트(W)..." > "ASP.NET 웹사이트" 로 하면 *.aspx 파일이 CodeFile=".." 선언으로 작성되어 있고,
"새로 만들기(N) > "프로젝트(P)..." > "ASP.NET 웹응용프로그램" 로 하면 *.aspx 파일이 CodeBehind=".." 선언으로 작성된다.
* 개발을 시작할때 웹사이트(WebSite)로 하였더라도, 차후에 모든 CodeFile="..' 선언을 CodeBehind=".." 선언으로 변경하고,
클래스 선언에 있던 partial을 떼고, designer 파일에 있던 웹 컨트롤 선언(버튼선언, 레이블선언 등) 들을 *.aspx.cs 파일 안으로 복사한후
별도로 컴파일하면, 웹응용프로그램으로 바꾸어 배포할수도 있다.