Silverlight (XAP) の Web リソース

重要

Microsoft Silverlight Web リソースは Dynamics 365 for Customer Engagement アプリ バージョン 9.0 で廃止されました。 HTML5は、Silverlight や Flash など、Web プラグイン経由で、Web クライアントを使用するための方法です。 HTML5 は、どのデバイス (PC タブレット、スマートフォーンなど) からでも使用でき、JavaScript (および jQuery など、多くの強力な JavaScript ライブラリ) や CSS を多用します。

Microsoft Silverlight Web リソースは、Web アプリケーションのみで下位互換性のために Dynamics 365 for Customer Engagement でサポートされています。 Microsoft Silverlight は統一インターフェイスでは機能しません。 すべてのクライアントに表示するコンポーネントの場合、Silverlight の代わりに HTML5 で HTML Web リソースを使用することをお勧めします。

Dynamics 365 for Customer Engagement では、Silverlight 4.0 の Web リソースをエンティティ フォームに追加できます。 Silverlight 5.0 の Web リソースは、そのバージョン用に構成されたホスト <object> 要素を使用して HTML Web リソース内に表示できます。

Note

  • Microsoft Silverlight Web リソースは 64 ビット版の Office Outlook では表示できません。
    • Silverlight Web リソースをエンティティ フォームまたはグラフの外側に表示するには、その Silverlight Web リソースのホスト ページとなる HTML Web リソースを作成します。 その後、$webresource: ディレクティブを使用して HTML Web リソースを開きます。

Silverlight Web リソースの作成

Silverlight Web リソースは、Web リソース フォームを使用して簡単に作成できます。必要な作業は、名前および表示名を入力し、種類として Silverlight (XAP) を選択し、.xap ファイルをアップロードすることだけです。 Web リソースは使用する前に公開する必要があります。 ただし、Silverlight Web リソースは Dynamics 365 Customer Engagement (on-premises) 内のコンテキスト データとやり取りを行うので、計画的に Web リソースを作成する必要があります。

コンテキスト データへのアクセス

Web リソース内のプレビューボタンを使用したとき、または提供された URL に直接アクセスしたときは、Silverlight アプリケーションはコンテキスト情報のない汎用 HTML ページにホストされます。 Silverlight アプリケーションにコンテキスト情報が必要ない場合は、この URL を使用して Silverlight Web リソースを表示できます。

コンテキスト情報が必要な場合は以下のいずれかを実行してください。

  1. Silverlight Web リソースをエンティティ フォームに追加する。

  2. Silverlight Web リソースを、コンテキスト情報を提供するように構成された HTML Web リソースを使用して表示する。

    Silverlight Web リソースがエンティティ フォーム内に表示されるように設計されている場合、そのフォームには、コンテキスト情報にアクセスするために使用できる Xrm.Page.context オブジェクトが含まれています。 詳細については、「クライアント側のコンテキスト (クライアント側の参照)」を参照してください

    Silverlight アプリケーションをフォーム外に表示する場合は、ClientGlobalContext.js.aspx.md#BKMK_ClientGlobalContext_js_aspx) ページへの参照を追加して、コンテキスト情報を提供するように HTML Web リソースを構成する必要があります。 この参照を追加すると、Silverlight アプリケーションはエンティティ フォーム内に表示される場合と同様の方法でコンテキスト情報にアクセスできるようになります。 次のサンプルでは getClientUrl 関数を呼び出す方法を示しています。

private string clientUrl = "";  
ScriptObject xrm = (ScriptObject)HtmlPage.Window.GetProperty("Xrm");  
ScriptObject page = (ScriptObject)xrm.GetProperty("Page");  
ScriptObject pageContext = (ScriptObject)page.GetProperty("context");  
clientUrl = (string)pageContext.Invoke("getClientUrl");  

フォームから埋め込み Silverlight Web リソースにデータを渡す方法

Silverlight Web リソースをフォームに追加するときに、パラメーターとして、レコードのオブジェクトの種類コードおよび一意の識別子を渡しますオプションを選択できます。 カスタム パラメーターとしてテキストを入力する方法もあります。

これらの値は、キーと値をペアにしたディクショナリである InitParams として Silverlight コントロールに渡されます。

渡される値を次の表に示します。

キー 内容
id 組織の一意の識別子。
種類 エンティティの種類コード。 カスタム エンティティの場合は組織によって異なります。
typename エンティティの論理名。
orgname 組織の名前。
userlcid ユーザーの言語選択を示す言語コード。
orglcid 組織の基本言語を示す言語コード。
data カスタム パラメーターとして入力されたテキストの値。

これらの値には、次の例に示す構文を使用して実行時にアクセスできます。

string entityTypeName = App.Current.Host.InitParams["typename"];  

Silverlight Web リソースの記述およびテスト

Silverlight Web リソースが Dynamics 365 Customer Engagement (on-premises) のどのようなコンテキスト データからも独立している場合は、Silverlight アプリケーションを通常どおりの方法で記述およびテストすることができます。 .xap ファイルをアップロードして新しい Web リソースを作成し、Web リソースを保存して公開した後は、Web リソース フォームの プレビュー ボタンを使用してテストを実行できます。

しかし、Silverlight アプリケーションには、Dynamics 365 Customer Engagement (on-premises) の外部では完全にシミュレートできないコンテキスト データの依存関係がある可能性が高いです。

フォームまたはコンテキスト依存関係を含む Silverlight Web リソースを作成する手順は次のとおりです。

  1. Silverlight アプリケーション プロジェクトを作成します。

    プロジェクトでは Web アプリケーションの作成を選択してください。

  2. Dynamics 365 Customer Engagement (on-premises) のコンテキスト データを必要としない範囲で、可能な限りアプリケーションの記述とテストを行います。

  3. .xap および .htm ファイルを Silverlight および HTML Web リソースとしてアップロードし、Web リソースを作成します。

  4. Silverlight アプリケーション プロジェクトのコードを記述します。

  5. Silverlight アプリケーション プロジェクトをビルドします。

  6. ビルドした .xap ファイルを Web アプリケーション プロジェクトの ClientBin フォルダーからアップロードし、手順 3. で作成した Silverlight Web リソースを更新します。

  7. Silverlight Web リソースを、次のいずれかの方法でテストします。

    • 作成したホスト HTML Web リソースのプレビューボタンを使用して表示する。

    • 追加したエンティティ フォーム内で表示します。

      Silverlight アプリケーションがフォーム要素またはコンテキスト情報に依存する場合はこの方法を使用します。

  8. 作業が終わるまで手順 4. から手順 7. を繰り返します。

Note

サイト マップを編集して、エンティティ フォーム外で (たとえばアプリケーションのメイン フレーム内で) Silverlight Web リソースを表示する場合、Silverlight Web リソースのホストとして Web ページ (HTML) Web リソースを用意する必要があります。

重要

Silverlight Web リソースをホストするページの HTML ソース コードをアプリケーションのテキスト エディターで編集しないでください。 このテキスト エディターは、HTML を変更して、SilverlightXAP Web リソースをホストするために必要な <object> 要素の定義を破損させてしまいます。 詳細については、「HTML Webリソースでのテキスト エディターを使用する」を参照してください。

テキスト エディターを使用する必要がある場合は、<object> 要素の data="data:application/x-silverlight-2," パラメーターを省略します。 これにより、Silverlight Web リソースの破損を防ぐことができます。ただし、テキスト エディターを使用すると、問題になるような変更がほかにも行われる可能性があります。

Silverlight Web リソースのデバッグ

Dynamics 365 Customer Engagement (on-premises) のコンテキスト データに依存しない Silverlight Web リソースは、Visual Studio でデバッグすることができます。 ただし、Silverlight Web リソースが関数の実行にコンテキスト データを必要とする場合は、異なる手順を実行する必要があります。

  1. Silverlight アプリケーション をビルドします。

  2. ビルドした .xap ファイルを Web アプリケーションの ClientBin フォルダーからアップロードします。

  3. Silverlight アプリケーションを、設計時の意図に沿ったコンテキストで表示します。

  4. Silverlight アプリケーション プロジェクトの Visual Studio メニューで、デバッグプロセスにアタッチの順に選択します。

  5. プロセスにアタッチダイアログ ボックスで、種類列の値が Silverlight, x86 である iexplore.exe を検索します。

  6. このプロセスを選択し、添付をクリックしてダイアログ ボックスを閉じ、デバッグを開始します。

  7. Silverlight アプリケーション プロジェクトにブレークポイントを設定します。

  8. ブラウザー ウィンドウを更新するか、Silverlight アプリケーションでコードのテストに必要な操作を実行します。

関連項目

アクセス可能な Web リソースの作成
Dynamics 365 Customer Engagement (on-premises) の Web リソース
Web ページ (HTML) の Web リソースの使用
スタイルシート (CSS) ウェブ リソースを使用する
スクリプト (JScript) Web リソースの使用
データ (XML) Web リソースの使用
画像 (JPG、PNG、GIF、ICO) Web リソースの使用
スタイル シート (XSL) Web リソースの使用