.NET Native SDK の概要
Native SDK for .NET は、以前は ObjectScript を介してのみ使用可能であった、強力な InterSystems IRIS® リソースへの軽量インタフェースです。Native SDK により、アプリケーションは、InterSystems IRIS Data Platform とのシームレスな統合を利用できます。
-
ObjectScript と .NET 間の透過的な双方向通信の実装
Native SDK、オブジェクト・ゲートウェイ・プロキシ・オブジェクト、および ObjectScript アプリケーションすべてが同じ接続を共有し、同じコンテキストで連携できます。
-
ObjectScript クラスの個別のインスタンスの作成および使用
Native SDK を使用して、InterSystems IRIS で ObjectScript クラスのインスタンスを作成し、実行時にそれらのオブジェクト・ゲートウェイ・プロキシ・オブジェクトを生成できます。.NET アプリケーションは、プロキシを使用して、ネイティブの .NET オブジェクトのように簡単に ObjectScript オブジェクトを操作できます。
-
ObjectScript クラス・メソッドおよびユーザ定義関数の呼び出し
任意の目的でカスタム ObjectScript クラス・メソッドまたは関数を記述し、ネイティブの .NET メソッドと同じように簡単に、Native SDK を使用してアプリケーションからそれらを呼び出すことができます。
-
Native SDK は、InterSystems IRIS 多次元ストレージ・モデルを支える高性能ネイティブ・データ構造 (グローバル配列) への直接アクセスを提供します。グローバル配列は、ObjectScript と同様に .NET アプリケーションでも作成、読み取り、変更、および削除できます。
Native SDK for .NET を使用するには、"接続ツールOpens in a new tab" で説明されている .NET 接続パッケージをダウンロードする必要があります。
以下の例で、これらの機能すべてを .NET アプリケーションに簡単に追加できることを示します。
Native SDK for .NET は、InterSystems ADO.NET Managed Provider の拡張機能として実装されます。接続は、Managed Provider を使用する他のアプリケーションと同じように作成します ("InterSystems Managed Provider for .NET の使用法" を参照)。この例では、接続を開いた後、Native SDK IRIS クラスのインスタンスを作成します。
//Open a connection to InterSystems IRIS
IRISConnection conn = new IRISConnection();
conn.ConnectionString = "Server = localhost; " + "Port = 1972; "
+ "Namespace = USER; " + "Password = SYS; " + "User ID = _SYSTEM;";
conn.Open();
// Use the connection to create an instance of the Native SDK
IRIS iris = IRIS.CreateIRIS(conn);
また、この接続を InterSystems オブジェクト・ゲートウェイで使用することで、.NET アプリケーションと ObjectScript アプリケーションは同じコンテキストを共有し、同じオブジェクトを操作することができます。
アプリケーションで ObjectScript クラスのインスタンスを作成し、直ちにそのオブジェクト・ゲートウェイ・プロキシを生成し、このプロキシを使用して ObjectScript インスタンスを操作できます (“.NET 逆プロキシ・オブジェクトの使用法” の章を参照)。
この例では、最初の行が ObjectScript クラス Demo.dataStore の %New() メソッドを呼び出して、InterSystems IRIS でインスタンスを作成します。.NET では、この呼び出しによって dataStoreProxy という名前の対応するプロキシ・オブジェクトが返され、これを使用してインスタンス・メソッドが呼び出され、ObjectScript インスタンスのプロパティが取得または設定されます。
// use a classmethod call to create an ObjectScript instance and generate a proxy object
IRISObject dataStoreProxy = (IRISObject)iris.ClassMethodObject("Demo.dataStore","%New");
// use the proxy to call instance methods, get and set properties
dataStoreProxy.InvokeVoid("ititialize");
dataStoreProxy.Set("propertyOne","a string property");
String testString = dataStoreProxy.Get("propertyOne");
dataStoreProxy.Invoke("updateLog","PropertyOne value changed to "+testString);
// pass the proxy back to ObjectScript method ReadDataStore()
iris.ClassMethodObject("Demo.useData","ReadDataStore",dataStoreProxy);
この例の最後の行は、dataStoreProxy プロキシを ReadDataStore() という名前の ObjectScript メソッドに渡し、それを元の ObjectScript インスタンスへの参照として解釈します。そこからインスタンスをデータベースに保存して、別の ObjectScript アプリケーションに渡したり、.NET アプリケーションに返したりすることができます。
ObjectScript クラス・メソッドまたは関数は容易に呼び出すことができます (“ObjectScript メソッドおよび関数の呼び出し” の章を参照)。
String currentNameSpace = iris.ClassMethodString("%SYSTEM.SYS","NameSpace");
この例では、単に何らかのシステム情報を取得するためにクラス・メソッドを呼び出していますが、これらの呼び出しの真の実力は、ユーザ記述コードを活用できることです。任意の目的でカスタム ObjectScript クラス・メソッドまたは関数を記述し、ネイティブの .NET メソッドを呼び出すのと同じように、簡単に .NET アプリケーションから呼び出すことができます。
Native SDK は、グローバル配列の操作に必要なすべてのメソッドを提供しています (“グローバル配列の操作” の章を参照)。グローバルへのアクセスと操作、多次元グローバル配列の検索、およびデータ構造の調査を、ObjectScript と同様に簡単に行うことができます。以下の例は、簡易なグローバル配列を作成、読み取り、変更、および削除する方法を示しています。
// Create a global (ObjectScript equivalent: set ^myGlobal("subOne") = 10)
iris.Set(10, "myGlobal", "subOne");
// Change, read, and delete the global
iris.increment(2, "myGlobal", "subOne") // increment value to 12
Console.Write("New number is " + iris.GetInteger("myGlobal", "subOne"));
iris.Kill("myGlobal", "subOne");