Подтвердить что ты не робот

Каков наилучший способ собирать данные в/из подключаемых модулей?

Я создаю приложение Agent рабочей станции, используя MEF и EntityFramework 4.

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

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

Плагины будут использовать Entity Framework 4.1 для извлечения данных, поэтому у него уже будут данные, отформатированные как объекты (возможно, тяжелые объекты, поскольку они привязаны к контексту EF). Кроме того, данные, которые я извлекаю из базы данных, представляют собой последовательность объединений, поэтому данные не соответствуют ни одному из идентификаторов/классов POCO, которые я уже создал.

Каков наилучший способ сортировки данных в/из подключаемых модулей? Принимая во внимание, что я использую MEF для соединения частей вместе и что у меня уже есть объекты для данных в плагинах. Должен ли я создать новый POCO и перенести данные Entity в него, а затем перетасовать массивы? Создать ли список? Меня интересуют не только то, что можно сделать, но и лучшие методы!

4b9b3361

Ответ 1

Это хорошая статья о Объектах передачи данных. Он затрагивает точки, которые вы поднимаете здесь, с объектами POCO. Поскольку ваше здание приложения с явным намерением дальнейшего расширения и настройки, я думаю, что объекты POCO - это путь. В противном случае для любых дополнительных компонентов потребуются зависимости от EF, которые могут быть обременительными для разработчиков плагинов. С объектами POCO/DTO у вас будет намного больше контроля над тем, что отправляется и какие структуры он отправляет.

Плагины должны либо реализовать (виртуальный?) базовый класс, либо интерфейс. Я бы выбрал интерфейс, потому что - снова - разработчикам плагинов будет проще добавить интерфейс к своему коду, чем базовый класс.

На самом деле, я не говорю ничего нового, что вы, Омар и Приключение, еще не сказали. В основном я говорю, что, думаю, вы уже хорошо справились с этим:)