かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

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