Каков наилучший способ маршалинга данных в / из плагинов? - PullRequest
12 голосов
/ 04 мая 2011

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

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

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

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

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

1 Ответ

1 голос
/ 14 мая 2011

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

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

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

...