.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 アプリケーションでも作成、読み取り、変更、および削除できます。
以下の例で、これらの機能を .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 クラスのインスタンスを作成し、直ちにその .NET プロキシ・オブジェクトを生成し、このプロキシを使用して 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("initialize");
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 は、グローバル配列の操作に必要なすべてのメソッドを備えています (“.NET でのグローバル配列の操作” を参照)。グローバルへのアクセスと操作、多次元グローバル配列の検索、およびデータ構造の調査を、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");