Japan Dynamics CRM Team Blog

Microsoft Dynamics CRM technical information for partners and customers

Dynamics CRM 2011 Developer Extensions 紹介 - CrmConnection クラスで簡単に組織 Web サービスを生成

Dynamics CRM 2011 Developer Extensions 紹介 - CrmConnection クラスで簡単に組織 Web サービスを生成

  • Comments 0

みなさん、こんにちは。

前回に引き続き Developer Extensions の紹介です。今回は CrmConnection
クラスを利用した、組織 Web サービスの生成を紹介します。

概要

CrmConnector を利用すると接続文字列という概念を使用して Microsoft Dynamics
CRM サーバーに接続できるようになります。これは、ADO.NET で利用される手法と
おなじで、接続もじれるはアプリケーション構成ファイルに含めることが可能です。

文字列がコード内に埋め込まれないため、プログラムを他環境へ移動することが
容易になり、また構成ファイルの暗号化を利用することでセキュアに管理できます。

接続文字列

CrmConnection クラスに渡す接続文字列の例を以下にあげます。詳細は別途
SDK をご参照ください。

設置型で実行ユーザーで認証する場合
Url=http://crm.contoso.com/xrmContoso;

設置型でユーザー情報を渡す場合
Url=http://crm.contoso.com/xrmContoso; Domain=CONTOSO; Username=jsmith; Password=passcode

Microsoft Dynamics CRM オンラインに Windows Live ID で接続する場合
Url=https://contoso.crm.dynamics.com; Username=jsmith@live-int.com; Password=passcode; DeviceID=contoso-ba9f6b7b2e6d; DevicePassword=passcode

CrmConnection クラスの利用

CrmConnection クラスのインスタンス化時に接続文字列を渡しますが、2 通りの
方法があります。

アプリケーション構成ファイルを利用する場合

[構成ファイル]
<connectionStrings>   
    <add name="OnPremise" connectionString="Url=http://crm.contoso.com/xrmContoso"/>
</connectionStrings>

[コード]
var connection = new CrmConnection(“OnPremise”);

接続文字列をコードに埋め込む場合

[コード]
var connection = CrmConnection.Parse("Url=http://crm.contoso.com/xrmContoso");

サービスの生成

CrmConnection を利用してサービスを作成することが可能です。
生成できるサービスはコンストラクタで CrmConnection を受け取るものです。

例)
var service = new OrganizationService(connection);
var context = new CrmOrganizationServiceContext(connection);

また前回紹介した CrmSvcUtil.exe ツールで生成されたサービスコンテキスト
クラスを利用することが可能です。ツールで指定したサービスコンテキスト名が
XrmContext の場合、以下のようにサービスをインスタンス化できます。

var context = new XrmServiceContext(connection);

この場合 IntelliSense を利用した開発が可能となります。

まとめ

Microsoft Dynamics CRM Web サービスは様々な方法で利用が可能ですが、
CrmConnection を利用するのも、その中の 1 つであり、ADO.NET 開発者には
なじみのある手法になります。

次回は CrmOrganizationServiceContext の詳細を紹介します。

- Dynamics CRM サポート 中村 憲一郎

  • Loading...
Leave a Comment
  • Please add 7 and 1 and type the answer here:
  • Post