Skip to main content

スタジオの概要

Important:

InterSystems スタジオは非推奨になりました。バージョン 2024.2 以降は、従来の目的でスタンドアロン配布としてのみ利用できます。"非推奨の機能とサポート中止の機能Opens in a new tab" の "スタジオOpens in a new tab" を参照してください。

スタジオは Windows システムで動作するクライアント・アプリケーションであり、InterSystems IRIS インスタンス上で ObjectScript コードを開発するために使用できる IDE の 1 つです。

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

  • クラスとルーチンを作成するためのエディタ。

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

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

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

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

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

Note:

スタジオ・クライアントでは、インターシステムズ・サーバが実行しているインターシステムズ製品と同じかそれ以降のバージョンを実行している必要があります。

スタジオ接続の有効化

スタジオが InterSystems IRIS サーバに接続するには、サーバが InterSystems IRIS サーバ・マネージャの接続リストに含まれている必要があります。

また、InterSystems IRIS サーバが適切に設定されている必要があります。"高度な Web サーバ構成" を参照し、接続するサーバの WebServerNameWebServerPort、および WebServerURLPrefix の設定を確認してください。また、%Service_Bindings サービスが有効になっていることも確認してください。

スタジオでの非 Latin1 エンコードの使用の有効化

スタジオでは非 Unicode エンコードが使用されるため、ロシア語などの言語で使用される非 Latin1 文字エンコードを処理するには、Windows OS レベルで言語エンコードを構成する必要があります。詳細は、Windows OS のドキュメントを参照してください。

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

スタジオのユーザ・インタフェースの主なコンポーネントは、以下のとおりです。

スタジオ・コンポーネント
1 から 6 のラベルが付けられたコンポーネント・ペインで構成される、スタジオのユーザ・インタフェース・ウィンドウ。次のリストの各アイテムの番号は、ラベルの番号を指しています。
  1. エディタ・ウィンドウ : クラス・エディタはクラス定義の編集、ルーチン・エディタはルーチンおよびインクルード・ファイルの編集、CSP エディタは CSP 定義テキストの編集に使用します。InterSystems IRIS® での CSP ファイルの使用はお勧めしません。

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

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

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

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

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

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

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

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

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

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

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

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

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

  • CSP フォーム・ウィザード : CSP ページ内のオブジェクトに結合された HTML フォームを作成します。InterSystems IRIS での CSP ファイルの使用はお勧めしません。

Note:

スタジオは Unicode をサポートしないコントロールで構築されているので、Unicode アプリケーションではありません。特に、[ファイルから検索] ウィンドウは Unicode をサポートしていません。

コードの可視性

[ワークスペース] ウィンドウの [ネームスペース] タブには、現在のネームスペースにあるコードが表示されますが、以下の例外があります。

  • %SYS ネームスペースでは、% で始まる名前のクラスとルーチンも含め、すべてのクラスとルーチンが表示されます。

  • 他のネームスペースでは、% で始まる名前のクラスとルーチンを除き、そのネームスペースで利用できるすべてのクラスとルーチンが既定で表示されます。% で始まる名前のクラスとルーチンを表示するには、[開く] ダイアログ・ボックス ([ファイル][開く]) の [システム・アイテムを含む] チェック・ボックスにチェックを付けます。

プロジェクト

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

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

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

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

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

クラス定義

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

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

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

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

CSPファイル (従来)

従来のアプリケーションにも CSP ファイルを含めることができます。これは、タグベースの開発で使用されます。タグベースの開発モデルでは、開発者は Web アプリケーションによりアクセスされるディレクトリ構造に含まれる .csp ファイルを作成します。ファイルには、サーバとの通信を可能にする HTML タグと特殊タグの組み合わせが含まれています。CSP コンパイラはファイルを読み取り、それらからクラス定義を生成します。次いでクラス定義は実際のランタイム HTML を生成します。タグベースの開発の詳細は、Caché/Ensemble ドキュメントの "Tag-based Development with CSPOpens in a new tab" を参照してください。

InterSystems IRIS での CSP ファイルの使用 (タグベースの開発) はお勧めしません。代わりに CSP クラスを作成できます。"CSP ベースの Web アプリケーションの作成" を参照してください。

ルーチン・エディタ

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

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

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

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

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

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

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

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

デバッグ

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

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

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

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

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

クラスに対して生成されたソース・コードを利用できるようにするには:

  1. [ツール]→[オプション] を選択します。

  2. 左側のペインで [コンパイラ]→[フラグおよび最適化] に移動します。

  3. [生成されたソース・コードを保存] チェック・ボックスにチェックを付けます。

セキュリティ

インターシステムズのセキュリティ機能によって、スタジオの使用、インターシステムズ・サーバへのスタジオの接続、および SSL/TLS で保護された接続のサポートが制御されます。スタジオを起動すると、ログイン画面が表示されます。スタジオを使用するには、以下の特権を有するユーザとしてログインする必要があります。

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

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

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

ユーザがこれらのさまざまな特権を付与される方法は、インスタンスのセキュリティ・レベルによって異なります (以下の一覧で説明します)。

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

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

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

スタジオの認証設定を変更するには:

  1. InterSystems IRIS ランチャーを使用して管理ポータルを開きます。

  2. [システム管理]→[セキュリティ]→[サービス] の順に選択します。

  3. [表示] または [サービス定義編集] セクションで [実行] をクリックします。

  4. [%Service_Bindings] をクリックします。

  5. [許可された認証方法] のチェック・ボックスにチェックを付けるかチェックを外します。

Note:

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

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

スタジオには、カスタム・フック (ドキュメントがロードまたは保存されるとき、必ずインターシステムズ・サーバで実行されるコード) を実装するメカニズムがあります。通常、これらのフックは、ソースやリビジョン管理システムへの接続を実装するのに使用されます。詳細は、"InterSystems IRIS とソース・コントロール・システムの統合" を参照してください。

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

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

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