かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

.NET RIA Servicesで自動生成されるコードを見て

.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対応版は、後で作ろうと思います。