Создание приложения со сменной поддержкой

Я запускаю новый проект, который значительно извлек бы выгоду из дополнений программы. Программа в ее наиболее канонической форме считывает данные с последовательного порта и анализирует их в записи базы данных. Примерами дополнений, которые могли быть записаны, будет дополнение автоархива, дополнение для фильтрации записей, и т.д. Я пишу и программу и дополнения, но некоторым клиентам нужны настраиваемые решения, таким образом, вместо того, чтобы отклониться и сделать абсолютно отдельную программу, дополнения были бы большими. Самое простое дополнение, вероятно, было бы формой, кто конструктор, берет ссылку на объект, управляет объектом в некотором роде, затем закрывается.

К сожалению, у меня нет абсолютно никакой идеи, где начать кодировать, и почти так же мало идеи, где искать. Все, что я ищу, поднимает дополнения браузера. Из того, что я собрался, я должен изучить динамические загружаемые DLL. Помимо этого, я невежествен. У кого-либо есть какие-либо хорошие ресурсы или примеры I, что они знают о?

Я рад предоставить больше подробную информацию, но этот проект находится в своем начале, таким образом, у меня нет тонны определенных деталей (вид специфических особенностей поражений точка дополнений, также.)

16
задан dlras2 15 July 2010 в 17:59
поделиться

6 ответов

Вы должны серьезно рассмотреть возможность использования Managed Extensibility Framework (MEF) для обработки архитектуры ваших плагинов. Это требует несколько иного мышления, но это стоит того, чтобы напрячь мозги.

8
ответ дан 30 November 2019 в 22:17
поделиться

Это простой пример, иллюстрирующий основную технику.

codeproject.com - Архитектура подключаемого модуля с использованием C #

В этой статье показано, как включить ... как плагин для другого приложения или используйте это как отдельное приложение.

в .NET 4 теперь у вас есть Managed Extensibility Framework (MEF) , которая выполняет большую часть работы.

В .NET 3.5 у вас был System.AddIn, но многие сочли его слишком сложным.

codeproject.com - Приложения с поддержкой надстройки с System.AddIn

Надстройки (иногда называемые подключаемыми модулями) отдельно скомпилированные компоненты, которые приложение может найти, загрузить и сделать использование во время выполнения (динамически). An приложение, которое было разработано для использование AddIns может быть расширено (с помощью разработка дополнительных дополнений) без необходимо, чтобы исходное приложение было изменено или перекомпилировано и протестировано

6
ответ дан 30 November 2019 в 22:17
поделиться

Вам действительно нужно посмотреть на Managed Extensibility Framework (MEF). Она специально разработана для поддержки дополнений и других возможностей расширения.

4
ответ дан 30 November 2019 в 22:17
поделиться

Очень простое описание (в основном, ваши плагины должны реализовывать специальный интерфейс):

http://martinfowler.com/eaaCatalog/plugin.html

Намного лучшая статья на C #:

http://www.drdobbs.com/184403942;jsessionid=TVLM2PGYFZZB1QE1GHPCKHWATMY32JVN

2
ответ дан 30 November 2019 в 22:17
поделиться

Я думаю Отражение будет играть важную роль.

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

0
ответ дан 30 November 2019 в 22:17
поделиться

Попробуйте использовать для своего исследования термин «надстройка» или «надстройка» вместо «надстройка». Это должно некоторым помочь.

Если вы используете .Net 4, во фреймворке есть пространство имен надстройки, которое поможет вам частично достичь этого.

Написать поддержку плагина для приложения - непростая задача. Вам нужно будет поддерживать довольно строгое разделение задач между вашими интерфейсами, вам потребуется предоставить библиотеку взаимодействия, которая определяет ВСЕ поддерживаемых типов подключаемых модулей, и вы захотите сделать некоторые исследования внедрения зависимостей и инверсии управления в дополнение к ранее предложенным исследованиям отражения.

Похоже, у вас были напряженные выходные, когда вы занимались исследованиями.

0
ответ дан 30 November 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: