Silverlight (XAP) の Web リソース

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

重要

Microsoft Silverlight Web リソースは、Microsoft Dynamics 365 (オンラインおよび設置型) で下位互換性がサポートされています。 すべてのクライアントに表示するコンポーネントの場合、Silverlightの代わりに HTML5 でHTML Web リソースを使用することをお勧めします。

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

Microsoft Dynamics 365 (オンラインおよび設置型) では、Silverlight 4.0 の Web リソースをエンティティ フォームに追加できます。Silverlight 5.0 の Web リソースは、そのバージョン用に構成されたホスト <object> 要素を使用して HTML Web リソース内に表示できます。

注意

  • Microsoft Silverlight Web リソースは 64 ビット版の Microsoft Office Outlook では表示できません。

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

このトピックの内容

Silverlight Web リソースの作成

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

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

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

Silverlight Web リソースのデバッグ

Silverlight Web リソースの作成

Silverlight Web リソースは、Web リソース フォームを使用して簡単に作成できます。必要な作業は、名前および表示名を入力し、種類として [Silverlight (XAP)] を選択し、.xap ファイルをアップロードすることだけです。 Web リソースは使用する前に公開する必要があります。 ただし、通常 Silverlight Web リソースは Microsoft Dynamics 365 内のコンテキスト データとやり取りを行うので、計画的に 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 ページへの参照を追加して、コンテキスト情報を提供するように HTML Web リソースを構成する必要があります。 この参照を追加すると、Silverlightアプリケーションはエンティティ フォーム内に表示される場合と同様の方法でコンテキスト情報にアクセスできるようになります。 次のサンプルでは Xrm.Page.context オブジェクトから関数 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 リソースが Microsoft Dynamics 365 のどのようなコンテキスト データからも独立している場合は、Silverlight アプリケーションを通常どおりの方法で記述およびテストすることができます。.xap ファイルをアップロードして新しい Web リソースを作成し、保存して公開した後は、Web リソース フォームの [プレビュー] ボタンを使用してテストを実行できます。

しかし、Silverlight アプリケーションには、Microsoft Dynamics 365 の外部では完全にシミュレートできないコンテキスト データの依存関係がある場合の方が一般的です。

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

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

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

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

  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. を繰り返します。

注意

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

重要

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

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

Silverlight Web リソースのデバッグ

Microsoft Dynamics 365 のコンテキスト データに依存しない Silverlight Web リソースは、Microsoft 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 リソースの作成
Microsoft Dynamics 365 の Web リソース
Webpage (HTML) の Web リソース
CSS Web リソース
スクリプト (JScript) Web リソース
データ (XML) Web リソース
画像 (JPG、PNG、GIF、ICO) の Web リソース
スタイルシート (XSL) Web リソース

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権