.NET RIA Servicesが自動生成してくれるコードを見てると、今までめんどくさいと思ってたコードを書いてくれている印象を受けます。
例えばプロパティのコード。
サーバーサイドでは
public string Text { get; set; }
だけ書いているのに
private string _text; [DataMember()] public string Text { get { return this._text; } set { if ((this._text != value)) { this.ValidateProperty("Text", value); this.OnTextChanging(value); this.RaiseDataMemberChanging("Text"); this._text = value; this.RaiseDataMemberChanged("Text"); this.OnTextChanged(); } } }
バリデーション・パーシャルメソッド・データ変更前と変更後のイベントまで作ってくれています。
Silverlightに、このクラスをバインドすると、バリデーションエラーが起きるときちんと連携して表示してくれます。
とても素敵です。
例えば、ViewModelを作ろうと思うと、これまでは上のようなコードを自力で書いてたけれど、.NET RIA Servicesなら
public Message Message { get; set; }
みたいに.NET RIA Servicesのクラスをそのまま公開してやるだけで、変更通知からバリデーションまでちゃんと動いてくれるので楽チンです。
ViewModel対応版は、後で作ろうと思います。