を使用して、クライアント/サーバーの N 層アプリケーションを設計中ですWPF, EF, WCF, SQL
。Managed Extensibility Framework ( 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 をアプリケーション全体に実装しようとした人はいますか? 良い参考文献やアドバイスはありますか?
ありがとう!