我正在使用WPF, EF, WCF, SQL
. 我想使用托管可扩展性框架 ( MEF
) 来更好地管理将包含在我的应用程序中的“功能”。
我将“功能”定义为端到端功能(即 UI 到数据库),其中包括:
- WPF 用户控件/屏幕
- “共享”(客户端/服务器)EF 模型(可能是 STE 或 DBContext)
- 用于检索和保存数据的 WCF 服务
- 数据库访问类
见图。特征 A 和 B 是端到端表示的。
在我的研究中,我有一些 WPF 和 WCF MEF 实现的好例子:
WPF: http: //goldytech.wordpress.com/2010/02/17/plug-ins-modules-development-with-mef-part-i/
WCF:http ://www.fidelitydesign.net/?p=390#comments
但不是两者都在同一个应用程序中。
换句话说,我希望能够在客户端和服务器上删除UI.FeatureC
/并让应用程序自动发现新功能。Entities.FeatureC
DataAccess.FeatureC
Entities.FeatureC
让 MEF 部件在每一层中定义一个“特性”似乎是可行的,对吧?还是有更好的方法来构建它?
另外,我有点担心数据库以及它如何支持动态组合的应用程序。我想唯一的选择是确保数据库有适当的表、存储过程等,并坚持下去。
有没有人尝试在应用程序范围内实施 MEF?有什么好的参考或建议吗?
谢谢!