Scriptについてです。Frameworkはリソース指向のプログラミングモデルを提供しており,すべてのものをリソースとして扱います。Objectなどのリソースが登場しました。Scriptもそれらと同等なリソースのひとつです。特徴はその名の通りスクリプトとして実行が可能なことがいえるでしょう。Scriptを使用すると複数のリソース操作と,それぞれの操作の順次処理や分岐処理などの制御構造をひとつのリソースとして表すことが可能です。それだけでなくリソースの追加や更新などをトリガーとしたバッチ処理も可能です。Scriptの文法の種類と実行までを紹介します。Frameworkのリソースモデル(図1)を見てみましょう。これまで本連載ではMesh以下のリソースを扱っていました。ProfilesやContactsは連載の内容として直接は扱っていませんが,ユーザー情報に関する部分はここに含まれています。Scriptsはそれらと同階層に位置づけられたリソースのひとつです。単独で使うということは基本的になく,ほかのリソースを操作しますので今回もMesh以下のリソースが出てきます。リソースの操作は,一般的にCRUDと呼ばれる生成(Create⁠)⁠,読み取り(Read⁠)⁠,更新(Update⁠)⁠,削除(Delete)の4種類です。これに加えてデータ同期の操作があります。Objectなどのリソース群があります。Scriptは,ほかのリソースに対する操作の集合と考えることができます。Scriptを作成する必要はないとも言えます。Scriptを使用する利点は何があるのでしょうか。処理の抽象化まず操作の集合による利点です。EnvironmentとHTTPによる通信を行います。このとき行う操作単位は,リソースの作成・読み取り・更新など基本的なものに限られています。Meshサービス上にファイルをコピーする場合,ファイルが既に存在しているかの確認(読み取り⁠)⁠,存在している場合は削除,そしてファイルの作成というように複数の操作が必要です。Scriptを用いると意味のある処理をひとつのリソースとして表現が可能です。Environmentとの間で必要になります。Environment間のHTTPアクセスは1回に集約されます。このように複数のHTTPアクセスをまとめ,アプリケーションの動作改善にも使用できます。Scriptは,リソースが作成・更新・削除される前または後をトリガーとして実行することが可能です。これは既にあるアプリケーションのロジックの変更や拡張として使用できることを意味します。Scriptの大きな特徴のひとつです。Scriptは,順次処理や条件分岐,繰り返処理などを記述可能でプログラミング言語の性質を持っています。Frameworkのリソース操作向けの言語であり,このような特定分野用に設計された言語をドメイン固有言語と呼びます。Scriptもそのひとつです。言語となるとその文法も存在します。Scriptの文法の内容をみてみましょう。文法は,次の3種類を記述するものに大きく分けることができます。Scriptのプログラム文法はStatementという記述単位で構成されています。Scriptを得ます(図2⁠)⁠。Frameworkのリソースと大きく異なりますね。Statementを確認しておきましょう。FrameworkまたはSilverlight用のライブラリではMicrosoft.LiveFX.ResourceModel.Scripting.Statementクラスとして用意されています。Framework用ライブラリのクラスとC#のコードをまじえて紹介します。最初にリソース操作についてです。Statementsと分類されています。それぞれWeb上のリソース編集のためのAtom出版プロトコルと,AtomまたはRSSを使用したデータ同期に関する仕様のFeedSyncの内容を反映したものです。Statementsは,Statementクラスの静的メソッドを呼び出して生成することができます。CreateResource<TResource>メソッドを使用します。以下にC#のコードを示します。Objectを作成するStatementオブジェクト(CreateResourceStatementオブジェクト)を生成しています。Object"));引数など詳しい内容について今回は言及していません。C#のコンソールアプリケーションプロジェクトを作成しコードを記述してみてください。Kitライブラリに加え,System.ServiceModelとSystemServiceModel.Webの参照も追加してください。CreateResourceStatement以外にも次のクラスなどが用意されています。CreateMediaResourceStatementReadResourceStatementReadMediaResourceStatementReadResourceCollectionStatementUpdateResourceStatementDeleteResourceStatementCreate,Read,Update,Deleteなど名前からどのような操作かわかりますね。POST,GET,PUT,DELETEメソッドに置き換えられます。データ同期に関するStatementは,SynchronizeResourceCollectionStatementが用意されています。有限会社ミレニアムシステムズにプログラマーとして従事。趣味はプログラミング。