Atlas Web Service Proxy


昨日まではprototype.jsを使ったりJson.NETを使って、自分でデータ変換の処理を書いていたんですが(´ー`)
AtlasにはAtlas Web Service Proxyとかいうものがあるそうで。


とりあえず、組み込み方法について。
Atlas関連のDLLをプロジェクトに入れて、Web.configにもAtlasの設定を追加します。


で、その追加する設定の中で、ポイントとなるのは以下の部分です。

<httpHandlers>
  <remove verb="*" path="*.asmx"/>
  <add verb="*" path="*.asmx" type="Microsoft.Web.Services.ScriptHandlerFactory" validate="false"/>
</httpHandlers>

つまり、デフォルトのasmx(WebService)に対するハンドラを、Atlasで提供されているものに置き換えているわけですね


で、これによって何が起こるのかというと。


まず、今までと同じ呼び出し形式については、そのままで互換性があります。


それにプラスして、WebServiceのURLの後ろに以下の様にjsを付加してリクエストを行うと、

http://〜/WebServices/MapWebService.asmx/js

次のような文字列が応答として返ってきます。
#見やすく改行とかしてます。

var MapWebService=new function()
{
    this.appPath = "http://〜/";
    var cm = Sys.Net.ServiceMethod.createProxyMethod;
    cm(this,"GetSpots","minX","minY","maxX","maxY");
}

var gtc = Sys.Net.WebMethod.generateTypedConstructor;
Type.registerNamespace('Map.Model');
Map.Model.SpotInfo = gtc("Map.Model.SpotInfo"); 

詳細はまだ良くわかっていませんが、つまりproxyを生成してくれるってことですね?
これがあれば、低レベルの処理を自分で書く必要は無いと言うことなんでしょう(・∀・)


まあ、他の言語ではこういうものは無いわけですし、prototype.jsのお勉強も無駄にはならないということで(´ω`)
あと、この辺の日本語での情報ってまだ無いのかしら?