ASP.NET 2.0 이후로는 코드 비하인드에서 주로 사용하는 C# 언어 말고도 동시에 Visual Basic .NET, C++ CLR, JScript.NET 등의 프로그래밍 언어를 사용할 수 있습니다. 그러나 App_Code 폴더의 경우 동시에 여러 프로그래밍 언어를 사용하여 컴파일하려고 할 경우 아래와 같은 오류 메시지를 만나게 됩니다.
위와 같은 오류가 발생하였을 경우 어떻게 처리하면 좋을까요? 이 때에는 App_Code 밑에 별도의 분리된 Sub Directory를 구축하여 언어 별로 달리 구성하는 것이 가능합니다.
web.config 파일에서 <system.web> 요소 아래에 <codeSubDirectories> 컬렉션 요소에 별도로 구분하고 싶은 서브 디렉터리의 이름을 지정하고, 솔루션 탐색기의 디렉터리 구조에서처럼 App_Code 폴더 밑에 같은 이름의 디렉터리를 생성하여, 여기에 다른 프로그래밍 언어의 코드를 지정해두면 설정은 끝납니다.
이렇게 변경함으로서, App_Code 폴더의 코드는 C#만을, App_Code 폴더 내의 SubDir 폴더의 코드는 VB.NET만을 사용하면서도, 단일 웹 사이트 내에 모두 연결되는 어셈블리들이기 때문에 Public으로 노출하는 어셈블리들은 프로젝트에서 사용이 가능합니다. 만약 Reflection을 활용해야 하는 경우 주지해야 할 것이 하나 있는데 서브 디렉터리로 분리한 경우 이것은 App_Code라는 어셈블리와는 또 다른 별개의 어셈블리가 된다는 점입니다. 같은 방법으로 Phalanger (PHP의 .NET Framework 구현), JScript.NET, IronPython, C++ CLR 등의 코드를 쉽게 ASP.NET 사이트 안으로 통합할 수 있습니다.
동적으로 생성되는 어셈블리임을 감안하여 Assembly에 적용할 수 있는 Attribute를 사용하여 식별이 편리하도록 구성하면 Reflection을 필요로 하는 경우 도움이 될 수 있습니다.
'Software Development > Useful Solutions' 카테고리의 다른 글
| 원하는대로 마음껏 요리하는 Windows Forms 데이터 바인딩 (0) | 2009/12/06 |
|---|---|
| 루씬 라이브러리를 닷넷에서 사용하기 (3) | 2009/09/27 |
| App_Code 폴더를 통하여 여러 프로그래밍 언어 동시에 사용하기 (0) | 2009/09/14 |
| jQuery를 이용하여 POST 방식의 WCF 서비스 호출하기 (0) | 2009/09/13 |
| TortoiseSVN에서 제외할 파일/디렉터리 이름 패턴 (Delphi/VC++/.NET IDE) (0) | 2009/03/23 |
| Visual Studio 2008의 새 프로젝트 만들기 관련 문제점 (0) | 2009/02/01 |