半日ほど嵌ったのでメモ書き。
Azure Mobile Services を扱うときにはライブラリを使うのが常なのですが、Microsoft.WindowsAzure.MobileServices は Nuget版と Xamarin Componets 版の2種類があります。
Azure ポータルの「Xamarin」でダウンロードするサンプルは Xamarin Componets 版
Windows ストアサンプルは Nuget版
Nugetでダウンロードできるのは当然 Nuget 版。
ソリューションエクスプローラーで「Componets」→「Edit Components」で拾えるのが Xamarin Components 版
こんな感じでその他のコンポーネントもダウンロードできる。
で、普段はどちらかしかダウンロードしないので、はまることはあまりないのですが、こんな風に Mobile Services を PCL 化して、iOS/Android/Windowsストアで共有しようとしたときに、PCL では Nuget版しかダウンロードできない。けれども、iOS/Android のほうで、Xamarin Componets 版をインストールすると、実行時にエラーがでます。変だなー、ってことに。
Xamarin Componets 版では、こんな感じに。
サンプルコードもどちらを使っているのか判別しづらいのですが、「CurrentPlatform.Init();」を使っている場合が Xamarin Componets版、使っていないのが Nuget版です。Nuget版には CurrentPlatform というクラスがありません。そのほか実装されているクラスは同じなのか?
追記 2014/04/17
いや、どちらも同じく CurrentPlatform.Init() はある。なので、区別がつかないかも。
Xamarin で Windows Azure モバイルサービスを使う(その1) – Qiita
http://qiita.com/amay077/items/40bd5918284fd40d0edc
MobileServiceClient がメインクラスですが、これを使う前に CurrentPlatform.Init() が必要です(DI だか IoC だかですかね)。
かも。
追記 2014/04/17 どちらもソースコードは https://github.com/Azure/azure-mobile-services になってる。
Nuget 版で作ったものは、こちら。
moonmile/XamarinAzureMobile · GitHub
https://github.com/moonmile/XamarinAzureMobile
ところで、アプリケーションキーって、サンプルをダウンロードしてみるしかないんですかね? Azure ポータルに見当たらない…と思ったけど、「モバイルサービス」→「キーの管理」で見れる。