2012-08-08 5 views
0

여러 버전의 제품을 호출하는 클라이언트 응용 프로그램을 개발하고 고객은 서로 다른 버전의 제품을 차례대로로드 할 수 있습니다.닷넷 관리

이전 버전에서이를 지원하기 위해 사용자가 선택한 버전마다 응용 프로그램 도메인을 만들었습니다.

올바른 방법인가요? 대안이 있습니까? 편집을 할

: 여러 버전 - 여러 DLL을

당신을 감사합니다!

답변

2

다른 버전의 제품이 서로 다른 DLL에있는 경우, 예, AppDomain이 올바른 방법입니다.

하지만 메인 도메인에 DLL이 누출되지는 않았는지 확인하십시오.

또한 일부 테스트를 실행하여 메모리 누출이 없는지 확인하십시오.

UPDATE

대안은 다른 프로세스에 DLL을로드하고 RPC 또는 서비스 호출을 사용하는 것입니다. 그게 너의 응용 프로그램에 대한 과잉이라고 생각해.

0

제품이 다른 AppDomains에 있어야한다고 생각하지 않습니다. 그렇게하는 주된 이유는 무엇입니까? 귀하의 응용 프로그램이 특정 dll을 언로 드하고 실행하는 동안 동일한 dll의 새 버전을로드 할 수있게 하시겠습니까? 그렇지 않다면 ... 나는 App Domain을 소유 한 이유가 무엇인지 알지 못합니다.

AppDomains는 일반적으로 어셈블리를 언로드 할 때 어셈블리 자체에서 할당 한 메모리를 확보 할 수 있도록하려는 경우에 사용됩니다. 그것은 일부 유형의 앱에서 센스를 만듭니다. IIS는 AppDomains를 사용하여 실행중인 모든 응용 프로그램을 관리하므로 응용 프로그램은 분리됩니다.

제품의 모든 버전에 공통 인터페이스를 사용하고 제품 자체에 대한 정보를 원하는대로 (재산 또는 원하는 방식으로) 저장하십시오.

+0

사용자는 런타임시 새 제품으로 변경하여 전체 DLL 집합을 변경할 수 있어야합니다. –

+0

하지만 왜 dll 집합을 변경해야합니까? 나는 그것을 이해하지 못한다. 한 번에 모든 객체의 정의를로드 할 수 있고 사용자 선택에 따라 필요한 객체 만 사용할 수 있습니다. – MaciekTalaska

+0

현재 버전과 이전 버전은 새 버전이 특정 문제에 대한 기능 개선이 아니기 때문에 고객에게도 가치를 나타 내기 때문에 사용자는 차이점을 확인하기 위해 여러 버전간에 놀 수 있습니다. –