Вопрос

Я собираюсь переписать часть нашего приложения на C# (в настоящее время это устаревший код VB6).Модуль, с которого я начинаю, отвечает за импорт данных из различных систем в нашу базу данных.Примерно 5-6 раз в год новый клиент просит нас написать новый импорт для системы, которую он использует.В настоящее время это требует от нас выпуска новой версии нашего программного обеспечения для каждого нового варианта импорта, который мы добавляем в приложение.

Одна из целей переписывания — обеспечить поддержку плагинов приложения.Каждый новый импорт может стать отдельной сборкой, которую ведущее приложение распознает и позволит конечному пользователю взаимодействовать с ней.Мы надеемся, что это в некоторой степени упростит жизнь, поскольку мы сможем просто поместить новую сборку в каталог, чтобы она распознавалась и использовалась основным (хостовым) приложением.

Один из вопросов, с которым я столкнулся, связан с различиями между вариантами импорта, которые мы в настоящее время поддерживаем.В некоторых случаях мы фактически позволяем пользователю указать каталог и прочитать все файлы из каталога в нашу систему.В других случаях мы разрешаем им указывать на один файл и импортировать его содержимое.Кроме того, некоторые импорты имеют ограничение диапазона дат, которое применяет пользователь, а другие — нет.

Мой вопрос заключается в том, как я могу спроектировать приложение таким образом, чтобы обеспечить некоторую гибкость импорта, который мы создаем и поддерживаем, и в то же время реализовывать общий интерфейс, который позволит хост-приложению легко распознавать плагины и параметры. что каждый из них предоставляет пользователю?

Это было полезно?

Решение

Я бы порекомендовал вам взглянуть на Managed Add-In Framework, поставляемую с .NET 3.5.А Команда надстройки разместил некоторые образцы и инструменты на Сайт CodePlex также..

Другие советы

.Net 3.5 имеет пространство имен system.Addin.

В этой теме также есть полезная информация для старых версий фреймворка:
часttp://forums.devshed.com/net-development-87/system-plugin-532149.html

для теории взгляните на шаблон плагина в Мартин Фаулерс Шаблоны архитектуры корпоративных приложений

для интересного примера взгляните на этот урок: Архитектура плагинов с использованием C#

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top