문제

저는 C#(현재 레거시 VB6 코드)으로 애플리케이션의 일부를 다시 작성하려고 합니다.제가 시작하는 모듈은 다양한 시스템의 데이터를 데이터베이스로 가져오는 역할을 담당합니다.1년에 5~6회 정도 새로운 클라이언트가 자신이 사용하는 시스템에 대한 새 가져오기를 작성해 달라고 요청합니다.현재 이를 위해서는 애플리케이션에 추가하는 새로운 가져오기 옵션마다 소프트웨어의 새 버전을 출시해야 합니다.

재작성의 목표 중 하나는 애플리케이션이 플러그인을 지원하도록 만드는 것입니다.모든 새로운 가져오기는 호스트 애플리케이션이 인식하고 최종 사용자가 상호 작용할 수 있는 별도의 어셈블리가 될 수 있습니다.새 어셈블리를 디렉터리에 간단히 추가하고 이를 기본(호스트) 응용 프로그램에서 인식하고 사용할 수 있으므로 생활이 어느 정도 단순화되기를 바랍니다.

제가 고민하고 있는 항목 중 하나는 현재 지원하는 가져오기 옵션 간의 차이점과 관련이 있습니다.어떤 경우에는 실제로 사용자가 디렉토리를 가리키도록 하고 디렉토리 내의 모든 파일을 시스템으로 읽도록 합니다.다른 경우에는 단일 파일을 가리키고 해당 내용을 가져올 수 있습니다.또한 일부 가져오기에는 사용자가 적용하는 날짜 범위 제한이 있지만 다른 가져오기에는 적용되지 않습니다.

내 질문은 호스트 애플리케이션이 플러그인과 옵션을 쉽게 인식할 수 있도록 하는 공통 인터페이스를 구현하는 동시에 우리가 구축하고 지원하는 가져오기 간에 어느 정도 유연성을 허용하는 방식으로 애플리케이션을 디자인할 수 있는 방법입니다. 각각이 사용자에게 노출되나요?

도움이 되었습니까?

해결책

.NET 3.5와 함께 제공되는 Managed Add-In Framework를 살펴보는 것이 좋습니다.그만큼 애드인 팀 에 몇 가지 샘플과 도구를 게시했습니다. CodePlex 사이트 또한..

다른 팁

.Net 3.5에는 system.Addin 네임스페이스가 있습니다.

이 스레드에는 이전 버전의 프레임워크에 대한 몇 가지 유용한 정보도 있습니다.
시간ttp://forums.devshed.com/net-development-87/system-plugin-532149.html

이론은 다음을 살펴보세요. 플러그인 패턴 마틴 파울러스의 엔터프라이즈 애플리케이션 아키텍처 패턴

흥미로운 예를 보려면 다음 튜토리얼을 살펴보세요. C#을 사용한 플러그인 아키텍처

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top