Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

スタジオの概要

スタジオは、アプリケーションの迅速な開発に役立つ以下のような機能を単一の統合環境で提供します。

  • 作成用のエディタ

    • 永続クラス、データベース・クラス、Web サービス・クラスなどのクラス

    • インタラクティブな Web ページ : CSP (Caché Server Pages) および Zen、XML、HTML、JavaScript、カスケーディング・スタイル・シート (CSS) を使用

    • ObjectScript、Basic、または MultiValue を使用したルーチン

  • ObjectScript、Basic、Java、SQL、JavaScript、HTML、XML 用に統合された構文のカラー表示機能およびチェック機能

  • 共通リポジトリを使用してアプリケーション・ソース・コードを作成する開発者チームのサポート

  • グラフィカルなソース・コード・デバッガ

  • プロジェクト単位でのアプリケーション・ソース・コードの管理

スタジオは、Caché オブジェクトを使用して構築されたクライアント・アプリケーションであり、Windows ベースのオペレーティング・システム上で実行できます。サーバが使用しているプラットフォームやオペレーティング・システムに関係なく、(スタジオの現在のバージョンと互換性のある) すべての Caché サーバに接続できます。

Note:

スタジオ・クライアントでは、Caché と同じバージョンを実行しているか、その接続先の Caché サーバより新しいバージョンを実行している必要があります。例 : Caché 2015.1 スタジオは、Caché 2015.1 以前のサーバに接続できます。Caché 2014.1 スタジオは、Caché 2015.1 以降のサーバに接続できません。このことは、メンテナンス・リリースにも当てはまります。例 : Caché 2014.1.2 スタジオは、Caché 2014.1.1 以前のメンテナンス・リリースまたはバージョンのサーバに接続できます。Caché 2014.1.0 スタジオは、Caché 2014.1.1 以降のメンテナンス・リリースまたはバージョンのサーバに接続できません。

スタジオ・ウィンドウの概要

スタジオは、標準の Windows アプリケーションです。スタジオでは、ウィンドウを表示し、さまざまな機能を使って編集できます。スタジオのユーザ・インタフェースの主なコンポーネントは、以下のとおりです。

スタジオ・コンポーネント
generated description: studiodiagram
  1. エディタ : クラス・エディタはクラス定義の編集、ルーチン・エディタはルーチンおよびインクルード・ファイルの編集、CSP エディタは CSP 定義テキストの編集に使用します。

  2. [クラス・ブラウザ] ウィンドウ : 既存のクラスを表示します。

  3. ワークスペース・ウィンドウ : 3 つのタブがあり、現在のプロジェクトのコンテンツ、開いているすべてのウィンドウ、現在のネームスペースのコンテンツを表示できます。

  4. クラス・インスペクタ・ウィンドウ : クラス定義内のキーワードを表示および変更します。

  5. [ウォッチ] ウィンドウ : 変数を表示します。

  6. タイトル・バー : ConnectionName/Namespace@UserName - ProjectName.prj – Studio – ActiveDocument を表示します。アクティブ・ドキュメントが最大化されている場合は、名前は角括弧内に表示されます。

上図のウィンドウに加えて、スタジオには、一般的なタスクを実行するのに役立つウィザードやテンプレートが用意されています。これには、以下のものがあります。

  • [ファイルから検索] ウィンドウ : 検索ウィンドウを表示します。

  • 出力ウィンドウ : Caché サーバから返された出力を表示します (クラスのコンパイル中に生成されたメッセージなど)。

  • コード・スニペット・ウィンドウ : ユーザが作成したコード・スニペットを表示およびドラッグします。

  • 新規クラス・ウィザード : 新規のクラスを定義します。

  • 次のクラス定義にメンバを追加するクラス・メンバ・ウィザード : プロパティ、インデックス、リレーションシップ、メソッド、パラメータ、SQL トリガ、クエリ、プロジェクション、ストレージ、外部キー、および XData ブロック。

  • 他のテクノロジからクラスを作成するウィザード : Java クラスおよび jar ファイル、XML スキーマ、SOAP クライアント・クラスからクラスを作成するウィザード、COM オブジェクトへのアクセスを可能にするウィザード、および .NET の DLL アセンブリ・ファイルからクラスを作成するウィザード。

  • 次の要素を追加する HTML テンプレート : 色、テーブル、タグ、およびスクリプト。

  • CSP フォーム・ウィザード : CSP ページ内の Caché オブジェクトに結合された HTML フォームを作成します。

  • 次の要素を追加する Zen テンプレート : グラフ、テーブル、メソッド、およびスタイル。

コマンド行からのスタジオの実行

スタジオをシステムのコマンド行から実行するには、Caché bin ディレクトリ内の Cstudio.exe コマンドを使用します。このコマンドとそのパラメータでは大文字と小文字が区別されます。

パラメータ 説明
? ヘルプ情報を表示します。
/Servername=ServerName ServerName で指定した名前のサーバに接続します。
/Server=cn_iptcp:127.0.0.1[1972]:: 指定した IP アドレス[ポート] を持つサーバに接続します。
/Namespace=User User で指定したネームスペースに接続します。サーバも定義する必要があります。
/Project=MyProject MyProject で指定したプロジェクトを開きます。 サーバとネームスペースも定義する必要があります。
cn_iptcp://127.0.0.1:1972/User/test.int ルーチン test.int をロードします。cn_iptcp は、大文字と小文字が区別されるプロトコル識別子です。
/files="tag+1^myroutine.int",User.Class1.cls 指定したドキュメントを開いて、指定した位置にカーソルを配置します。 サーバとネームスペースも定義する必要があります。
/pid=123 プロセスにアタッチします。 サーバとネームスペースも定義する必要があります。
/fastconnect=127.0.0.1[1972]:USER:_SYSTEM:SYS ip address[port]:USER:username:password で指定した内容に基づいて、レジストリ内の接続定義を使用せずに接続します。

プロジェクト

スタジオでは、プロジェクトを使用して、アプリケーションのソース・コードを管理できます。

プロジェクトは、クラス定義、CSP ファイル、ルーチン、インクルード・ファイルの集まりです。例えば、スタジオ・プロジェクトを作成して、1 つのアプリケーションに関するクラスや CSP ファイルをすべてまとめることができます。

ユーザが作成したプロジェクトであっても、最初にスタジオを開いたときに作成される既定のプロジェクト Default_yourusername (接頭語 Default_ の後にユーザ名) であっても、常にそのプロジェクト内で作業を行うことができます。

1 つのプロジェクトのファイルはすべて、同じネームスペース (および Caché サーバ) に存在する必要があります。個々のクラス、CSP ファイル、ルーチンは、複数のプロジェクトと関連付けることができます。1 つのネームスペースには、複数のプロジェクトを配置することができます。

プロジェクトには、Caché ネームスペースのクラス階層などの情報が保存され、クラスまたは CSP ファイルを編集する際にはその情報を使用できます。また、プロジェクトには、デバッグ情報 (デバッグするアプリケーションの起動方法) も保存されます。

クラス定義

クラス定義では Caché クラスを定義します。クラス定義は、クラス・メンバ (プロパティやメソッドなど)、キーワードと呼ばれるその他の項目、およびそれぞれの対応する値から成り、これらによってクラスの振る舞いの詳細を指定します。

クラス定義は、Caché データベースのクラス・ディクショナリに保存されています。クラス定義をコンパイルし、実行可能コードを生成することによって、クラス定義に基づくオブジェクト・インスタンスを生成できます。クラスに対して生成された実行可能コードのソース・コードは、1 つまたは複数の Caché ルーチンから成ります。生成されたこれらのルーチンは、スタジオで表示できます。

クラス定義は、他のテクノロジで使用するために投影できます。SQL と ActiveX の場合、このプロジェクション (投影) は自動的に行われます。Java (もしくは C++) の場合、別のコンパイルの過程を経て、Caché クラス定義に対応する Java クラスが生成されます。詳細は、“クラスへのプロジェクションの追加” の章を参照してください。

スタジオでは、クラス定義をクラス・エディタ・ウィンドウで表示し、編集することができます。また、クラス定義をクラス・インスペクタ・ウィンドウに表示し、キーワードやそれに対応する値を表形式で編集することもできます。

テキストとしてのクラス定義

以下のクラス定義の例では、1 つのプロパティと 1 つのメソッドを持つクラスを定義しています。

/// Definition of a simple persistent Person class
Class MyApp.Person Extends %Persistent
{

/// The name of the Person
Property Name As %String;


/// A simple Print method
Method Print() As %Boolean
{
    // Write out Person's Name
    Write "Name is: ", ..Name
    Quit 1
}

}

クラス情報

クラス定義ではまず、クラス名と、クラス全体の特性を宣言します。以下はその例です。

Class MyApp.Student Extends Person
{

}

この例では、クラス MyApp.Person から拡張 (派生) した MyApp.Student というクラスを定義しています。プロパティ、メソッドなどのメンバはありません。StudentPerson は同じパッケージに属すので、MyApp は Extends 文から省略できます。{ } 括弧は、クラス・メンバ (この例では使用しません) の定義を囲みます。

このクラスに対する追加の特性を指定するには、クラス・キーワードの値を定義します。キーワード (および存在する場合はその値) のリストは、クラス宣言のすぐ後 (クラス名と、存在する場合のスーパークラス名の後) に続く [ ] 括弧内に配置します。

例えば、クラスを Final、それに対応する SQL テーブルの名前を StudentTable として指定できます。

Class MyApp.Student Extends Person [Final, SqlTableName=StudentTable]
{

}

また、クラスの宣言の直前にコメント (3 つのスラッシュ /// で区別して) を配置して、上記の例のクラスの内容を説明できます。この説明は、Caché のオンライン・クラス・リファレンスを経由して、クラス・ドキュメントを表示するときに使用されます。説明には、HTML マークアップを記述できます。以下はその例です。

/// This is a simple Student class
/// It is derived from the Person class
Class MyApp.Student Extends Person
{

}

クラス定義内では、C 形式のコメント、すなわち // (2 つのスラッシュ) と /* */ (開始記号にはスラッシュとアスタリスク、終了記号にはアスタリスクとスラッシュ) を使用して、クラス定義の一部のセクションをコメントにすることができます。

プロパティ

クラス定義内のプロパティは、Property キーワードを使用して定義できます。

Class MyApp.Student Extends Person
{
     Property GPA As %Float;
}

この例では、As を使用して、%FloatOpens in a new tab 型のプロパティ GPA を定義しています。プロパティ定義の末尾には、セミコロン (;) を入力します。

クラス宣言と同様に、プロパティの直前に /// 記号を付けてプロパティのコメントを追加し、プロパティの直後に [ ] 括弧を付けて、追加のプロパティ・キーワードを指定できます。

Class MyApp.Student Extends Person
{
    /// Grade Point Average for the Student
    Property GPA As %Float [ Required ];
}

プロパティのデータ型にパラメータ値を指定する場合は (このパラメータ値によって、プロパティの振る舞いをカスタマイズする場合)、そのパラメータ値をデータ型の名前の一部として ( ) 括弧内に配置します。データ型のパラメータ値は、リテラル値として扱われることに注意してください。文字列は引用符で囲みます。

Class MyApp.Student Extends Person
{
    /// Grade Point Average for the Student
    Property GPA As %Float(MINVAL=0.0, MAXVAL=5.0) [ Required ];
}

メソッド

クラス定義内のメソッドは、Method キーワードを使用して定義できます。

Class MyApp.Student Extends Person
{
/// This method wastes <varname>count</varname> seconds.
Method WasteTime(count As %Integer=1) As %Boolean [Final]
{
    // loop and sleep
    For i = 1:1:count {
        Write "."
        Hang 1
    }
    Quit 1
}
}

メソッドの返り値の型は、As を使用して指定し、その後にクラス名を配置します。仮引数のリストは、メソッド名の後の () 括弧内に配置します。メソッドの実装は、メソッドの宣言の後の { } 括弧内に配置します。

プロパティと同様に、/// (3 つのスラッシュ) コメントを付けてメソッドの内容を説明できます (必要に応じて HTML マークアップを使用します)。また、追加のキーワード値は [ ] 括弧内に配置します。

Language キーワードを使用して、メソッドに対するプログラミング言語を指定します。例えば、以下のコードは Basic でメソッドを定義しています。

/// Find the sum of numbers from 1 to <var>count</var>.
Method SumUp(count As %Integer) As %Integer [Language = basic]
{
    total = 0
    For i = 1 To count
        total = total + i
    Next

    Return i
}

Language キーワードを使用した場合、以下のいずれかの言語を指定できます。

  • cache — ObjectScript (言語が指定されていない場合は、これが既定)。詳細は、"Caché ObjectScript の使用法" を参照してください。

  • basic — Basic。Caché では、BASIC の 1 種であるプログラミング言語がサポートされています。Basic のメソッドからコンパイルされた実行可能コードは、Caché 仮想マシンで動作します (ObjectScript と同様)。詳細は、"Basic の使用法" を参照してください。

  • java — Java。Caché Java バインディングを使用すると、Java のメソッドは自動的に生成された Java クラスの一部となり、実行可能 Java コードにコンパイルされます。詳細は、"Caché と Java の使用法" を参照してください。

1 つのクラスに、異なる言語を使用する複数のメソッドを含めることができます。また、クラス・レベルで Language キーワードを使用すれば、クラス全体の既定プログラミング言語を指定することもできます。

CSP ファイル

CSP (Caché Server Page) ファイルは、CSP マークアップ言語を含む HTML もしくは XML テキスト・ファイルです。CSP エンジンは、CSP ファイルを処理して、その CSP ファイルから Caché クラスを生成します。この Caché クラスは、HTTP イベントへの応答および Web コンテンツの提供に使用されます。

よりプログラム的な手法で Web 開発を行う場合は、スタジオを使用し、他のクラスを定義する場合と同様の方法で、CSP クラスを生成し、編集することができます。

スタジオでは、CSP ファイルを CSP エディタ・ウィンドウに表示できます。このエディタでは、HTML や XML の構文がカラー表示され、CSP ファイルに含まれる多くのスクリプト言語もサポートされています。

CSP エディタでは、コマンドを使用して、CSP マークアップ・タグを挿入するなど、一般的な CSP と HTML の編集作業を行うことができます。スタジオでは、メニュー項目の [ビュー] > [ブラウザで表示] を使用すれば、ブラウザに CSP ファイルの結果を表示することもできます。

ルーチン・エディタ

ルーチン・エディタでは、構文をカラー表示する機能を使用して、特定の Caché ルーチンのソースを直接作成したり、編集することができます。また、インクルード・ファイルの編集にもルーチン・エディタを使用します。

複数のユーザへのサポート

スタジオは、オブジェクト・ベースの、クライアント・サーバ・アプリケーションです。スタジオで作成し、編集したソース・ファイル (クラス定義、ルーチン、インクルード・ファイル、CSP ファイル) は Caché サーバに保存して、オブジェクトとして表示できます。

スタジオからソース・ファイルを保存する場合は、現在接続している Caché サーバにファイルを保存できます。スタジオで表示しているソース・ファイルがサーバ側で変更された場合、その変更が通知され、変更後のファイルをロードするかどうかを尋ねられます。

スタジオは、複数のユーザが同じソース・コンポーネントを同時に表示していることを自動的に検知し、並行アクセスを管理します。他のユーザが編集しているファイルを開こうとした場合は、他のユーザに使用されていることが通知され、そのファイルを読み取り専用モードで開くかどうかを尋ねられます。

Caché ドキュメントのローカルでのインポートおよびエクスポート

通常、スタジオで作業しているすべてのドキュメントは (クラス定義やルーチン)、Caché データベース (リモート・マシン) に保存されます。[ツール]→[エクスポート] と [ツール]→[インポート] を使用すれば、ローカル・ファイルのエクスポートとインポートを行うことができます。

クラス定義とルーチンは、XML ドキュメントとしてローカル・ファイルに保存されます。

デバッグ

スタジオには、ソース・レベルの GUI デバッガが用意されています。このデバッガは、スタジオが接続している Caché サーバで実行中のターゲット・プロセスにアタッチできます (または、起動してからアタッチできます)。アタッチされたデバッガは、ターゲット・プロセスをリモート制御できるため、変数のウォッチ、コードのステップ実行、ブレークポイントの設定などを行うことができます。

通常、デバッガを使用するためにはプロジェクトを開く必要があります。プロジェクトには、ターゲット・プロセスのデバッグを開始するのに必要な情報 (ルーチン、メソッド、CSP ページ、Zen ページ、またはクライアント・アプリケーションの名前) が保存されています。また、プロジェクトには、以前のデバッグ・セッションで設定されたブレークポイントのリストが、後で再利用できるように保存されます。

プロジェクトを開かずに、実行中のプロセスへアタッチし、デバッグすることもできますが、その場合、スタジオでは、前のセッションで設定されたブレークポイントを使用できません。デバッグに関する詳細は、“スタジオ・デバッガの使用” の章を参照してください。

オブジェクト・ベースのアプリケーションのデバッグ

現在、スタジオでは INT (ObjectScript ルーチン) と BAS (Basic ルーチン) のソース・ファイルでのみデバッグを行うことができます。クラスや CSP ページでステップ実行やブレークポイントの設定を行うには、対応する INT フィアルまたは BAS ファイルを開き、そのファイルでデバッグ・コマンドを使用します。

クラスに対して生成されたソース・コードを利用できるようにするには、[ツール]→[オプション] ダイアログの [コンパイラ]→[一般フラグ] タブで、[生成されたソース・コードを保存] オプションにチェックを付けます。

Caché セキュリティとの統合

Caché セキュリティ機能によって、スタジオの使用および Caché サーバへのスタジオの接続の両方が制御されます。スタジオを起動すると、ログイン画面が表示されます。スタジオを使用するには、以下の特権を有するユーザとしてログインする必要があります。

  • %Development:Use%Development リソースに対する Use 許可は、さまざまな開発関連リソースへのアクセス権を付与します。

  • %Service_Object:Use%Service_Object リソースに対する Use 許可は、スタジオへのアクセスを制御する %Service_Bindings サービスへのアクセス権を付与します。

また、デフォルト・データベースへの Read または Write 許可を持つネームスペースへの接続のみ可能になります。

ユーザがこれらのさまざまな特権を付与される方法は、インスタンスのセキュリティ・レベルによって異なります (以下の一覧で説明します)。スタジオの認証設定を変更するには、%Service_Bindings サービスの [サービス編集] ページにある [許可された認証モード] チェック・ボックスを使用します。

  • 最小限のセキュリティが設定されたインスタンスでは、UnknownUser を含むすべてのユーザがすべてのネームスペースに対するすべての特権とアクセス権を持ちます。スタジオのログイン画面が表示された場合、[ユーザ名][パスワード] フィールドを空白のままにするか、ユーザ名とパスワードのペアとして “_SYSTEM” と “SYS” を入力します。

  • 標準のセキュリティが設定されたインスタンスでは、指定された特権を明示的に付与される必要があります。これは、これらの特権を持っているロールに割り当てることによって確立されます。

  • ロックダウン・セキュリティが設定されたインスタンスでは、スタジオへのアクセスを制御するサービス (%Service_Bindings) が既定で無効に設定されています。既定では、すべてのユーザはスタジオへのアクセス権を持っていません。

Note:

スタジオへのアクセス権は、インストール以降に行った既定の設定に対する変更に影響される場合があります。

ソース・コントロール・フック

スタジオには、カスタム フック (ドキュメントがロードまたは保存されるときに、必ず Caché サーバで実行されるコード) を実装するメカニズムがあります。通常、これらのフックは、ソースやリビジョン管理システムへの接続を実装するのに使用されます。

ソース・コントロール・フックを定義するには、%Studio.SourceControl.BaseOpens in a new tab クラスのサブクラスを生成し、必要なコールバック・メソッドを実装します。管理ポータルの システム, ソースコントロール設定 ページを選択すれば、スタジオが使用するソース・コントロール・クラスを指定できます ([システム管理]→[構成]→[詳細設定]→[ソースコントロール] に移動します)。

詳細は、"%Studio.SourceControl.BaseOpens in a new tab クラス" および付録の “スタジオのソース・コントロール・フックの使用法” を参照してください。

FeedbackOpens in a new tab