私は個人的にビジネスモデルのためのPlain Old ClR Objects POCOを使用します。
using System.ComponentModel.DataAnnotations;
上記の名前空間は、オブジェクトにも検証をもたらします。エンタープライズアプリケーション検証ブロックがありますが、これをSilverlightクライアント側に統合する方法がわかりません。
しかし、ビジネスモデルを作成し、DataAnnotationsで装飾し、このビジネスモデルを再利用することができます。
これは、NHibernateでそのままの状態でフィットしますが、EFではできません。これはPOCOを考慮しないためです。 Linq-to_Sqlは信じますが、Linq-To_SqlのSQLメタデータまたは特定のメタデータを使用してマッピングファイルを使用する必要があります。
問題の1つでも問題はありませんが、むしろシナリオは、私がWCFを使用してSilverlightとサーバーを通信するというシナリオです。これにより、サービスの生成コードベースが生成され、これを変更すると、次にサービスを更新するときに変更が失われることになります。
MetaDataTypeの使用は、Silverlightの内部で利用できることを望みます。再生時に作業を失うことなく生成されたクラスを飾ることができるからです。
WCF上で.NETから.NETへの作業を行っている場合、より大きな機能を得ることができますが、検証とエラーの戻りが相互運用可能である必要がある場合、HasErrorsとError []プロパティ。私は現在、次のことをやっている:
シルバー: - System.ComponentModelを使用して、クライアント側の検証を適用する - セッターとゲッター を傍受サービスプロキシクラスをラップViewModelに - WCFサービスプロキシ 生成します。DataAnnotations
ビジネスモデル: - 私はNHibernateの でPOCOを使用しています - 私は、エンタープライズ・アプリケーション検証ブロック を使用しています - 私は、プロパティ
WCF HasErrorsとエラーとベースのドメインクラスを持っている: - 私は
AddClientResponse AddClient(AddClientRequest request)
すなわち、要求と応答を使用してのDTOを使用してSilverlightでは、WCFサービスを消費WCFサービスしながら、ビジネスを使用して、データアクセス層のリポジトリを消費します。
上記の説明では、フレックスクライアントと一緒に公開することができます。また、Flexクライアント側でデータ検証を処理しないと、クライアントは基本応答クラスでエラーを受信します。次に、クライアント側の検証を行うか、サーバーから返されたエラーを処理する必要があります。クライアント側は、ラウンドトリップを保存します。
[DataContract]
public class BaseResponse
{
[DataMember]
public Error[] Errors { get; set; }
[DataMember]
public Boolean HasErrors { get; set; }
}
は私が:-)笑いつものように自分の知識の探求に返信用
アンドリュー
感謝しています。私はベータ版で注釈のパスを開始しましたが、何らかの理由でリリースから削除されました。私はRIAサービスリリースがこれを戻すことを願っています。私は、人々がその間にやっていることに興味がありました。また、MVCリリース2もメタ・ヘルパー・クラスを介してアノテーションの方法になっているようです。利用可能な多くのオプションにより、サービス側の検証が容易です。クライアント側(つまり、タブが消えるとすぐに)は、すべてのUIオプションのための手作業であるようです。しかし、xValフレームワークはMVCでこれを助けるようです。 –