私は、構築したいコントロールのフレームワークのコンセプトを持っています。この考え方を変えているのは、私は「1つのサイズがすべてに合っている」アプローチまたは「すべてのものを支配する1つのコントロール」アプローチをとるつもりはないということです。C#でミックスインアーキテクチャフレームワークを構築するには?
例として、Telerikは、ComponentOne、Xceedなどと同様、非常に優れたグリッドコントロールを作成します。しかし、数百または数千のメソッドとプロパティ、複雑なオブジェクトモデルの検索など、すべての巨大なコントロールです。あまりにも頻繁にこれらのグリッドはあなたが必要とするもののために過度の方法ですが、単純なことをするためにグリッド全体を学ぶという難題を乗り越えなければなりません。
私のコンセプトは、より「ミックスイン」なアプローチです。非常にシンプルなコントロールを作成し、コントロールのアラカルトに「アドイン」できる機能を作成します。たとえば、単純なグリッドがあり、グリッドの「セクション」にヘッダとフッタを追加したいとします。
問題はどこですか?このようなことを行う伝統的な方法は、C#がサポートしていない多重継承を使用する方法です。それがサポートされたとしても、MIはそれが解決するよりも多くの問題を追加するという意見はまだ残っています。
私はこの問題に近づく方法について意見を求めています。 MEFは潜在的な解決策でしょうか?
EDIT:私に発生し
何かが、様々な表情からコントロールを構築するために、式ツリーを使用することが可能かもしれないということです。私はこれ以上いくつか考える必要がありますが、それは面白い概念です。
可能な別のオプションは、選択した機能に基づいてアセンブリを生成する「コントロールジェネレータ」です。それはより複雑に見えますが、T4は管理可能かもしれません。
はこちらをご覧ください:http://msdn.microsoft.com/en-us/vcsharp/bb625996.aspx –
@Robertハーヴェイ - 彼らは本当に提供できないので、私はすでに大幅に拡張メソッドを拒否しました追加状態、メソッドのみ。あなたが参照する手法は、私が本当に熱心ではないエンドユーザによるすべての追加状態の実装を必要とするでしょう。 –