3

最近、Caliburn の素晴らしさを示すこのドキュメントを見ました(実際には、Caliburn をマイクロ フレームワークと比較しているわけではなく、それで十分です)。Caliburn で 1 年以上働いていますが、Caliburn について多くのことを知りません。

したがって、誰かが次のことを説明できるかもしれません(一部は理解できますが、カリバーンとの関係についてはわかりません):

  1. 検証の抽象化
  2. モジュール フレームワーク
  3. ExpressionTree ベースのランタイム デリゲートの生成
  4. ViewModelFactory
  5. シェルフレームワーク

私は V1.1 で作業しているので、2.0 で何か新しいことがあれば、それが新しいバージョンに属していると言ってください。おそらく将来それを学ぶでしょう。

4

1 に答える 1

7
  1. 検証の抽象化は、ViewModel に検証インフラストラクチャをプラグインすることを目的としています。
    CaliburnDefaultValidatorは System.ComponentModel.DataAnnotations を使用しますが、Fluent Validation用のアダプターも利用できます。
    検証はアプリケーション コードから直接使用できますが、主に AOP 検証動作でフレームワークによって使用され、IDataErrorInfoモデルの自動実装を提供します。

    モデルが既に を実装している場合IDataErrorInfo、Caliburn はプレーンな WPF バインディングを利用して (従来のバインディング プロセスの一部として) 検証をフックできます。
    それでも、IDataErrorInfo手動で実装するのは退屈で、ほとんど管理しにくいコードになる可能性が高いため、AOP[ValidateAttribute]が導入されました。これを有効にするには、利用可能なプロキシ ファクトリ (Castle.DynamicProxy に基づく) を使用するようにコンテナを構成する必要があります。

    myContainerAdapter .WithProxyFactory<Caliburn.DynamicProxy.DynamicProxyFactory>()

    これは、コンテナーからプルされた ViewModel (およびその他のコンポーネント) に適用された動作属性を検査し、指定された動作を実装するそれらのサブクラスを作成するようにコンテナー アダプターに指示します。

    動作の[Validate]実装は、'IDataErrorInfo' 呼び出しを実際のIValidatorサービスに委任するだけです。

  2. モジュール フレームワークは、独自のモジュールの構成と初期化を管理するために、Caliburn 自体によって使用されます。また、独立したアプリケーション モジュールを作成するためにも使用できます。Caliburn は、(アセンブリが IAssemblySource に登録されている場合) 初期化を駆動するモジュールを検出します。

  3. Caliburn はリフレクションを使用してアクションを呼び出すのではなく、式ツリーを利用してオンザフライでデリゲートを構築し、コンパイルされたラムダを作成します。
  4. ViewModelFactory サービスは、Caliburn によって使用され、VM の作成をタイプ別または処理対象別のいずれかで抽象化します。
  5. ShellFramework には、ほとんどのアプリケーションを構築するのに役立つ一連の機能が含まれています。これには、一般的なアプリケーション タスクを実行するためのいくつかのカスタムIResult(それらを作成する流暢なスタイルの静的メソッドと共に) と、いくつかの事前構築済みの ViewModel (メニューおよび質問/メッセージ ダイアログ) が含まれています。
于 2011-01-03T13:46:01.490 に答える