8

基本的なアプリケーションがたくさんあるように、そのアプリケーションの機能を拡張するアドインをインストールすることができます。例えば:

Fire Bug in Mozilla Firefox.

彼らはそのようなアプリケーションをどのように設計し、アプリケーションはどのようにモジュールを受け入れ、どのように自動的に統合することができますか。

第二に、上記のプロセスが一般的なものなのか、言語やツールに依存するものなのかわかりません。WPFまたはWinformsでそのようなアプリケーションを作成できますか?

4

4 に答える 4

6

MEFをチェックしてください。

Managed Extensibility Framework(MEF)は、アプリケーションとコンポーネントの再利用を可能にする.NETの新しいライブラリです。MEFを使用すると、.NETアプリケーションは静的コンパイルから動的合成に移行できます。拡張可能なアプリケーション、拡張可能なフレームワーク、およびアプリケーション拡張機能を構築している場合は、MEFが最適です。

于 2011-03-23T14:37:20.343 に答える
2

LuaInterfaceを確認することをお勧めします。ファイルで何をどのように実行するかを完全に制御できます。

于 2011-03-23T15:31:53.563 に答える
2

それは本当にあなたのアプリケーションのデザイン/レイアウト/インターフェースと使用される言語に依存します。

C、C ++、C#および他の多くの言語で可能ですが、実際の実装は、それをどのように機能させたいかによって異なります。

  • 多くのゲーム(特にMMORPG)では、ユーザーはXMLとスクリプトファイル(Luaなど)の組み合わせを使用してUIを変更および拡張できます。これは、特に経験の浅いユーザーを対象とした、より簡単で安全なアプローチです(編集/更新/使用が最も簡単で、ユーザーは完全な言語を理解する必要がなく、公開する内容はユーザーが決定します)。

  • 他のプログラムは、プラグインにライブラリファイルを使用します。全体的な概念は上記と似ていますが、使用するのが難しく(アドオン/拡張機能を作成するには、サポートされているプログラミング言語を知っている必要があります)、必要以上に公開する可能性があります(たとえば、アドオンは、プログラムの一部を変更できます)。彼らに触れてほしくない)。

一般的なプロセスは常に似ています:

  1. 利用可能なアドオンファイル(xmlファイル、luaファイル、xulファイル、zipファイル、dllファイル、...あなたの決定)を検索します
  2. ファイルをロードして評価します(たとえば、スクリプトファイルのロード、xmlファイルの解析、またはdllのロード)
  3. コードまたはアドオンファイルによって提供されるコードを実行するか、それらのファイル内のコードを呼び出します。

これをC#でタグ付けしたので、dll/assemblyアプローチを好むと思います。実用的なソリューションには他にも質問があります。たとえば、これです。

于 2011-03-23T14:18:15.713 に答える
2

特にWPFと.NETに焦点を当てている場合は、Mono.Addinsを確認してください。ドキュメントサイトにMono.Addinsを使用するプロジェクトのリストがあります-そこからアドイン対応アプリケーションを作成する方法の多くの例を見つけることができると確信しています。

正しい設計に関する限り、これを正しく行うには少し注意が必要です。Robert C. Martinの著書、Agile Software Development、Principles、Patterns and Practicesに記載されているパッケージングの原則に従うと、アプリケーションの設計で当然アドインが可能になります。特に重要な2つの原則は、依存性逆転の原則と安定した抽象化の原則です。

于 2011-03-23T14:24:48.897 に答える