かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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