我正在使用MEF和EntityFramework 4构建我的工作站Agent应用程序。

该应用程序是一个简单的代理,可在具有插件体系结构(以及许多以.dll文件形式的插件)的计算机上运行。

每个插件将查询自己的特定于插件的表。主程序(或代理)需要将信息传递给插件,并从插件接收信息。

插件将使用Entity Framework 4.1检索数据,因此它将已经将数据格式化为对象(由于它们与EF上下文相关联,因此可能是沉重的对象)。另外,我从数据库中提取的数据是一系列联接,因此该数据与我已经创建的任何POCO标识/类都不匹配。

将数据封入/输出插件的最佳方式是什么?考虑到我正在使用MEF将各个部分捆绑在一起,并且我已经在插件中具有用于数据的对象。我应该创建一个新的POCO并将实体数据移入其中,然后重新排列数组吗?我应该创建一个列表吗?我不仅对可以做什么感兴趣,而且对什么是最佳实践也很感兴趣!

最佳答案

这是关于Data Transfer Objects的好文章。它触及了您在这里用POCO对象提出的要点。自从您构建具有进一步扩展和自定义的明确意图的应用程序以来,我认为POCO对象是必经之路。否则,任何其他组件都将需要依赖EF,这对于插件开发人员可能是沉重的负担。使用POCO/DTO对象,您将对发送的内容和发送的结构有更多的控制。

插件应实现(虚拟?)基类或接口(interface)。我可能会选择接口(interface),因为-再次-插件开发人员比其基类更容易向其代码添加接口(interface)。

真的,我不是说您,奥马尔(Omar)和冒险(Adventure)尚未说过的新话。基本上我是说我认为您已经掌握了好方法:)

10-07 19:43
查看更多