はじめに
このドキュメントでは、CacheClient .NET アセンブリの使用方法を説明します。これにより、以下の 2 つの補完的な方法を使用して .NET アプリケーションから Caché にアクセスできます。
-
Caché .NET オブジェクト・バインディング — 自動生成されるプロキシ・クラスを使用して、データに対する高性能でネイティブなオブジェクト・アクセスを提供します。これらのプロキシ・クラスは、Caché データベースに格納されている永続オブジェクトに対応するものであり、オブジェクトの永続性、抽出、データ・キャッシング、およびライフ・サイクル管理の機能を提供します (“.NET 用 Caché オブジェクト・バインディングの使用法” を参照)。
-
ADO.NET Managed Provider の Caché 実装 — 標準 ADO.NET Managed Provider クラスを使用して、データへの簡単なリレーショナル・アクセスを提供します (“ADO.NET Managed Provider クラスの使用法” を参照)。
この組み合わせは、オブジェクトとリレーショナル間のマッピングを行わずに、共通の API を使用してデータへのリレーショナル・アクセスとオブジェクト・アクセスを同時に行う .NET アプリケーションを作成できるという点で際立っています。CacheClient アセンブリは、全面的に .NET マネージド・コードを使用して実装されるため、.NET 環境での配置が容易です。スレッドセーフであるため、マルチスレッドの .NET アプリケーションで使用できます。
インストールと構成
この節では、要件を示すと共に、Caché をインストールして Visual Studio を構成する手順を示します。
要件
-
.NET Framework、バージョン 2.0、3.0、または 4.0
-
Caché 5.1 以降
-
Visual Studio 2008 または 2010。.NET 4.0 を使用する場合は Visual Studio 2010 が必要です。
Caché .NET クライアント・アプリケーションを実行するコンピュータでは Caché は不要です。ただし、Caché サーバへの TCP/IP 接続があり、サポートされるバージョンの .NET Framework が動作していることが必要です。
インストール
CacheClient アセンブリ (InterSystems.Data.CacheClient.dll) は、Caché の他のコンポーネントと共にインストールされます。特別な準備は必要ありません。
-
Windows では、Caché をインストールするときに Setup Type: Development オプションを選択します。
-
Caché をセキュリティ・レベル 2 でインストールした場合、管理ポータルを開いて、システム管理, セキュリティ, サービス に移動し、%Service_CallIn を選択して、[サービス有効] ボックスにチェックが付いていることを確認します。Caché をセキュリティ・レベル 1 (最小) でインストールした場合、これには既にチェックが付いているはずです。
.NET プロジェクトで CacheClient アセンブリを使用するには、このアセンブリへの参照を追加して、対応する Using 文をコードに追加する必要があります (次の節 “Visual Studio の構成” を参照)。
サポートしている .NET のバージョンごとに、別々の InterSystems.Data.CacheClient.dll のバージョンがあります。Caché の現在のリリースでは、これらのファイルは <Cache-install-dir>\dev\dotnet\bin の以下のサブディレクトリにあります。
-
.NET バージョン 2.0 : \bin\v2.0.50727
-
.NET バージョン 3.0 : \bin\v3.0
-
.NET バージョン 4.0 : \bin\v4.0.30319
ご使用のシステムの <Cache-install-dir> の場所は、"Caché インストール・ガイド" の “Caché のインストール・ディレクトリ” を参照してください。
Caché をインストールすると、.NET 用のすべての Caché アセンブリが .NET GAC (グローバル・アセンブリ・キャッシュ) にインストールされます。
Visual Studio の構成
この章では、CacheClient アセンブリを使用して Visual Studio プロジェクトを設定する方法と、Visual Studio に Caché オブジェクト・バインディング・ウィザードを追加する方法について説明します。以下の項目について説明します。
-
Visual Studio プロジェクトの構成 — CacheClient アセンブリ参照と Using 文の追加方法について説明します。
-
Visual Studio への Caché オブジェクト・バインディング・ウィザードの追加 — Caché プロキシ・クラスの作成ウィザードを Visual Studio の [ツール] メニューに追加する方法について説明します。
Visual Studio プロジェクトの構成
プロジェクトに CacheClient アセンブリ参照を追加するには、以下の手順を実行します。
-
Visual Studio のメイン・メニューで、[プロジェクト]→[参照の追加] を選択します。
-
[参照の追加] ウィンドウで [参照] をクリックします。
-
プロジェクトで使用している .NET のバージョンのアセンブリを含む <Cache-install-dir>\dev\dotnet\bin のサブディレクトリ (“インストール” を参照) を探して、InterSystems.Data.CacheClient.dll を選択した後、[OK] をクリックします。
-
Visual Studio のソリューション・エクスプローラでは、[参照] の下に InterSystems.Data.CacheClient アセンブリが表示されます。
InterSystems.Data.CacheClient.dll アセンブリに含まれる 2 つの主要なネームスペースの Using 文を、アプリケーションのネームスペースの先頭に追加します。
using InterSystems.Data.CacheClient;
using InterSystems.Data.CacheTypes;
namespace DotNetSample {
...
}
CacheClient ネームスペースと CacheTypes ネームスペースの両方が、InterSystems.Data.CacheClient.dll アセンブリに追加されます。
Visual Studio へのオブジェクト・バインディング・ウィザードの追加
Caché オブジェクト・バインディング・ウィザードは、Caché プロキシ・オブジェクトを生成するプログラムです (“Caché オブジェクト・バインディング・ウィザードの使用法” を参照してください)。このウィザードはコマンド行から実行できますが、Visual Studio の [外部ツール] メニューに追加して Visual Studio に組み込むことで、さらに簡単に利用できます。
[ツール] メニューに Caché オブジェクト・バインディング・ウィザードを追加するには、以下の手順を実行します。
-
Visual Studio のメイン・メニューで、[ツール]→[外部ツール] を選択します。
-
[外部ツール] ウィンドウで、以下の手順を実行します。
-
[追加] をクリックします。
-
[タイトル] フィールドに「Cache Object Binding Wizard」と入力します。
-
[コマンド] フィールドで、<Cache-install-dir>\dev\dotnet\bin\v2.0.50727 ディレクトリを参照し、CacheNetWizard.exe を選択します (この実行可能ファイルは .NET 2.0 ディレクトリにありますが、サポートされているすべてのバージョンの .NET 用のバインディング・ウィザードを提供します。ご使用のシステムの <Cache-install-dir> の場所は、"Caché インストール・ガイド" の “Caché のインストール・ディレクトリ” を参照してください)。
-
[OK] をクリックします。
これで、Visual Studio の [ツール] メニューのオプションとして Caché オブジェクト・バインディング・ウィザードが表示されます。
-
Caché .NET バインディング・アーキテクチャ
Caché .NET バインディングを使用すると、.NET アプリケーションは Caché サーバ上のオブジェクトと相互運用できます。これらのオブジェクトは、Caché オブジェクト・データベースに格納される永続オブジェクト、あるいは Caché サーバで処理を実行する一時的なオブジェクトです。
Caché .NET バインディングには、以下のコンポーネントが含まれます。
-
Caché オブジェクト・サーバ — 標準ネットワーク・プロトコル (TCP/IP) を使用して、.NET オブジェクトと Caché データベース・サーバ間の通信を管理する高性能なサーバ・プロセスです。Caché では、.NET、C++、Java、Perl、Python、ODBC、および JDBC によるアクセスで共通のサーバを使用します。
-
InterSystems.Data.CacheClient アセンブリ — Caché プロキシ・ジェネレータにより作成された .NET クラスのすべての機能を実装する .NET クラスのセット。.NET 標準ライブラリのフレームワークに適合するようにさまざまな方法で投影される、いくつかのオブジェクト・サーバ・クラス用のプロキシ・クラスのセットも提供します。
-
Caché プロキシ・ジェネレータ — Caché クラス・ディクショナリに定義されたクラスから .NET クラスを生成する一連のメソッドです。いくつかの異なるインタフェースを利用できます (“Caché プロキシ・クラスの生成” を参照してください)。
プロキシ・ジェネレータによって、Caché クラス・ディクショナリ内のあらゆるクラスに対して .NET プロキシ・クラスを生成できます。このプロキシ・クラスは .NET マネージド・コードのみで構成されており、プロキシ・ジェネレータでは、Caché クラス・ディクショナリにあるクラス定義を調査してこのコードを生成します。実行時のクライアントの .NET プロキシ・クラスのインスタンスは、Caché サーバ上の対応する Caché オブジェクトと (TCP/IP ソケットを使用して) 通信します。以下はその図です。
基本機能は以下のとおりです。
-
Caché 内で 1 つ以上のクラスを定義します。これらのクラスは、Caché データベースに格納される永続オブジェクト、または、Caché サーバで実行する一時的なオブジェクトです。
-
Caché プロキシ・ジェネレータは、使用されている Caché クラスに対応する .NET プロキシ・クラスを生成します。これらのクラスは、サーバ上の Caché オブジェクトのメソッドやプロパティに対応するスタブ・メソッドやプロパティを備えています。
-
実行時、.NET アプリケーションは Caché サーバに接続します。その後、Caché サーバ上のオブジェクトに対応する .NET プロキシ・オブジェクトのインスタンスを生成できます。これらのプロキシ・オブジェクトを、他の .NET オブジェクトとして使用できます。Caché は、すべての通信とクライアント側のデータ・キャッシングを自動的に管理します。
実行時のアーキテクチャは以下のとおりです。
-
Caché データベース・サーバ (複数可)。
-
生成、コンパイルした .NET プロキシ・クラスがリンク付けされた .NET クライアント・アプリケーション
.NET アプリケーションは、実行時に (CacheConnection クラスにより提供される) オブジェクト接続インタフェースを使用して、Caché に接続します。.NET アプリケーションと Caché サーバ間のすべての通信は、標準 TCP/IP プロトコルを使用します。
Caché .NET ヘルプ・ファイル
Caché .NET ヘルプ・ファイルを使用すると、オブジェクト API とリレーショナル API の両方について最新の詳細ドキュメントを表示できます。このファイルは、CacheProvider.chm という名前ですが、ADO.NET Managed Provider クラス (InterSystems.Data.CacheClient) とオブジェクト・バインディング・クラス (InterSystems.Data.CacheClient.ObjBind) の両方に対応し、さらに両方のバインディングで使用されるクラスにも対応します。CacheProvider.chm は、<Cache-install-dir>\dev\dotnet\help のスタンドアロンのヘルプ・ファイルとして使用することができます。
Caché .NET サンプル・プログラム
Caché には、Caché .NET バインディングの使用法を示すサンプル・プロジェクト・セットが付属しています。これらのサンプルは、Caché インストールの <Cache-install-dir>/dev/dotnet/samples/ サブディレクトリにあります (ご使用のシステムの <Cache-install-dir> の場所については、"Caché インストール・ガイド" の “Caché の既定のインストール・ディレクトリ” を参照してください)。
-
adoform — Sample.PersonOpens in a new tab データベースへのアクセスとその操作を行う、簡単なプログラム。同じプログラムが、Visual Studio の 3 種類の言語である C#、Basic、および C++ で記述されています。
-
bookdemos — このドキュメントで紹介している例の実用バージョン。このプロジェクトは小規模なものであり、短いサンプル・ルーチン用に簡単に修正できるテスト・ベッドです。関連するサンプル・コードはすべて、SampleCode.cs ファイルにあります。Sample パッケージのプロキシ・クラスを格納した ..\bookdemos\WizardCode.cs ファイルの再生成が必要な場合があります (詳しい手順は、“Caché プロキシ・クラスの生成” を参照してください)。
-
console — Caché .NET プロジェクトの最小要件を示すコンソール・プログラム。
-
mobiledevice — adoform に似たプログラムですが、CacheClient アセンブリのモバイル・バージョンで一時的な接続を扱う方法を示します。
-
objbind — adoform に似たプログラムですが、ADO.NET Managed Provider クラスと Caché オブジェクト・バインディング・クラスの両方を使用して互いを補完するコードの記述方法を示します。
これらすべてのプロジェクトは、SAMPLES ネームスペースの Sample パッケージにあるクラスを使用します。スタジオを使用すると、これらのクラスの ObjectScript コードを検査できます。
これらのサンプルの多くは C# のみで記述されています。サンプルを Visual Basic に変換する場合は、新しい Visual Basic .NET プロジェクトに、プロジェクトで定義されているすべてのクラスで構成される既定のネームスペースが含まれることに注意してください。これを無視した場合、次のようなコードは失敗します。
Dim p As New Sample.Person
p = p.OpenId(CacheConnection, "1")
これはルートのネームスペースが参照されていないために起こります。Visual Studio プロジェクト設定の [ルートのネームスペース] オプションを無効にすれば、このエラーは容易に回避できます。