MEF
お約束:Windows 8 CP時点の内容です。正式版では変わってるかもしれません。WinRTのMEFってCompositionContainerクラスがいなくなってCompositionServiceクラスでSatisfyImportsOnceメソッド使って対象クラスに何かをImportするということしかできないっぽ…
MEFの入門記事のまとめです。全11回でMEFの基本的な使い方を説明しています。 Managed Extensibility Framework入門 その1「はじめに」 Managed Extensibility Framework入門 その2「使うに当たって覚えておきたいこと」 Managed Extensibility Framewor…
これまで、10回にわたってMEFについて書いてきました。まだ細かい所は書いてない部分もありますが、これで一区切りにしたいと思います。後は、MEFのドキュメントを見てなんとかなると思います。 ということで、今回は、ちょっと頑張って拡張可能なアプリケー…
Managed Extensibility Framework入門もついに10回になりました。結構長いものです。今回は、MEFのコンテナ内で作成されたインスタンスの初期化処理について書きます。 通常のインスタンスの初期化 オブジェクト指向言語とうたってる言語では、全ての言語が…
かなり間が空いてしまいましたがMEFです!MEFとはなんぞやというところから色々やって、ついに遅延初期化まで完了しました。次は、メタデータというものをやってみようと思います。 メタデータって? メタデータとはなんでしょう?という疑問なのですが、Wik…
さて、前回は、リハビリも兼ねてLazyクラスの簡単な使い方を説明しました。今回はMEFでのLazyの使い方を説明します。 そもそも拡張可能アプリケーションでの遅延初期化とは? そもそも、なんで遅延初期化が必要なのかというと前回でも言ったかもしれませんが…
ずいぶん長いこと、MEFの記事をほったらかしていました。正直自分でも記事書いてたことを忘れてました。ということでリハビリも兼て、次の回のための予備知識であるLazyクラスについて説明してみようと思います。 遅延初期化 遅延初期化とは読んで字のごとく…
さて、前回までで一番基本的なクラスのExportとImportについて説明しました。そして、それとDirectoryCatalogを組み合わせて、拡張可能なアプリケーションを実際に作ってみるところまでやりました。(拡張可能アプリケーションといってもしょぼいですが・・…
さて、前回ではExportについてちょっと深く見てきました。前回の最後で次はImportかなと言っておいて申し訳ないのですが、もうちょっとExportにお付き合い頂きたいと思います。 Export時の型を指定 今までExportを付けた型は、AクラスにExportをつけたらAク…
さて、前回ではExportについてちょっと深く見てきました。前回の最後で次はImportかなと言っておいて申し訳ないのですが、もうちょっとExportにお付き合い頂きたいと思います。 Export時の型を指定 今までExportを付けた型は、AクラスにExportをつけたらAク…
さて、Exportもひと段落したので、今度はExportされたクラスを取り込むImportを見ていこうと思います。これさえマスターすれば、基本はおさえたも当然です!!!ということで気合を入れていきましょう。 名前指定でImport Importは、もともとExportされたも…
ここまで基本をみっちりやってきました。まだまだMEFの底は遥かかなたにありますが、ここでやった知識だけでも一応拡張可能なアプリケーションというやつは作れます。なのでさっくり作ってみようと思います。 作りたいもの 起動すると、何かしら画面に表示さ…
さて、前回はMEFを使ってHello world的なプログラムを作成しました。基本的には、クラスにExport属性をつけてカタログに公開するという設定をして、Import属性をつけてカタログ内のクラスを設定してもらうという流れでした。ということで、ExportとImportの…
参考情報 入門の最初にいきなり参考情報というのもなんですが、以下のサイトで独学出来る人はこれから書くであろう一連のエントリは見なくてもいいと思います。もし、見て頂けるなら、この解釈間違ってるとか、この記述がおかしいとコメントなどで指摘して頂…
さて、前回はMEFというよりはDIコンテナとはなんぞや?ということについて語ってしまうような内容になってしまいました。今回はMEFを使う上で知っておきたいクラスと、その役割について説明します。因みに、ここで使用するのは基本的にMEFを使うのに必要なも…
先日、DomainServiceの生成処理をのっとる方法を紹介しました。 WCF RIA ServicesでDomainServiceの生成処理をのっとる方法 これを応用してDomainServiceにMEFを使ってDIしてしまおうと思います。ということで早速MEFRIAServicesというSilverlightアプリケー…
Composite Application Guidanceとして知られる通称Prismですが、暫く見ない間にPrism 4.0 Drop9というところまでいってました。 こいつの凄いところは、今までDIコンテナとしてはUnityを使ってましたが、MEFが使えるようになっているところが非常に素敵です…
Expression blendを見てると、MVVMをサポートした形のUserControlのテンプレートがあります。こいつは以下のようなコードを作成してくれます。
Silverlight 4 + MEF + NavigationFrameworkのお話。 MEFを使うと、動的に読み込んだXAPからクラスのインスタンスを取得したり出来るけど、これがNavigationFrameworkと、すこぶる相性が悪いです。どう悪いかって、例外が出て動かないくらい悪いです。という…
Silverlight 4でMEFベースのアプリケーションを作りたいと思ったら、以下のようなクラスを準備するとよさそうです。 using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.…
何となく作ってみた。 まず、コンテナを保持しておくためのstaticなクラスを用意する。 using System.ComponentModel.Composition.Hosting; namespace WpfMVVMBase.Markup { public static class ContainerProvider { public static CompositionContainer Co…
注意:MEFは、正式リリース前のbeta版を使ってるので、正式版とは違うかもしれません。 次期.NET Framework4に入るDIコンテナのMEFとWPFを組み合わせて、簡単なHello worldを作ってみようと思います。 下準備 まず、最初にWPFアプリケーションを作成します。…