私は現在、Webサイトの開発を標準化するために使用されるC#CMSのようなWebアプリケーションの開発に携わっています。当初から、多くのCMSシステムを苦しめる複雑さとメニュー/オプションの過負荷を回避するために、コアを可能な限りシンプルに保つという考え方がありました。この単純なコアが完成し、非常にうまく機能しています。
システムは、特定のプロジェクトのニーズに合わせてコア機能を拡張するプラグインまたはモジュールを受け入れることができると考えました。これらは、プロジェクト間で再利用することもできます。たとえば、基本的なカタログと買い物かごが必要になる場合があります。このような拡張機能のすべてのコードは、個別のアセンブリに含める必要があります。このライブラリから独自の管理インターフェイスとフロントエンドコードを提供できる必要があります。システムは利用可能なプラグインを検索し、管理者ユーザーに機能を有効/無効にするオプションを提供する必要があります。(これはすべてWordPressプラグインに非常によく似ています)
この問題を正しい方法で攻撃することが重要であるため、私は飛び込む前に可能な限りデューデリジェンスを実行しようとしています。
プラグインパターン(http://msdn.microsoft.com/en-us/library/ms972962.aspx)を認識しており、その使用法に関する記事をいくつか読んだことがあります。それは合理的なようですが、それが必ずしもこの状況に適した/最良の手法であるとは確信していません。アプリケーション(画像/音声操作、数学など)の処理に適しているようです。
この種のUI拡張機能を実現するための他のオプションはありますか?それとも、プラグインパターンは進むべき道ですか?
この目的でプラグインパターンを使用することを説明する記事へのリンクがあれば、私も興味がありますか?