Dynamics CRM 2013/Fall '13 SDK モバイルおよびリッチ クライアントの開発 その 1 - 概要とサンプル紹介

みなさん、こんにちは。

今回から Microsoft Dynamics CRM 2013 および、Microsoft Dynamics
CRM Online Fall '13 新機能より、モバイルおよびリッチ クライアント
の開発に関する情報をお届けします。

概要

以下に今回のトピックに関連する内容を紹介します。

新たにサポートされる内容

- JWT トークンのサポート
- Windows 8 ストアアプリケーションのサポート
- ブラウザ以外の外部アプリケーションからの SOAP/REST エンド
ポイントの認証をサポート

ブラウザ以外のがいるアプリケーションでサポートされる操作

- OData エンドポイントを使用するとき、作成、取得、更新、および
削除の操作がサポートされます。メッセージ実行またはメタデータ
検索はサポートされません。
- 最新のアプリケーションおよびモバイル アプリケーションの SOAP
エンドポイント (Organization.svc/web) を使用するとき、完全な Web
サービス機能セットへのアクセスが利用できます。

テクノロジの依存関係

- .NET 用 Windows Azure AD 認証ライブラリ
- Microsoft Visual Studio 2012
- Windows Server 2012 R2 および AD FS 2.2 (IFD のみ)
※設置型の場合クレーム構成と IFD が必須となります。
- Microsoft Dynamics CRM 2013 SDK 6.0.1 (サンプルが含まれます)
※2013 年 11 月 29日時点で英語版のみサンプルを提供

セキュリティ関連

- Azure AD 認証ライブラリのユーザー ログオンは、Web ブラウザー
のコンテキストによって処理されます。
- アプリケーションの登録は、 展開のための Azure Active Directory、
および設置型展開または IFD のための Active Directory フェデレーション
サービス (AD FS) によって管理されます。

サンプルを利用する

開発者の方は実際にサンプルを見た方が早いと思いますので、早速
サンプルを紹介します。詳細は次回以降の記事で紹介しますので
今回はサンプルを動かせるようにする手順をまず案内します。

事前準備

サンプルを利用するにあたり、以下の環境を準備してください。
設置型については今後の記事で紹介する予定です。

- Microsoft Dynamics CRM 2013 オンライントライアル
- Visual Studio 2012
- Microsoft Dynamics CRM 2013 SDK 6.0.1 英語版

サンプルソリューションの準備

サンプルは SOAP と REST の 2 つ提供されていますが、今回は REST
版のサンプルを利用します。また REST 版は設置型向けのサンプルと
して提供されていますので、オンライン向けに書き換えます。

1. Visual Studio 2012 でサンプルを開きます。
SDK\SampleCode\CS\ModernAndMobileApps\ModernOdataApp

2. 参照設定を展開して解決できていない参照があるか確認します。

image

3. Azure のライブラリは NuGet で取得できます。ソリューションを
右クリックして NuGet パッケージの復元の有効化をクリックします。

image

4. 確認の画面が出るので「はい」をクリックします。

5. プロジェクトを右クリックして NuGet パッケージの管理をクリック
します。自動的に以下のメッセージが表示されます。復元ボタンを
クリックします。

image

6. 以下の様にパッケージが表示されます。インストールボタンが表示
されている場合はボタンをクリック、アンインストールが表示されて
いる場合はパッケージはインストール済で参照が解決されるだけです
ので、閉じるをクリックします。

image

7. 一旦ソリューションをビルドして参照エラーが解決することを
確認します。

image

8. 次にプロジェクト直下にある CurrentEnvironment.cs を開いて、
クラスメンバーを展開します。

9. CrmServiceUrl を申し込んだトライアルのアドレスに書き換えます。

public const string CrmServiceUrl   = “https://crm2013training3.crm5.dynamics.com”;

10. _oauthUrl を以下の様に書き換えます。

private const string _oauthUrl = “https://login.windows.net/common/wsfed”;

11. 58、68 行目の CrmServiceUrl 変数を “Microsoft.CRM” に書き換えます。

元)  await _authenticationContext.AcquireTokenAsync(CrmServiceUrl, _clientID);
後)  await _authenticationContext.AcquireTokenAsync(”Microsoft.CRM”, _clientID);

アプリケーションの登録

新しい認証方式を利用するには、アプリケーションを事前に
登録しておく必要があります。

1. 登録に際してアプリケーション固有の戻り値を取得します。
CurrentEnvironment.cs 57 行目にブレークポイントを設定して、
プロジェクトをデバッグ実行します。

2. redirectUrl の値をコピーしておきます。

image

3. https://graphexplorer.cloudapp.net/ にアクセスします。画面
右上の Sign In をクリックして CRM 組織の管理者 ID でログイン
します。

image

4. Resource で自分の組織のアドレスが含まれていることを確認
して、画面上部の Add Application Permission をクリックします。

5. Company に組織名が表示されていること確認して、Client App
Display Name にアプリケーション名 (任意) を、Client App URL に
先ほど取得した redirectUrl の値を入力します。

image

6. 画面中央のサービス一覧より Microsoft.CRM があることを確認
します。ログインしているテナントが間違っています。

image

7. Create Permission ボタンをクリックします。

8. 次の画面に表示される Cient Application 欄にある
Client ID をコピーします。

9. サンプルアプリケーションに戻り、CurrentEnvironment.cs に
ある _clientID 変数に取得した Client ID を貼り付けます。

private const string _clientID = "取得した Client ID";

サンプルの実行

いよいよサンプルを実行しましょう。

1. F5 キーを押下してサンプルを実行します。

2. アプリケーションの画面が表示された後、以下の様にユーザー
情報を求められますので、Microsoft Dynamics CRM オンライン
に接続できるユーザーを入力します。

image

3. サインインをクリックします。

4. アプリケーションの画面に戻るので、Accounts または Tasks
をクリックします。他のタイルはダミーですので動作しません。

image

5. 取引先企業の一覧を取得できることを確認します。データの
取得は非同期のため表示までに時間がかかる可能性があります。

image

次回からは今回行った手順やサンプルの詳細を紹介します。
お楽しみに!

- 中村 憲一郎