눈 깜짝할 사이에 마이크로소프트가 .net 플랫폼을 출시한 지 4년이 지났고, .net 역시 1.0에서 1.1, 2.0으로의 업그레이드를 경험했습니다. asp.net 2.0과 vs 2005 IDE의 다양한 뛰어난 기능의 매력으로 인해 모두가 2.0을 배우고 개발을 위해 프로젝트를 vs 2005로 업그레이드하느라 바쁩니다. 그러나 실제로는 여러 가지 이유로 인해 많은 프로젝트를 새 버전으로 업그레이드할 수 없습니다. 시간이 지남에 따라 이전 버전의 프로젝트 유지 관리 문제가 점점 더 어려워지고 있습니다. 닷넷이 탄생한 지 얼마 되지 않았지만, 4년이라는 시간은 수많은 프로젝트를 축적하기에 충분한 시간이다.
vs.net 2002로 개발한 프로젝트가 있는데 여러 가지 이유로 업그레이드가 되지 않고 있습니다. .net 1.1의 보안 요구 사항에 적응하기 위해).
회사의 개발 플랫폼이 업그레이드되었을 때 vs.net 2002와 vs.net 2003이 컴퓨터에 동시에 설치되어 프로젝트의 다른 버전 유지 관리 문제가 일시적으로 해결되었습니다. 나중에 프로젝트가 유지 관리 기간을 통과하고 오랫동안 업데이트되지 않았습니다. 내 컴퓨터도 다시 설치되었으며 vs.net 2002는 완전히 제거되었습니다. 그런데 2005년이 되자 고객들은 한두 달에 한 번씩 수정을 요구했고, 유지보수 기간이 지나도 수정을 해야 할 정도로 고객이 너무 대단했다. 그러나 여기에 문제가 있습니다. vs 2002가 없으면 컴파일할 수 없습니다.
컴퓨터에 .net Framework 1.0을 설치하고 수정된 코드를 컴파일하기 위해 수동으로 csc를 호출하는 것은 매우 번거로운 일이며, 프로젝트에는 많은 참조가 있고 명령줄 작성이 매우 복잡합니다. 이는 프로젝트에 폴더가 많을 때 특히나 고통스럽습니다. 저도 테스트도 해보고 프로그램도 작성해서 컴파일했는데 게을러서 전혀 깨닫지 못했어요.
오늘 프로그램을 다시 수정해야 하는데 갑자기 아주 일찍(2002년) @Page 지시문의 Src 속성을 사용했다는 사실이 생각났습니다. 이 속성을 사용하면 asp.net은 CodeBehind를 사용하는 대신 자체 컴파일 모델을 사용하게 됩니다. 이런 방식으로 코드를 dll로 컴파일하지 않고도 게시할 수 있습니다. asp 사이트에 액세스하면 net이 자동으로 aspx 파일과 .aspx.vb 파일을 함께 컴파일합니다. 이 방법에는 두 가지 주요 단점이 있습니다. 1. 코드 파일(.vb)이 서버에 게시되어야 합니다. 2. vs.net IDE는 이를 지원하지 않습니다. 두번째 문제 때문에 사용을 포기하고 잊어버렸습니다. 이제 수정된 코드가 적용되는 한, 다른 단점은 고려하지 않고 프로그램을 컴파일하지 못할까 걱정됩니다. 어쨌든 모든 소스 코드는 서버에 게시됩니다. CodeBehind 속성과 동일한 값을 사용하여 코드 파일을 가리키는 Src 속성을 @Page 지시문에 추가했습니다. 그런 다음 .vb 파일의 코드를 수정합니다. 새로 고치면 수정 사항이 적용되고 유지 관리가 완료됩니다. 정말 멋지다. 그게 내가 지금부터 할 일이다. vs.net IDE는 이를 지원하지 않고 MSDN에 언급되어 있으므로 .net에 이 컴파일 모델이 있다는 사실을 아는 사람은 많지 않습니다. 지금 공유하세요. 저와 같은 고통을 겪고 계시다면 페이지에 Src를 추가해 보세요. 하하, 코드가 변경되면 고생할 필요가 없습니다. 그것을 컴파일할 도구를 찾으려고요.
요약: 나를 포함한 많은 사람들은 프로그램을 dll로 컴파일하는 것을 선호합니다. 이는 출시된 소프트웨어처럼 느껴집니다. 실제로 "모든 소스 코드를 서버에 게시하고 런타임 중에 코드를 완전히 컴파일하는" 방법은 매우 훌륭하며 향후 유지 관리 작업을 크게 단순화합니다. 많은 회사에서는 실제로 고객에게 소스 코드를 숨길 필요가 없는 고객을 위한 프로젝트를 수행합니다. 이 경우 이 방법을 사용하면 향후 유지 관리 작업에 큰 이점이 있습니다. .net이 n번 업그레이드되거나 해당 버전의 개발 도구가 컴퓨터에 설치되어 있는지 여부에 관계없이 메모장을 사용할 수 있습니다. 모든 것을 처리하십시오.
참고: asp.net의 모든 버전은 이 컴파일 모드를 지원하지만 vs.net 2002 및 2003의 IDE는 이를 지원하지 않으며 디자인 보기를 열 수 없습니다. 새로 출시된 vs 2005 IDE는 이 컴파일 모드를 지원합니다. Src 속성을 사용할 때 CodeBehind 속성은 더 이상 필요하지 않지만, 계속 유지하는 것이 좋습니다. 갑자기 계산 보기로 돌아가야 하는 경우에도 도움이 될 수 있습니다. Inherits 특성은 필수는 아니지만 삭제하지 않는 것이 좋습니다. Aspx 파일의 컨트롤 선언에서 이벤트를 직접 바인딩하면(예: OnClick="....") Inherits 속성이 없으면 오류가 발생합니다.
출처: cwbboy 블로그