コンテンツへスキップ
ものがたり
戻る

on reduced CLR

昨日のmono meetingでちょっと話に上がったCLRの削られた奴について、ちょっとだけフォローアップ。

昨日ほとんど話をしなかったHosting APIのコアとなるSystem.Silverlight.dllには、SoapHttpClientProtocolっていうクラスがあって、これはSystem.Web.Services.Protocols.SoapHttpClientProtocolと似たような使われ方をしている(つまり派生クラスを定義してWebサービスのラッパーにすることが出来る)。で、これがSOAPをしゃべるのかというと、実はそんなことはないらしい。実のところXML Schemaはサポートされていない1し、WSDLもSOAPも当然サポートされていないわけで、SOAPをまともな意味でしゃべるのは無理だ。このクラスは、実際にはASP.NET AjaxでサポートされるJSON + System.Web.Servicesなサービスとのやり取りをするのに使われるらしい。

Windows専用のSilverlight SDKにはslwsdl.exeというツールが入っているのだけど、これは(full) CLRの機能を使っている2ので、余所のWSDLからproxyクラスを生成してくれる。ただしSL SoapHttpClientProtocolでサポートされている範囲は限られているので、たとえばAmazon Web ServicesのWSDLを食わせても、何も出力してくれない(wsdl.exeではでかいコードが生成される)。

もうひとつ。ASP.NETはサポートされないのだけど、これはサーバ技術なので、Silverlightアプリケーションみたいなもので使う意義はもともと無い(はず)。ADO.NETについては使い道があるといえばあるけど(DataSet)、まあ必須とはとても言えない機能だろう。

そんなわけで、SilverlightではCLRの機能はたくさん削られていて、不便に感じる人は多いかもしれないけど、僕はポジティブに評価できるのではないかと思う。3

Footnotes

  1. この点について参加者の皆さんから非常に「ポジティブな」声が多々聞かれたことには驚いているw

  2. と思われる。逆に言えば、だからこそSL SDKはWindows専用なのだろう。

  3. まあ、もともとmscorlib/System/System.Xmlくらいでしか生きてないからね、僕はw


この記事を共有:

前の記事
おまけ
次の記事
lunatic gate