[Kyasbal]
全部が全部、機能をこちらで実装するのは無理だと思われるので、アドイン(プラグイン、アドオンなどとも言われる・・)機能を実装しようと思うのです。
さて、アドイン機能は後回しでいいかといわれると、どうでしょう、インターフェースを準備するのが大変ですから、忘れたころに『ここをアドイン対応にしよう』なんて言ったとき、『あれ、ここ何の処理してたっけ?』なんてことにならないかが不安です。
そのための仕様書なのですが・・・
さて、.Net FrameWork4.0+C#4.0 で開発する際に、アドイン開発として取れる可能性は2つ。
①リフレクションを使った実装。
②System.Addin名前空間内のクラスを使用した実装。
前者は、かなり実装がしやすいです。C#のほうの経験がそこまで深くない僕でもなんでこのコードになるのか、わかって実装できます。
しかし、後者は正直難しいです。1種類のアドインに5つのアセンブリが必要になります。(ここでのアセンブリとはC#でいうアセンブリの事です。)増して、いろんな警告が出たりとかして、もうわけわかんない。そんな感じになるわけです。
それでも、②には非常に大きな利点があって、アプリケーションドメインが分離できるという利点を持ちます。
それはつまり、わかりやすく言えば、アドインに悪意のあるプログラムを作り、アプリケーションをフリーズさせるというアドインがあった時、アプリケーションドメインの分離がされているので、フリーズするのは結局そのアドイン側となるのです。
プラグイン機能を作れば、当然そこからの脆弱性を考えなければいけません。
しかしながら、System.Addinを使用すれば少しはその危険は少なくなります。(最も公開するインターフェースにかなり左右されますが)
いずれにせよよく考えなければいけない項目です。
もう少し考えて実装してみます。
[0回]
PR