2010-12-30 2 views
3

最近、私はthisのキャリバーンの大きさを指定したドキュメントを見ました(実際にはそれをマイクロフレームワークと比較していません)。 私はCaliburnと1年以上一緒に仕事をしており、多くのことを知らない。Caliburn検証とは何ですか?

ので、多分誰かが(それのいくつか私は理解しますがカリバーンとの関係についてのIEAを持つことはできません)次のことを説明することができます:

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

私はV1.1と一緒に作業しています.2.0で新しいものがあれば、それはおそらく将来新しいバージョンに属すると言います。

答えて

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

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

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

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

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

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

  3. Caliburnはリフレクションを使用してアクションを呼び出すのではなく、コンパイルされたラムダを作成するためにExpression Treesを活用してデリゲートをオンザフライで構築します。
  4. ViewModelFactoryサービスは、Caliburnによって、タイプ別または件名別にVMの作成を抽象化するために使用されます。
  5. ShellFrameworkには、ほとんどのアプリケーションを構築するのに便利な機能が含まれています。一部のカスタムIResult(それらを作成するための流暢なスタイルの静的メソッドに加えて)と、いくつかのあらかじめ構築されたViewModels(メニューと質問/メッセージダイアログ)が含まれています。
+0

ここで、検証に関するより実用的な内容を読むことができますか? –

+0

私が知る限りでは、その件に関する資料はあまりありません。 とにかく、検証用の要素は、UIに検証エラーを表示するためにWPFに必要なインターフェイスに2つの既存の検証フレームワーク(System.ComponentModel.DataAnnotationsとFluent検証)を適合させることに過ぎません。検証の詳細については、その答えを広げます。 –

関連する問題