JP2005228345A - 統合開発環境におけるデザイナとしてのホスティッドアプリケーション - Google Patents

統合開発環境におけるデザイナとしてのホスティッドアプリケーション Download PDF

Info

Publication number
JP2005228345A
JP2005228345A JP2005036830A JP2005036830A JP2005228345A JP 2005228345 A JP2005228345 A JP 2005228345A JP 2005036830 A JP2005036830 A JP 2005036830A JP 2005036830 A JP2005036830 A JP 2005036830A JP 2005228345 A JP2005228345 A JP 2005228345A
Authority
JP
Japan
Prior art keywords
document
development environment
application
designer
unmanaged application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005036830A
Other languages
English (en)
Inventor
Reza Chisaz
チツァズ レーザ
Svetlana Loksh
ロクシュ スベトラーナ
Thomas E Quinn
イー.クイン トーマス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005228345A publication Critical patent/JP2005228345A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Abstract

【課題】開発者がホスティッドアプリケーションの独自機能を利用しながら、IDEによって提供される豊富な機能を活用できるように、アンマネージアプリケーションをホスティッドアプリケーションとして設計環境に統合する構成を提供する。
【解決手段】IDEは、アンマネージアプリケーションからIDEへのインターフェースを提供するアプリケーションアダプタを含むホスティングコンポーネントを含む。IDEはさらに、ユーザがIDEのデザイナ機能にアクセスできるようにするデザイナフレームワークを含む。ホストアダプタは、直接的におよび/または統合インターフェースを介して、デザイナフレームワークとインターフェースをとる。開発者は、IDE機能ばかりでなくアンマネージアプリケーションの独自機能にもアクセスすることができる。開発環境とホスティッドアプリケーションとの高度な統合が提供され、その結果デザイナはIDEと対話を行う。
【選択図】図1

Description

本発明は、ソフトウェア開発環境に関し、より詳細には、アンマネージアプリケーション(unmanaged application)をデザイナ(designer)としてソフトウェア開発環境に容易に組み込めるようにする構成に関する。
ソフトウェア統合開発環境(integrated development environment)は、これまで、アンマネージホスティッドアプリケーション(unmanaged hosted application)の機能を開発ワークスペースに統合することができていない。したがって、操作性の優れたデザイナを記述するには、通常、非常に難しいホスティッドアプリケーションとの統合を考えなければならず、非常に複雑で時間のかかる作業となる。
開発者がホスティッドアプリケーションの独自機能を利用しながら、IDEによって提供される豊富な生産性機能を活用できるように、統一的で使いやすい方式によって、アンマネージアプリケーションを設計環境に統合する構成が必要とされている。
本発明のいくつかの態様の基本的な理解を提供するため、以下に本発明の簡略な要約を提示する。この要約は、本発明の包括的な概要ではない。この要約は、本発明の主要/重要な要素を識別すること、または本発明の範囲を明確に示すことを意図したものではない。後で提示するより詳細な説明の導入として、本発明のいくつかの概念を、簡略化した形式で提示することを目的としているに過ぎない。
本明細書で開示され、特許請求される本発明は、その一態様において、開発者がホスティッドアプリケーションの独自機能を利用しながら、IDEによって提供される豊富な生産性機能を活用できるように、統一的で使いやすい方式によって、アンマネージアプリケーションをホスティッドアプリケーションとして設計環境に統合する構成を含む。これを支援するため、ホスティングコンポーネント(hosting component)を有するIDEが提供され、ホスティングコンポーネントは、アンマネージアプリケーションからIDEへのインターフェースを提供するアプリケーションアダプタ(application adaptor)を含む。IDEは、ユーザがIDEのデザイナ機能にアクセスできるようにするデザイナフレームワーク(designer framework)を含む。ホストアダプタ(host adaptor)は、直接的におよび/または統合インターフェースを介して、デザイナフレームワークとインターフェースをとる。したがって、開発者/ユーザは、IDE機能ばかりでなく、アンマネージアプリケーションの独自機能にもアクセスすることができる。これによって、開発環境とホスティッドアプリケーションとの高度な統合が提供され、統合の結果、デザイナはIDEと対話を行う。
上記および関連する目的を達成するため、以下の説明と添付の図面に関連して、本発明のいくつかの例示的な態様について説明する。しかし、それらの態様は、本発明の原理を利用できる様々な方法のうちの数例を示したに過ぎず、本発明には、そのようなすべての態様およびその均等物が含まれるものとする。本発明のその他の利点および新規な特徴は、以下の本発明の詳細な説明を図面と併せて考察することによって明らかになるであろう。
以降、本発明について図面を参照しながら説明するが、本明細書の全体にわたって、同じ参照番号は同じ要素を参照するために用いられる。以下の説明においては、本発明の完全な理解を提供するため、説明の便宜上、数々の特殊な詳細について述べている。しかし、それらの特殊な詳細を伴わなくても、本発明を実施できることは明らかであろう。別の例では、本発明の説明を分かりやすくするため、周知の構造および装置がブロック図形式で示されている。
本出願で用いる「コンポーネント」および「システム」という語は、コンピュータ関連エンティティ、すなわち、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中ソフトウェアを表すものとする。例えば、コンポーネントは、プロセッサで実行中のプロセス、プロセッサ、オブジェクト、実行可能形式、実行スレッド(thread of execution)、プログラム、および/またはコンピュータとすることができるが、これらに限定されるものではない。説明上、サーバで実行中のアプリケーションもサーバも共に、コンポーネントとすることができる。1つまたは複数のコンポーネントが、実行プロセスおよび/またはスレッド内に存在することができ、コンポーネントは、1つのコンピュータに配置することができ、かつ/または2以上のコンピュータに分散させることもできる。
図1を参照すると、本発明のシステム100が示されている。システム100は、アンマネージアプリケーション104の独自機能を開発環境102に容易に組み込めるようにする高度統合開発環境(IDE)102である。この統合を促進するため、IDE102は、少なくともホストアダプタ108を介して、アンマネージアプリケーション104とインターフェースをとるホスティングコンポーネント106を含む。ホストアダプタ108は、ホスティングコンポーネント106の一部であり、特定のアンマネージアプリケーション104のみを対象とする。すなわち、アンマネージアプリケーション104がワードプロセッサであれば、ホストアダプタは、ワードプロセッサアプリケーションに特有のインターフェース機能を提供する。同様に、表計算アプリケーションは、独自機能をIDE102に容易に組み込めるようにする特有のホストアダプタを有する。
ホスティングコンポーネント106は、ホストアダプタ108とインターフェースをとり、ホスティングコンポーネント106とIDE102の間のインターフェースとして機能するデザイナフレームワーク110も含む。ホストアダプタ108は、統合インターフェース112を介しても、デザイナフレームワークとインターフェースをとり、統合インターフェースは、サードパーティアプリケーション対応のホストアダプタ108が存在するならば、その独自機能もIDE102に組み込むことのできる、サードパーティアプリケーション用のインターフェースとして機能する。
ホスティングコンポーネント106はまた、アプリケーション104の関連文書を円滑にホストできるように、デザイナフレームワーク110とアンマネージアプリケーション104とのインターフェースをとる、文書ホスティングサブコンポーネント(document hosting subcomponent)114を含む。
先に指摘したように、システム100は、複数のアンマネージアプリケーション(アンマネージApp...アンマネージAppと表記)の独自機能を統合することができる。したがって、IDE102は、対応する複数のホスティングコンポーネント(ホスティングコンポーネント...ホスティングコンポーネントと表記)を含む。各ホスティングコンポーネントは、ホストアダプタ、デザイナフレームワーク、統合インターフェース、および文書ホスティングサブコンポーネントを含む。これらのコンポーネントは別個のエンティティとして示されているが、アンマネージアプリケーションの独自機能をIDEに統合するのに適切と考えられる方式で、これらのエンティティを組み合わせることができることに留意されたい。
システム100は、IDEがOLE(オブジェクトのリンクおよび埋め込み)をサポートし、文書ホスティングサブコンポーネント114によってホストされる文書がOLE文書である場合、OLE技術に特に適している。したがって、OLE文書インターフェースをサポートするアプリケーションはどれも、IDE102に統合することができる。しかし、本発明は、そのようなOLE技術に限定されるものではなく、IDEで利用するのに適したその他のあらゆる技術を企図している。
文書ベースの機能豊富なアプリケーション(例えば、ワードプロセッサや表計算アプリケーションなど)のIDE内部におけるホスティングを背後で支える新機軸は、これらのアプリケーションをビジュアルデザイナ(visual designer)として扱う点にある。ホスティッドアプリケーションは十分な機能を備えているが、IDEによって提供される豊富な機能も利用する。IDEにおいてホストする場合、ホスト文書を、様々なツールウィンドウとの対話を介して視覚的に設計することができる。例えば、ツールボックス(Toolbox)を利用して、コントロールおよびコンポーネントをデザイナ上にドラッグし、ドロップすることができる。文書上のコントロールをデザイナ内で選択し、コントロールのプロパティをプロパティ(Property)ウィンドウで編集することができる。別の操作は、例えば、データソースピッカツール(Data Source Picker Tool)ウィンドウを介して、アプリケーションにデータ結合機能(data binding functionality)を実装する。
本発明は、ホスティッドアプリケーションによって提供される独自機能を少しも低下させることなく、ホスティッドアプリケーションをビジュアルデザイナにする。これによって、ホスティッドアプリケーションは実際上、速やかにソリューションおよびアプリケーションを作成できるように、開発者がオブジェクトをドラッグし、ドロップすることができるデザイン面(design surface)になる。さらに、開示の手法は、IDEにおいてアプリケーションを開発する上で、使い慣れた統一のとれた開発モデルを提供する。さらに、本発明の高度IDEは、概念の数を最小に維持しながら、設計パラダイムの数も最小に抑える。
次に図2を参照すると、アプリケーション独自の機能をIDEに統合するプロセスのフローチャートが示されている。説明を簡潔にするため、例えば、フローチャート形式で本明細書に示される1つまたは複数の方法は、一連の動作として示され、説明されているが、本発明は、そのような動作の順序によって限定されるものではなく、いくつかの動作は、本発明に従って、異なる順序で生じてもよく、かつ/または本明細書に示され、説明されるその他の動作と同時に生じてもよいことを理解し、認識されたい。例えば、ある方法は代替的に、状態図などによって、一連の相互に関係する状態またはイベントとして表せることは、当業者であれば理解され、認識されよう。さらに、本発明による方法を実施するのに、説明されるすべての動作が必ずしも必要でないこともある。
200において、IDEが提供される。202において、アンマネージアプリケーションを円滑にホストできるように、IDE内でホスティングコンポーネントが提供される。204において、デザイナフレームワークが提供され、ホスティングコンポーネントとのインターフェースがとられる。206において、アンマネージアプリケーション対応のホストアダプタが、ホスティングコンポーネントの一部として提供される。208において、ホストアダプタは、直接的におよびサードパーティアプリケーション用の統合インターフェースを介して間接的に、デザイナフレームワークとインターフェースをとる。210において、文書ホスティングサブコンポーネントが提供され、デザイナフレームワークおよびアンマネージアプリケーションとインターフェースがとられる。212において、ホスティッド文書(hosted document)は、デザイナ機能およびアンマネージアプリケーションの独自機能の両方を用いて操作することができる。その後、プロセスは停止ブロックに到達する。
次に図3を参照すると、本発明によるOLE文書開発のプロセスのフローチャートが示されている。この特有のプロセスの実施においては、IDE環境は、OLE技術をサポートする。300において、開発者がIDE環境を開く。302において、アンマネージアプリケーションが選択される。304において、新規文書が開かれるか、または既存文書が編集のために開かれる。306において、文書が処理される場所に基づいて様々なレベルの許可または制限を設定するため、文書に対してセキュリティ設定を施すことができる。308において、開発者/ユーザは、デザイナフレームワークおよびホスティッドアプリケーションの独自機能の一方または両方の機能を用いて、文書および/または文書内容を操作する。その後、プロセスは停止ブロックに到達する。
ホストアダプタ
ホスティッドアプリケーションがデザイナとして開かれた場合、ホスティッドメニュー(hosted menu)は、IDEのメニューとマージされる。ホスティッドアプリケーションにフォーカスが当てられているかどうかに応じて、一部のメニュー項目は使用可能となり、その他のメニュー項目は使用不能となる。すなわち、IDEにフォーカスが当てられている場合、ホスティッドアプリケーション内の一部のメニュー項目が使用不能となる。反対に、ホスティッドアプリケーションにフォーカスが当てられている場合、IDEの一部のメニュー項目が使用不能となる。これは、ホストアダプタの機能の1つに過ぎない。
次に図4を参照すると、本発明による統合機能を示すサンプルウィンドウ400が示されている。ウィンドウ400は、(例えば、EXCEL商標の表計算アプリケーションに関する)ホスティッド表計算アプリケーションを表している。ウィンドウ400には、IDEのIDEメニュー404とマージされたホストメニュー402、View Codeコマンド408が追加されたホストコンテキストメニュー(host context menu)406、プロジェクト構造412を示すSolution Explorer410、選択された表計算のプロパティ416を示すPropertyウィンドウ414、およびホスティッド文書422に追加できるコントロールおよびコンポーネント420のリストを有するToolbox418が示されている。
Propertyウィンドウは、分離コード(code−behind)プロジェクト項目とその他のデザイナプロジェクト項目とのプロパティを表示する。ホスティッドアプリケーションは、そのプロパティをPropertyウィンドウに加える。ホスティッドアプリケーションは、プロパティをPropertyウィンドウに加えるかどうかを選択することができる。ホスティッドアプリケーションは、プロパティのリスト(例えば、プロパティの名前やプロパティの型)を提供する。
埋め込みオブジェクトまたはリンクオブジェクトを含む文書はどれも、IDE内で開くことができる。埋め込みオブジェクトまたはリンクオブジェクトを選択することによって、メニューおよびツールバーが選択オブジェクト用に変更される。
Toolオプションの第1のラジオボタンが選択された場合、アダプタはすべてのアクセラレータを捕捉し、動的に生成されるIDE内のショートカット(またはキーマッピング)のテーブルにアクセラレータを転送する。処理できないものは、IDEテーブルによってホスティッドアプリケーションに差し戻され、ホスティッドアプリケーションで処理される。
デザイナ上で右クリックを行うと、標準の表計算コンテキストメニューが出現する。コンテキストメニューの第1コマンドに、メニューコマンド「View Code」が追加されている。「View Code」コマンドをリストの先頭に配置することによって、その他のプログラムのコンテキストメニューとの統一が図られる。表計算セルからView Codeコマンドを選択すると、開発者は、当該ワークシートのコードエディタに導かれる。カーソルは、以前設定されていた位置に設定される。これは、デフォルトでは、カーソルはエディタの先頭に設定されることを意味する。View Control上で右クリックを行うと、当該View Control用のコンテキストメニューが表示される。View ControlからView Codeコマンドを選択すると、開発者は、IDEのコードエディタに導かれ、カーソルは、以前設定されていた位置に設定される。
ワークシートタブ上で右クリックを行うと、表計算アプリケーションのコンテキストメニューが出現する。コンテキストメニューは、View Codeコマンドを含んでおり、View Codeコマンドは選択されると、IDEコードエディタ内の当該表計算シート用の分離コードファイルにユーザを導く。このView Codeコマンドによって導かれるコードエディタでのカーソル位置付け動作は、デザイナのView Codeコマンドの場合のカーソル位置付け動作と同じである。
次に図5を参照すると、本発明の統合カスケードメニュー(integrated and cascading menu)機能を示すウィンドウ500が示されている。(サーバアプリケーションとしても知られる)ホスティッドアプリケーションをIDEに統合することによって、名前が類似するメニュー項目間で名前の衝突が発生することがある。その場合、IDEとホスティッドアプリケーションとの統合は、少なくともViewメニュー項目が衝突するようなメニュー衝突(menu conflict)を引き起こす。IDEは、IDEの既存Viewメニュー502を修正して、その中に(Server View Commandと表記されたコマンドを介してアクセス可能な)ホスティッドアプリケーションのメニュー505が含まれるようにする。IDEは、IDEのViewメニュー502内でサーバのViewメニューオプションの所在を明確に示す文字列をユーザに提示する。Server View Commandメニューオプションに付された展開矢印(expansion arrow)が、カスケードサーバサブメニュー(cascaded server submenu)項目へのアクセスを容易にする。
例示的なシナリオ
ユーザは、IDE内で新規の表計算プロジェクトを生成する。表計算関連プロジェクト項目は、ソリューションエクスプローラおよび表計算ワークブック内で生成され、シートがデザイナとして文書ウィンドウ内に表示される。表計算文書はIDE内で設計される。IDEとホスティッドアプリケーションのメニューは、開示の構成によってマージされ、ツールバーは、デザイナの表計算アプリケーション内で利用することができるので、生産性機能とIDE機能のすべてが、1つの環境内で提供される。表計算シートは、マネージコード(managed code)を用いて表計算シートをカスタマイズするのに、IDEツールウィンドウおよびエディタを利用することができるばかりでなく、表計算アプリケーションのすべての機能を利用して編集および修正することができる。ユーザは、ツールボックスからマネージボタン(managed button)を文書上にドラッグし、ドロップすることができる。ボタンを選択し、そのプロパティをプロパティグリッドを用いて修正することができる。カスタマイズは、ボタン上でダブルクリックを行い、コードビュー(Code View)に入ることによって、自動生成イベントハンドラ内で行うことができる。
デザイナのモード
ホスティッドアプリケーションは、設計動作とホスティッドアプリケーション内の実行時動作とを区別する、設計モード(Design mode)と実行時モード(Runtime mode)で動作する。ユーザが各モードで実行できる動作の組は、アプリケーション毎に異なり、IDE内にいるかどうかに関わらず、ホスティッドアプリケーションに依存する。一実施においては、ホスティッドアプリケーションは設計時モードにあり、IDE内でホストされるときは設計時モードに留まる。設計時モードにあるときには、コントロールをデザイナ上にドラッグすること、コントロールを選択してそのプロパティを調べ、編集すること、およびコントロール上でダブルクリックを行ってコードビューに入ることが容易に行える。アンマネージアプリケーション用のホストアダプタは、文書がIDE内にある場合、文書を設計モードに入れ、入ったままにさせる。
もう1つのモードは、「実行」モードである。実行中またはデバッグ中のアプリケーションは、「実行」モードにある。このモードでは、アプリケーションの独自機能だけが利用できる。デバッグが開始されると、コードエディタがアクティブデザイナになり、すべてのアクセラレータはIDEによって処理される。
文書のビュー
IDEでホストされる文書は、少なくとも2つのビュー、すなわちデザインビューとコードビューを有することができる。一般に、デザインビューは、アプリケーションの設計/通常ビューである。デザインビューは、OLE文書技術をサポートする文書についても使用可能である。これらの文書上で作業を行う際、ユーザは、オリジナルのホスティッドアプリケーションを操作するのと実質的に同じ方法で操作することができる。これは、開発者が、テンプレート/文書を設計でき、文書を作成および修正でき、また書式設定、図表化、およびスキーママッピングなどのホスト固有の機能を使用できることを意味する。このような動作は、OLE技術を活用し、IDEでホスティッドアプリケーションをホストすることによって達成される。
デザインビューは、ホスティッドアプリケーションによってサポートされる形式で、新規および既存文書を表示することができる。例えば、デザイナは、バイナリ形式およびXML形式で文書を処理することができる。これは、文書をIDEに完全に統合して、コントロールのデザイナ上へのドラッグアンドドロップ、コンテキストの選択、およびコード記述のためのコントロール上でのダブルクリックなどの操作を可能にする、OLE文書技術を活用することによって達成される。デザイナは、書式設定、スタイル、スキーママップ、および埋め込みオブジェクトを含むが、これらに限定されない、文書の全内容を表示することができる。
IDE内では、ホスティッドアプリケーションは「設計モード」にある。IDE内でホストされるアプリケーションは、そのすべての機能が有効である。すなわち、IDE内でソリューションを開発する際、ユーザは、ホスティッドアプリケーションのメニュー、コマンド、コンテキストメニュー、およびアクセラレータをすべて利用することができる。同時に、ホスト独自機能に追加される機能および操作性も存在する。本明細書で指摘するように、その例として、IDEツールウィンドウとの対話、デザイナ(文書)上で右クリックを行い、「Code View」コマンドを選択すると、分離コードファイル(code behind file)に導かれる機能、およびファンクションキー(例えば、F5)を選択すると、デバッグが開始される機能などが挙げられる。これらの機能は、開発者がIDE内において体験する操作性を著しく向上させ、アプリケーションを設計する際、開発者を強力に支援する。
ホスティッドアプリケーション内でのユーザ操作性が、IDEでの操作性と異なり得る場合が存在する。例えば、「Tool>Macro」メニューオプションが利用可能でない場合、一定のキーの組合せを用いるなどして、異なる動作で代用することができる(例えば、Alt+F11が選択されたら、マクロ環境をロードするなど)。ホスティッドアプリケーションの動作が、IDE外部にあるときの動作と異なるような特殊なケースは、ホストアダプタに関連づけられる。ホストアダプタは、そのようなホスト機能を停止させることによって、またはその動作を変更することによって、そうした動作上の差異に対処する。これを行う目的は、開発者が体験する操作性を向上させ、ホスティッドアプリケーションと開発環境の統合をより高度なものにすることにある。
アプリケーション文書が関連する複数の「サブ文書」をもつ場合(例えば、ワークブックに関連づけられた複数のワークシートなど)、各「サブ文書」に関連づけられたコードビュー(すなわち、各ワークシートに関連づけられた分離コードファイル)が存在することに留意されたい。IDE内でホストされ、カスタマイズされる文書は、関連するコードビューを有する。
コードビューは、文書に関連づけられた分離コードファイルを表示する。デザイナによって提示される文書に関連づけられたコードウィンドウは、複数の方法で起動することができる。1つの方法は、ソリューションエクスプローラ上の「View Code」ボタンをクリックするか、またはソリューションエクスプローラ内でデザイナまたは対応するコードプロジェクト項目が選択されているときに、VS Viewメニューのメニュー項目「Code View」を選択するものである。ソリューションエクスプローラ内でデザイナが選択されている場合、現在アクティブなサブ文書に対応するコードウィンドウが開かれる。もう1つの方法は、デザイナのコンテキストメニューから「View Code」メニューを選択するものである(カーソルはマップ要素(mapped element)上にないことに留意されたい)。また別の方法は、ソリューションエクスプローラ内のプロジェクト項目のコンテキストメニューから「View Code」を選択するものである。
上記のすべての動作において、コードウィンドウは、カーソルがウィンドウ先頭に設定された状態でロードされる。デザイナ内のコントロール上でダブルクリックを行うことによってコードウィンドウが出現した場合。次に、コード生成(すなわち、ハンドラ定義)およびコードナビゲーションが行われる。この場合、カーソルは、デフォルトのコントロールイベントハンドラ内に設定される。ハンドラがまだ存在していない場合、ハンドラが生成される。ホスティッドアプリケーションは、どのハンドラを生成したらよいかを知るのに十分なデータをIDEに提供する。デフォルトのイベントハンドラがすでに生成されている場合、コントロール上でダブルクリックを行うことによって、ユーザはコードエディタに導かれ、カーソルがデフォルトイベントハンドラ内に位置付けられる。
ビューコントロール
ビューコントロール(view control)は、データ結合をサポートするために集められたオブジェクトであり、ビューコントロールによって起動されたイベントに応答するのに開発者が利用できるイベントモデルを提供する。ビューコントロールの見やすさおよび見つけやすさを向上させるため、ビューコントロールは、ユーザがアプリケーションデザイナ上にドラッグし、ドロップできる「コントロール」として、ツールボックス内に配置される。以下の説明は、文書処理アプリケーションにおいて、ビューコントロールの発見、作成、削除、およびビューコントロールを用いた作業をサポートする、設計時ツールについてのものである。しかし、表計算アプリケーションも関連するビューコントロールを有することは理解されよう。
例えば、ビューコントロールの作成およびビューコントロールを用いた作業に利用できる、文書処理アプリケーション(および表計算アプリケーション)独自のサポートには、いくつかのレベルが存在する。操作性を向上させるため、追加のツールサポートが、ビューコントロールに関連して追加され、ビューコントロールを用いて作業する際に開発者が体験する全体的な操作性を向上させるばかりでなく、この機能の見やすさおよび見つけやすさも向上させる。開発者が慣れ親しむモデルを提供するため、ビューコントロール関連の操作性は、マネージコントロールを用いた作業をまねており、例えば、選択コンテキストおよびプロパティウィンドウがサポートされ、ビューコントロールはツールボックスから追加され、ビューコントロール上でダブルクリックを行うことで、コードビューに導かれる。
主な機能には、ツールボックスからのビューコントロールの通常のドラッグアンドドロップのサポート、ツールボックスを介して追加されたビューコントロールへのデフォルト名の付与、ビューコントロールの選択コンテキスト(例えば、デザイナ内でビューコントロールを選択すると、プロパティウィンドウ内にプロパティが表示され、またプロパティグリッドのドロップダウンでビューコントロールを選択すると、デザイナ内でそのビューコントロールが選択されるなど)、ビューコントロール上でのダブルクリックによるコードエディタへの誘導、デフォルトのイベントハンドラの生成、分離コードとデザイナに追加されるビューコントロールとの動的同期、プロパティウィンドウを介したビューコントロール名の変更のサポート、コードエディタにおけるビューコントロール用のイベントドロップダウンのサポートなどが含まれるが、これらに限定されるものではない。その他の機能として、(ビューコントロールを追加するため、ツールボックス内で「Enter」および「ダブルクリック」をサポートする)ビューコントロールのツールボックスアクセス可能性(Toolbox accessibility)、ブックマークの表示、重複ブックマークの処理、ツールボックス内でのビューコントロール項目用のファンクションキー(F1)のサポート、(ビューコントロールを追加するため、Ctrl+CおよびCtrl+Vをサポートする)ツールボックスアクセス可能性、ブックマークの削除のサポート、(混乱を緩和するための)ビューコントロールの通常ブックマークへの降格オプションのユーザへの提供、ビューコントロール間のタブ移動、および図形用ツールボックスのサポートなどを挙げることができる。ワードプロセッサでは、1文字から複数段落にわたって機能するブックマークビューコントロールがサポートされる。
IDE内にある文書にスキーマを適用するため、開発者は、ワードプロセッサのXML構造タスクペイン(XML Structure task pane)を使用することができる。マッピングプロセスが、マップ要素毎にXMLノードビューコントロール(XML node view control)を生成する。XMLノードビューコントロールのデフォルトの名前は、スキーママップ要素と同じとする。スキーママップビューコントロール(schema mapped view control)の変数の一意性を確保するため、衝突が発生した場合、名前にXが付加される(ただし、Xは、さらなる衝突が発生するたびに加算される整数とする)。
表計算アプリケーションのビューコントロールに関しては、名前付き範囲(Named−Range)コントロールとリストオブジェクト(ListObject)コントロールが提供される。名前付き範囲は、範囲に簡単に名前を付けると共に、各名前付き範囲が一意に命名されるように保証する名前テーブルを表計算シート毎に維持するメカニズムである。リストオブジェクトは、表計算シート範囲を拡張したものであり、高度なデータ操作性を提供するように設計されており、適用されるデータセットに合わせて自動的に大きくなったり/小さくなったりする機能を含む。リストオブジェクトは、リスト行(ListRow)およびリスト列(ListColumn)として表示される行と列を含む。
コンポーネントトレイ
コンポーネントトレイ(Component Tray)は、アプリケーションをホストするときに、不可視コンポーネントを表示または可視化する容易な方法を提供する。データアダプタおよび関連コンポーネントなど、実行時には可視化されない開発用コンポーネントが存在する。コンポーネントトレイは、設計時に不可視コンポーネントを視覚的に認識し、操作するためのメカニズムを提供する。開発者は、こうしたコンポーネントをドラッグおよびドロップし、プロパティを編集し、コンポーネントを視覚化することができる。コンポーネントをビューに追加する1つの方法は、ツールボックスからコンポーネントをドラッグし、それを文書上にドロップし、そのプロパティを設定したり削除したりするものである。不可視コンポーネントは、文書を支援するクラスの命名されたクラスメンバインスタンスとなる。
トレイは、不可視コンポーネントが文書上に存在する場合に存在する。不可視コンポーネントが存在しない場合、トレイは完全に消滅する。不可視コンポーネントをビューのメイン部分にドラッグすることによって、ユーザが最初の不可視コンポーネントをビューに挿入すると、トレイが開かれ、不可視コンポーネントはトレイに移動する。以降、不可視コンポーネントは、ビジュアルフォーム上にドロップすることもでき、またはトレイ上に直接ドロップすることもできる。
可視項目をコンポーネントトレイ上にドラッグした場合、ドロップアイコンは表示されず、ドロップ操作は無視される。最後の不可視コンポーネントがフォームから削除されると、トレイは消滅し、選択対象がデザイナに戻る。トレイの背景色は、システムウィンドウの背景色と同じである。コンポーネントは、トレイの現在の幅に合わせて自動的に配列されるので、水平スクロールは必要ない。垂直スクロールバーは、必要に応じてトレイ内に現れる。トレイの枠内に表示可能なコンポーネントよりも多くのコンポーネントが追加された場合、垂直スクロールバーがトレイに追加される。コンポーネントがコンポーネントトレイの左枠または右枠を超えて配置された場合、水平スクロールバーが追加される。コンポーネントトレイに変更があっても、文書の上が乱雑になることはない。
開示された構成のいくつかの機能について復習すると、IDEツールボックスウィンドウを利用することで、マネージコントロールのデザイナ面へのドラッグおよびドロップ、または描画が可能になる。データソースウィンドウを利用することで、マネージデータコンポーネントおよびコントロールのデザイナ面へのドラッグおよびドロップが可能になる。IDEプロパティウィンドウを利用することで、文書および文書上のコンポーネントのプロパティ操作が可能になる。IDEコンポーネントトレイウィンドウは、例えば、文書上にドロップされたデータアダプタやデータコネクタなどの不可視エレメントをホストする。デザイナを利用することで、開発者は、文書および文書上のコンポーネントから分離されたマネージコードを記述することができる。ツール/オプション(Tools/Options)ダイアログは、様々な範囲のIDE機能に特別なオプションを提供する。デザイナに様々な方法で動作できる柔軟性を与えることができるよう、デザイナホスティッドアプリケーション毎に専用ページを設けることができる。専用ページは、IDE内でアンマネージアプリケーションがデザイナになった場合、ユーザが呼び出されることを望む選好(preference)を含む。
文書ベースのデザイナの場合、ユーザ操作性を向上させるため、IDE内でのアプリケーションの動作をカスタマイズする追加の態様が存在する。そのような機能の一例として、文書コンテキストメニューの変更がある。さらに、文書が「設計され」、プログラムできることを反映して、「View Code」コマンドが、いくつかのメニューに追加される。さらに、設計環境であることを強調するため、ホスティッドアプリケーション用に専用の「デザイナ」ツールバーが追加される。
図6を参照すると、開示の構成を実行するように動作可能なコンピュータのブロック図が示されている。本発明の様々な態様のためのさらなるコンテキストを提供するため、図6および以下の説明は、本発明の様々な態様を実施できる適切なコンピューティング環境600についての簡潔で概括的な説明を提供することを意図している。上では本発明を、1つまたは複数のコンピュータで実行可能なコンピュータ実行可能命令という一般的なコンテキストにおいて説明したが、他のプログラムモジュールと組み合わせても、かつ/またはハードウェアとソフトウェアの組合せとしても本発明を実施できることは、当業者であれば理解されよう。
一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造などを含み、これらは特定のタスクを実行したり、特定の抽象データタイプを実装したりする。さらに、各々が1つまたは複数の関連装置に動作可能に結合され得る、シングルプロセッサまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルドコンピューティング装置、マイクロプロセッサベースまたはプログラム可能家電機器、その他を始めとする、他のコンピュータシステム構成を用いて、本発明の方法を実施できることも、当業者であれば理解されよう。
例示した本発明の態様は、特定のタスクが通信ネットワークを介して接続されたリモート処理装置によって実行される、分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルメモリ記憶装置とリモートメモリ記憶装置の両方に配置することができる。
コンピュータは一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータによってアクセス可能などのような利用可能媒体ともすることができ、揮発性および不揮発性媒体、着脱可能および着脱不能媒体を共に含む。例えば、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を含むことができるが、これらに限定されるものではない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータといった情報を記憶するためのあらゆる方法または技術で実施される、揮発性および不揮発性媒体、着脱可能および着脱不能媒体を共に含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくはその他のメモリ技術、CD−ROM、DVD(デジタルビデオディスク)、もしくはその他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶、もしくはその他の磁気記憶装置、または記憶したい情報を記憶するのに利用でき、コンピュータによってアクセスできる、その他のあらゆる媒体を含むが、これらに限定されるものではない。
通信媒体は一般に、搬送波またはその他の移送機構などの変調データ信号によって、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを表すものであり、あらゆる情報送達媒体を含む。「変調データ信号」という語は、信号中に情報を符号化するための方式によって設定または変更された1つまたは複数の信号特性をもつ信号を意味する。例えば、通信媒体は、有線ネットワークまたは直接線接続などの有線媒体、ならびに音響、RF、赤外線、およびその他の無線媒体などの無線媒体を含むが、これらに限定されるものではない。上記の媒体のどのような組合せも、コンピュータ可読媒体の範囲に含まれるものとする。
図6を再び参照すると、コンピュータ602を含む、本発明の様々な態様を実施するための例示的な環境600が示されており、コンピュータ602は、プロセッシングユニット604、システムメモリ606、およびシステムバス608を含む。システムバス608は、システムメモリ606を含むがそれだけに限定されないシステムコンポーネントを、プロセッシングユニット604に結合する。プロセッシングユニット604は、様々な市販のプロセッサのいずれとすることもできる。プロセッシングユニット604として、デュアルマイクロプロセッサおよびその他のマルチプロセッサ構成も利用することができる。
システムバス608は、様々な市販のバス構成のいずれかを用いる(メモリコントローラを備えるまたは備えない)メモリバス、周辺バス、およびローカルバスにさらに相互接続可能な、複数のタイプのバス構造のいずれとすることもできる。システムメモリ606は、ROM(読み取り専用メモリ)610およびRAM(ランダムアクセスメモリ)612を含む。BIOS(基本入出力システム)は、ROM、EPROM、EEPROMなどの不揮発性メモリ610に記憶され、起動中などにコンピュータ602の要素間の情報伝送を助ける基本ルーチンを含む。RAM612は、データをキャッシュするためのスタティックRAMなど、高速RAMを含むこともできる。
コンピュータ602はさらに、内部ハードディスクドライブ(HDD)614(例えば、EIDE、SATA)、(例えば、着脱可能ディスケット618との間で読み書きするための)磁気フロッピディスクドライブ(FDD)616、および(例えば、CD−ROMディスク622を読み、またはDVDなどのその他の大容量光媒体との間で読み書きするための)光ディスクドライブ620を含み、内部ハードディスクドライブ614は、適切な筐体(図示せず)に収容し外付けとして利用するように構成することもできる。ハードディスクドライブ614、磁気ディスクドライブ616、光ディスクドライブ620はそれぞれ、ハードディスクドライブインターフェース624、磁気ディスクドライブインターフェース626、光ドライブインターフェース628によって、システムバス608に接続することができる。外部ドライブ実装用のインターフェース624は、USB(汎用シリアルバス)とIEEE1394インターフェース技術の少なくとも一方または両方を含む。
ドライブおよびそれに関連するコンピュータ可読媒体は、データ、データ構造、およびコンピュータ実行可能命令などの不揮発性記憶を提供する。コンピュータ602のために、ドライブおよび媒体は、適切なデジタルフォーマットによるあらゆるデータの記憶を可能にする。上述のコンピュータ可読媒体の説明では、HDD、着脱可能磁気ディスケット、およびCDまたはDVDなどの着脱可能光媒体について言及しているが、ジップドライブ(zip drive)、磁気カセット、フラッシュメモリカード、およびカートリッジなど、コンピュータによって可読なその他のタイプの媒体も、例示的な動作環境で利用することができること、またそのような媒体はどれも、本発明の方法を実行するためのコンピュータ実行可能命令を含むことができることは、当業者であれば理解されよう。
オペレーティングシステム630、1つまたは複数のアプリケーションプログラム632、その他のプログラムモジュール634、およびプログラムデータ636を始めとする、複数のプログラムモジュールは、ドライブおよびRAM612に格納することができる。オペレーティングシステム、アプリケーション、モジュール、および/またはデータの全部または一部は、RAM612にキャッシュすることもできる。
様々な市販のオペレーティングシステムを用いて、またはオペレーティングシステムを組み合わせて、本発明を実施できることは理解されよう。
ユーザは、1つまたは複数の有線/無線入力装置、例えば、キーボード638、およびマウス640などのポインティングデバイスを介して、コンピュータ602にコマンドおよび情報を入力することができる。その他の入力装置(図示せず)として、マイクロホン、IRリモコン、ジョイスティック、ゲームパッド、スタイラスペン、またはタッチスクリーンなどを挙げることができる。上記およびその他の入力装置は、システムバス608に結合された入力装置インターフェース642を介して、しばしばプロセッシングユニット604に接続されるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインターネットなど、その他のインターフェースによって接続することもできる。
モニタ644またはその他のタイプのディスプレイ装置も、ビデオアダプタ646などのインターフェースを介してシステムバス608に接続される。モニタ644に加え、コンピュータは一般に、スピーカやプリンタなど、その他の周辺出力装置(図示せず)を含む。
コンピュータ602は、リモートコンピュータ648など1つまたは複数のリモートコンピュータへの、有線通信および/または無線通信を介した論理接続を用いて、ネットワーク環境で動作することができる。リモートコンピュータ648は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽機器、ピア装置、またはその他の共通ネットワークノードとすることができ、一般に、コンピュータ602に関連して説明した要素の多くまたはすべてを含むことができるが、図を簡潔にするため、メモリ記憶装置650だけが示されている。図示された論理接続は、LAN(ローカルエリアネットワーク)652、および/またはより広域のネットワーク、例えば、WAN(ワイドエリアネットワーク)654への有線/無線接続性を含む。そのようなLANおよびWANネットワーク環境は、オフィスや会社で一般的であり、インターネットなどのグローバル通信ネットワークに接続できる、イントラネットなどの企業規模のコンピュータネットワークの実現を容易にする。
LANネットワーク環境で使用する場合、コンピュータ602は、有線および/または無線通信ネットワークインターフェースまたはアダプタ656を介して、ローカルネットワーク652に接続される。アダプタ656は、LAN652への有線通信または無線通信を円滑に行えるようにし、LAN652は、無線アダプタ656と通信を行うためにLAN上に設置される無線アクセスポイントを含むこともできる。WANネットワーク環境で使用する場合、コンピュータ602は、モデム658を含むことができ、またはLAN上の通信サーバに接続され、またはインターネットなどのWAN654を介して通信を確立するためのその他の手段を有する。モデム658は内蔵とも外付けとも有線装置とも無線装置ともすることができ、シリアルポートインターフェース642を介して、システムバス608に接続することができる。ネットワーク環境では、コンピュータ602に関連して示したプログラムモジュールまたはその部分は、リモートメモリ/記憶装置650に格納することができる。図示したネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立するために、その他の手段も利用できることは理解されよう。
コンピュータ602は、無線通信に動作可能に設置されるあらゆる無線装置またはエンティティ、例えば、プリンタ、スキャナ、デスクトップおよび/またはポータブルコンピュータ、携帯情報端末、通信衛星、無線検知可能タグが関連づけられるあらゆる機器および場所(例えば、キオスク、ニューススタンド、休憩室)、電話などと通信できるように動作可能である。これには、少なくともWi−FiおよびBluetooth(商標)無線技術が関与する。したがって、通信は、従来のネットワークのように事前定義された構造とすることも、または単に少なくとも2つの装置間でのその場限りの通信とすることもできる。
Wi−Fi、すなわちワイヤレスフィデリティ(Wireless Fidelity)は、自宅のソファから、ホテルルームのベッドから、または職場の会議室から、有線を使用しないでインターネットへの接続を可能にする。Wi−Fiは、基地局の範囲内であれば屋内または屋外のどこからでも、コンピュータなどの装置がデータを送受信できるようにする、セル電話のような無線技術である。Wi−Fiネットワークは、安全で信頼性のある高速の無線接続性を提供するため、IEEE802.11(a、b、gなど)と呼ばれる無線技術を利用する。Wi−Fiネットワークは、コンピュータを他のコンピュータ、インターネット、および(IEEE802.3、すなわちイーサネット(登録商標)を用いる)有線ネットワークに接続するのに利用することができる。Wi−Fiネットワークは、無認可の2.4GHzおよび5GHzの無線帯域で動作し、データ速度は11Mbps(802.11b)または54Mbps(802.11a)であり、両方の帯域(デュアル帯域)に対応する製品も存在する。これによって、Wi−Fiネットワークは、数多くのオフィスで利用されている基本的な10BaseT有線イーサネット(登録商標)と同等の実用上の性能を提供することができる。
次に図7を参照すると、本発明による例示的なコンピューティング環境700のブロック図が示されている。システム700は、1つまたは複数のクライアント702を含む。クライアント702は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティング装置)とすることができる。クライアント702は、例えば、本発明を利用することによって、クッキーおよび/または関連コンテキスト情報を保管することができる。システム700は、1つまたは複数のサーバ704も含む。サーバ704も、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティング装置)とすることができる。サーバ704は、例えば、本発明を利用することによって、変換を実行するスレッドを保管することができる。クライアント702とサーバ704の間で可能な通信の1つは、2以上のコンピュータプロセス間で伝送されるように適合させたデータパケットの形態で行うことができる。データパケットは、例えば、クッキーおよび/または関連コンテキスト情報を含むことができる。システム700は、クライアント702とサーバ704の間で容易に通信を行えるようにするのに利用できる、通信フレームワーク706(例えば、インターネットなどのグローバル通信ネットワーク)を含む。
通信は、有線技術(光ファイバを含む)および/または無線技術によって容易に行うことができる。クライアント702は、クライアント702側に情報(例えば、クッキーおよび/または関連コンテキスト情報)を保存するのに利用できる1つまたは複数のクライアントデータ記憶708に動作可能に接続される。同様に、サーバ704は、サーバ704側に情報を保存するのに利用できる1つまたは複数のサーバデータ記憶710に動作可能に接続される。
上述の内容には、本発明の例が含まれている。もちろん、本発明を説明するために、コンポーネントまたは方法の考え得るあらゆる組合せを説明することはできないが、本発明に関して多くのさらなる組合せおよび順列が可能であることは、当業者であれば理解されよう。したがって、本発明は、添付の特許請求の範囲の主旨および範囲に含まれる、そのような代替、修正、および変形を包含することを意図している。さらに、詳細な説明または特許請求の範囲において「含む(includes)」という語が用いられる場合、この語は、「含む(comprising)」という語が、特許請求の範囲において接続語(transitional word)として用いられる際になされる解釈と同様の意味において包含的であることが意図されている。
本発明のシステムを示した図である。 アプリケーション独自の機能をIDEに統合するプロセスのフローチャートである。 本発明によるOLE文書開発のプロセスのフローチャートである。 本発明による統合機能を示したサンプルウィンドウである。 本発明による統合カスケードメニュー機能を示したウィンドウである。 開示の構成を実行するように動作可能なコンピュータのブロック図である。 本発明による例示的なコンピューティング環境の概略ブロック図である。

Claims (34)

  1. ソフトウェアの開発環境を使いやすくするシステムであって、
    文書を容易に処理できるようにするアンマネージアプリケーションと、
    前記開発環境内で前記アンマネージアプリケーションがデザイナとして機能するように、前記アンマネージアプリケーションとのインターフェースをとるホスティングコンポーネントとを含むことを特徴とするシステム。
  2. 前記ホスティングコンポーネントは、OLE技術をサポートすることを特徴とする請求項1に記載のシステム。
  3. 前記アンマネージアプリケーションは、文書処理アプリケーションと表計算アプリケーションの少なくとも一方を含むことを特徴とする請求項1に記載のシステム。
  4. サードパーティのアンマネージアプリケーションをデザイナとして前記開発環境に容易に統合できるようにする統合インターフェースをさらに含むことを特徴とする請求項1に記載のシステム。
  5. 前記開発環境は、統合開発環境であることを特徴とする請求項1に記載のシステム。
  6. 前記アンマネージアプリケーションとのインターフェースをとるホストアダプタであって、前記アンマネージアプリケーションを前記開発環境に容易に統合できるようにする特定アプリケーション向けのホストアダプタをさらに含むことを特徴とする請求項1に記載のシステム。
  7. 前記開発環境で操作できる文書を容易にホストできるようにする文書ホスティングサブコンポーネントをさらに含むことを特徴とする請求項1に記載のシステム。
  8. 前記文書は、前記アンマネージアプリケーションと前記開発環境の少なくとも一方を用いて操作できることを特徴とする請求項1に記載のシステム。
  9. 前記文書は、新規文書と既存文書の一方であることを特徴とする請求項1に記載のシステム。
  10. 前記ホスティングコンポーネントと前記開発環境とが容易にインターフェースをとれるようにするデザイナフレームワークをさらに含むことを特徴とする請求項1に記載のシステム。
  11. 複数の異なるアンマネージアプリケーションを容易にホストできるようにすることを特徴とする請求項1に記載のシステム。
  12. 請求項1に記載のシステムを実施するためのコンピュータ実行可能命令を格納することを特徴とするコンピュータ可読媒体。
  13. 請求項1に記載のシステムを利用することを特徴とするコンピュータ。
  14. IDEにおいて不可視データを容易に提示できるようにするトレイコンポーネントをさらに含むことを特徴とする請求項1に記載のシステム。
  15. IDEを使いやすくするシステムであって、
    文書を容易に処理できるようにするアンマネージアプリケーションと、
    前記IDE内で前記アンマネージアプリケーションがデザイナとして機能するように、前記アンマネージアプリケーションとのインターフェースをとるホスティングコンポーネントとを含み、前記ホスティングコンポーネントが、
    サードパーティのアンマネージアプリケーションをデザイナとして前記開発環境に容易に統合できるようにする統合インターフェースと、
    前記アンマネージアプリケーションとのインターフェースをとるホストアダプタであって、前記アンマネージアプリケーションを前記開発環境に容易に統合できるようにする特定アプリケーション向けのホストアダプタと、
    前記開発環境で操作できる文書を容易にホストできるようにする文書ホスティングサブコンポーネントとをさらに含むことを特徴とするシステム。
  16. 前記ホスティングコンポーネントは、前記ホスティングコンポーネントと前記開発環境とが容易にインターフェースをとれるようにするデザイナフレームワークをさらに含むことを特徴とする請求項15に記載のシステム。
  17. 前記アンマネージアプリケーションの独自機能が、前記IDE内で利用可能であることを特徴とする請求項15に記載のシステム。
  18. 前記文書へのコントロールの追加、および前記コントロールのプロパティの編集を容易に行えるようにすることを特徴とする請求項15に記載のシステム。
  19. 前記アンマネージアプリケーションと前記IDEのメニューのマージを容易に行えるようにすることを特徴とする請求項15に記載のシステム。
  20. 前記文書は、埋め込みオブジェクトとリンクオブジェクトの少なくとも一方を含むことを特徴とする請求項15に記載のシステム。
  21. 分離コードプロジェクト項目のプロパティを表示するプロパティウィンドウを容易に提示できるようにすることを特徴とする請求項15に記載のシステム。
  22. 前記デザイナは、設計ビューおよびコードビューで動作することを特徴とする請求項15に記載のシステム。
  23. 前記デザイナは、バイナリ形式とXML形式の少なくとも一方で前記文書を処理できることを特徴とする請求項15に記載のシステム。
  24. アンマネージアプリケーションを開発環境に統合する方法を実行するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記方法が、
    前記アンマネージアプリケーションを受け入れるステップと、
    前記アンマネージアプリケーションが前記開発環境内でデザイナとしてアクセス可能になるように、前記アンマネージアプリケーションと前記アンマネージアプリケーション固有のホストアダプタを含む前記開発環境とのインターフェースをとるステップとを含むことを特徴とするコンピュータ可読媒体。
  25. 前記アンマネージアプリケーションの独自機能と前記開発環境の機能とを用いて文書が操作されるように、前記開発環境で前記文書をホストするステップをさらに含むことを特徴とする請求項24に記載の方法。
  26. 前記開発環境で文書をホストするステップと、前記文書に関連づけられた分離コードファイルを表示して、前記ファイルの内容を操作できるようにするステップとをさらに含むことを特徴とする請求項24に記載の方法。
  27. 前記開発環境で文書をホストするステップと、前記文書の各サブ文書に関連づけられた分離コードファイルを表示して、各ファイルの内容を操作できるようにするステップとをさらに含むことを特徴とする請求項24に記載の方法。
  28. イベントに応答して始動するビューコントロールを提供するステップをさらに含むことを特徴とする請求項24に記載の方法。
  29. アンマネージアプリケーションを開発環境に統合する方法であって、
    前記アンマネージアプリケーションを受け入れるステップと、
    前記アンマネージアプリケーションが前記開発環境内でデザイナとしてアクセス可能になるように、前記アンマネージアプリケーションと前記アンマネージアプリケーション固有のホストアダプタを含む前記開発環境とのインターフェースをとるステップと、
    前記開発環境と前記アンマネージアプリケーションの機能とを用いて文書を操作できるように、前記開発環境で前記文書をホストするステップとを含むことを特徴とする方法。
  30. コントロールの前記文書上へのドラッグアンドドロップ操作を実行するステップと、
    前記文書に関連づけられた分離コードファイルを見るステップと、
    前記分離コードファイルにマネージコードを記述するステップと、
    前記デザイナを設計モードと実行時モードで動作させるステップと、
    不可視データを提示するステップと、
    前記文書上にマネージオブジェクトを描画するステップのうち少なくとも1つによって前記文書を操作するステップをさらに含むことを特徴とする請求項29に記載の方法。
  31. 前記アンマネージアプリケーションの選好についての専用ページを提供して、前記アンマネージアプリケーションが前記開発環境に統合される際、前記選好に従って動作するようにするステップをさらに含むことを特徴とする請求項29に記載の方法。
  32. アンマネージアプリケーションを開発環境に容易に統合できるようにするシステムであって、
    前記アンマネージアプリケーションを受け入れる手段と、
    前記アンマネージアプリケーションが前記開発環境内でデザイナとしてアクセス可能になるように、前記アンマネージアプリケーションと前記アンマネージアプリケーション固有のホストアダプタを含む前記開発環境とのインターフェースをとる手段と、
    前記開発環境と前記アンマネージアプリケーションの機能とを用いて文書を操作できるように、前記開発環境で前記文書をホストする手段と、
    前記文書を操作する手段とを含むことを特徴とするシステム。
  33. 前記操作する手段が、
    コントロールの前記文書上へのドラッグアンドドロップ操作を実行する手段と、
    前記文書に関連づけられた分離コードファイルを見る手段と、
    前記分離コードファイルにマネージコードを記述する手段と、
    前記デザイナを設計モードと実行時モードで動作させる手段と、
    不可視データを提示する手段と、
    前記文書上にマネージオブジェクトを描画する手段のうち少なくとも1つの操作手段をさらに含むことを特徴とする請求項32に記載のシステム。
  34. 前記文書のプロパティとコンポーネントを操作のために表示する手段をさらに含むことを特徴とする請求項32に記載のシステム。
JP2005036830A 2004-02-13 2005-02-14 統合開発環境におけるデザイナとしてのホスティッドアプリケーション Pending JP2005228345A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/779,298 US7676785B2 (en) 2004-02-13 2004-02-13 Hosted application as a designer in an integrated development environment

Publications (1)

Publication Number Publication Date
JP2005228345A true JP2005228345A (ja) 2005-08-25

Family

ID=34750449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005036830A Pending JP2005228345A (ja) 2004-02-13 2005-02-14 統合開発環境におけるデザイナとしてのホスティッドアプリケーション

Country Status (5)

Country Link
US (1) US7676785B2 (ja)
EP (1) EP1571548A3 (ja)
JP (1) JP2005228345A (ja)
KR (1) KR101149993B1 (ja)
CN (1) CN1655120B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012142002A (ja) * 2005-09-09 2012-07-26 Microsoft Corp 表計算データサマリー表を作成するためのユーザインターフェース
US8914717B2 (en) 2006-02-27 2014-12-16 Microsoft Corporation Dynamic thresholds for conditional formats
US9223772B2 (en) 2005-09-09 2015-12-29 Microsoft Technology Licensing, Llc Filtering user interface for a data summary table
US9424235B2 (en) 2005-10-27 2016-08-23 Microsoft Technology Licensing, Llc Variable formatting of values

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7954088B2 (en) * 2005-03-23 2011-05-31 Microsoft Corporation Method and apparatus for executing unit tests in application host environment
US8132148B2 (en) 2005-04-29 2012-03-06 Microsoft Corporation XML application framework
US7886269B2 (en) 2005-04-29 2011-02-08 Microsoft Corporation XML application framework
US20060245096A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation Application framework phasing model
US20080127055A1 (en) * 2006-09-07 2008-05-29 Microsoft Corporation Application proxy
US8850388B2 (en) * 2006-09-07 2014-09-30 Microsoft Corporation Controlling application features
US7530079B2 (en) 2006-09-07 2009-05-05 Microsoft Corporation Managing application customization
US7908580B2 (en) * 2006-09-07 2011-03-15 Microsoft Corporation Connecting an integrated development environment with an application instance
TW200821926A (en) * 2006-11-07 2008-05-16 Sunplus Technology Co Ltd Method and system for function reference of development tool
US20080307446A1 (en) * 2007-06-08 2008-12-11 Microsoft Corporation Interoperable Managed and Unmanaged Code in a Document Environment
WO2009078611A2 (en) * 2007-12-17 2009-06-25 Electronics And Telecommunications Research Institute Method for providing integrated application management
KR100962403B1 (ko) * 2007-12-17 2010-06-10 한국전자통신연구원 통합 소프트웨어 관리 시스템 및 방법
US9747270B2 (en) 2011-01-07 2017-08-29 Microsoft Technology Licensing, Llc Natural input for spreadsheet actions
US9069583B2 (en) 2010-09-30 2015-06-30 Microsoft Technology Licensing, Llc Designer extensibility
US9053083B2 (en) * 2011-11-04 2015-06-09 Microsoft Technology Licensing, Llc Interaction between web gadgets and spreadsheets
CN102591663A (zh) * 2011-12-30 2012-07-18 深圳市万兴软件有限公司 一种基于多文档框架实现单文档控制的方法和装置
US9171099B2 (en) 2012-01-26 2015-10-27 Microsoft Technology Licensing, Llc System and method for providing calculation web services for online documents
CN102902532B (zh) * 2012-09-13 2015-07-01 福建升腾资讯有限公司 一种集成开发环境中工具链转换扩展方法
US9465586B2 (en) * 2013-02-27 2016-10-11 Google Inc. Third party application scriptability
AU2014228252B9 (en) 2013-03-15 2017-06-29 BeulahWorks, LLC Knowledge capture and discovery system
US10664652B2 (en) 2013-06-15 2020-05-26 Microsoft Technology Licensing, Llc Seamless grid and canvas integration in a spreadsheet application
US9626350B2 (en) * 2013-09-20 2017-04-18 Oracle International Corporation Date picker in excel
US9183692B2 (en) * 2013-10-04 2015-11-10 Fire King Security Products, Llc Secure storage apparatus
US9948700B2 (en) 2014-07-01 2018-04-17 Oracle International Corporation ADFDI support for custom attribute properties
US10248634B2 (en) 2014-07-16 2019-04-02 Oracle International Corporation Model-driven data entry validation
US10048948B2 (en) 2015-07-06 2018-08-14 Oracle International Corporation Optimized retrieval of custom string resources
US11102313B2 (en) 2015-08-10 2021-08-24 Oracle International Corporation Transactional autosave with local and remote lifecycles
US10582001B2 (en) 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources
US10013668B2 (en) 2015-08-14 2018-07-03 Oracle International Corporation Secure storage of enterprise certificates for cloud services
US10452497B2 (en) 2015-08-14 2019-10-22 Oracle International Corporation Restoration of UI state in transactional systems
US10419514B2 (en) 2015-08-14 2019-09-17 Oracle International Corporation Discovery of federated logins
US10582012B2 (en) 2015-10-16 2020-03-03 Oracle International Corporation Adaptive data transfer optimization
CN116610884A (zh) * 2015-10-20 2023-08-18 维尔塞特公司 使用自动浏览群集更新提示模型
US10454940B2 (en) 2016-05-11 2019-10-22 Oracle International Corporation Identity cloud service authorization model
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10581820B2 (en) 2016-05-11 2020-03-03 Oracle International Corporation Key generation and rollover
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US9838377B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10516672B2 (en) 2016-08-05 2019-12-24 Oracle International Corporation Service discovery for a multi-tenant identity and data security management cloud service
US10505941B2 (en) 2016-08-05 2019-12-10 Oracle International Corporation Virtual directory system for LDAP to SCIM proxy service
US10585682B2 (en) 2016-08-05 2020-03-10 Oracle International Corporation Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service
US10530578B2 (en) 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10263947B2 (en) 2016-08-05 2019-04-16 Oracle International Corporation LDAP to SCIM proxy service
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US10511589B2 (en) 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10846390B2 (en) 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US10341354B2 (en) 2016-09-16 2019-07-02 Oracle International Corporation Distributed high availability agent architecture
US10567364B2 (en) 2016-09-16 2020-02-18 Oracle International Corporation Preserving LDAP hierarchy in a SCIM directory using special marker groups
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
US10484243B2 (en) 2016-09-16 2019-11-19 Oracle International Corporation Application management for a multi-tenant identity cloud service
EP3513542B1 (en) 2016-09-16 2021-05-19 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US10904074B2 (en) 2016-09-17 2021-01-26 Oracle International Corporation Composite event handler for a multi-tenant identity cloud service
US10261836B2 (en) 2017-03-21 2019-04-16 Oracle International Corporation Dynamic dispatching of workloads spanning heterogeneous services
US10454915B2 (en) 2017-05-18 2019-10-22 Oracle International Corporation User authentication using kerberos with identity cloud service
US10348858B2 (en) 2017-09-15 2019-07-09 Oracle International Corporation Dynamic message queues for a microservice based cloud service
US11308132B2 (en) 2017-09-27 2022-04-19 Oracle International Corporation Reference attributes for related stored objects in a multi-tenant cloud service
US11271969B2 (en) 2017-09-28 2022-03-08 Oracle International Corporation Rest-based declarative policy management
US10834137B2 (en) 2017-09-28 2020-11-10 Oracle International Corporation Rest-based declarative policy management
US10705823B2 (en) 2017-09-29 2020-07-07 Oracle International Corporation Application templates and upgrade framework for a multi-tenant identity cloud service
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US10931656B2 (en) 2018-03-27 2021-02-23 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US10798165B2 (en) 2018-04-02 2020-10-06 Oracle International Corporation Tenant data comparison for a multi-tenant identity cloud service
US11165634B2 (en) 2018-04-02 2021-11-02 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
US11258775B2 (en) 2018-04-04 2022-02-22 Oracle International Corporation Local write for a multi-tenant identity cloud service
US11012444B2 (en) 2018-06-25 2021-05-18 Oracle International Corporation Declarative third party identity provider integration for a multi-tenant identity cloud service
US10764273B2 (en) 2018-06-28 2020-09-01 Oracle International Corporation Session synchronization across multiple devices in an identity cloud service
US11693835B2 (en) 2018-10-17 2023-07-04 Oracle International Corporation Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service
US11321187B2 (en) 2018-10-19 2022-05-03 Oracle International Corporation Assured lazy rollback for a multi-tenant identity cloud service
US11651357B2 (en) 2019-02-01 2023-05-16 Oracle International Corporation Multifactor authentication without a user footprint
US11061929B2 (en) 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service
US11321343B2 (en) 2019-02-19 2022-05-03 Oracle International Corporation Tenant replication bootstrap for a multi-tenant identity cloud service
US11669321B2 (en) 2019-02-20 2023-06-06 Oracle International Corporation Automated database upgrade for a multi-tenant identity cloud service
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
US11611548B2 (en) 2019-11-22 2023-03-21 Oracle International Corporation Bulk multifactor authentication enrollment
CN112835652A (zh) 2019-11-25 2021-05-25 杭州中天微系统有限公司 数据交互方法及装置
CN111158645B (zh) 2019-12-10 2022-09-20 杭州中天微系统有限公司 提供集成开发环境的系统和方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5995756A (en) * 1997-02-14 1999-11-30 Inprise Corporation System for internet-based delivery of computer applications

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1059981A (zh) * 1988-12-30 1992-04-01 惠普公司 为容纳进一对象管理设备环境的应用程序的封装
US5862379A (en) * 1995-03-07 1999-01-19 International Business Machines Corporation Visual programming tool for developing software applications
US6230173B1 (en) * 1995-07-17 2001-05-08 Microsoft Corporation Method for creating structured documents in a publishing system
US5950000A (en) * 1996-12-06 1999-09-07 Sun Microsystems, Inc. Integrated of a third party software tool
CA2201278C (en) 1997-03-27 2001-02-20 Ibm Canada Limited-Ibm Canada Limitee Hierarchical metadata store for an integrated development environment
US5956036A (en) * 1997-03-31 1999-09-21 International Business Machines Corporation Shared modules graphical user interface
US5987247A (en) * 1997-05-09 1999-11-16 International Business Machines Corporation Systems, methods and computer program products for building frameworks in an object oriented environment
US6384849B1 (en) * 1997-07-14 2002-05-07 Microsoft Corporation Method for displaying controls in a system using a graphical user interface
US6434740B1 (en) * 1998-07-15 2002-08-13 International Business Machines Corporation Apparatus and method for visual construction simplification
EP1222535A4 (en) * 1999-04-29 2005-02-16 Univ Rutgers DISTRIBUTED SOFTWARE DEVELOPMENT ENVIRONMENT
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US7289964B1 (en) * 1999-08-31 2007-10-30 Accenture Llp System and method for transaction services patterns in a netcentric environment
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
US6944829B2 (en) * 2001-09-25 2005-09-13 Wind River Systems, Inc. Configurable user-interface component management system
US7110991B2 (en) * 2002-03-07 2006-09-19 International Business Machines Corporation IDE integration with JDBC
CA2391733A1 (en) 2002-06-26 2003-12-26 Ibm Canada Limited-Ibm Canada Limitee Framework to access a remote system from an integrated development environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5995756A (en) * 1997-02-14 1999-11-30 Inprise Corporation System for internet-based delivery of computer applications

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012142002A (ja) * 2005-09-09 2012-07-26 Microsoft Corp 表計算データサマリー表を作成するためのユーザインターフェース
US8601383B2 (en) 2005-09-09 2013-12-03 Microsoft Corporation User interface for creating a spreadsheet data summary table
US9223772B2 (en) 2005-09-09 2015-12-29 Microsoft Technology Licensing, Llc Filtering user interface for a data summary table
US9529789B2 (en) 2005-09-09 2016-12-27 Microsoft Technology Licensing, Llc User interface for creating a spreadsheet data summary table
US9959267B2 (en) 2005-09-09 2018-05-01 Microsoft Technology Licensing, Llc Filtering user interface for a data summary table
US10579723B2 (en) 2005-09-09 2020-03-03 Microsoft Technology Licensing, Llc User interface for creating a spreadsheet data summary table
US9424235B2 (en) 2005-10-27 2016-08-23 Microsoft Technology Licensing, Llc Variable formatting of values
US11295058B2 (en) 2005-10-27 2022-04-05 Microsoft Technology Licensing, Llc Variable formatting of values
US8914717B2 (en) 2006-02-27 2014-12-16 Microsoft Corporation Dynamic thresholds for conditional formats

Also Published As

Publication number Publication date
US7676785B2 (en) 2010-03-09
CN1655120B (zh) 2010-05-26
KR20060041873A (ko) 2006-05-12
KR101149993B1 (ko) 2012-06-01
CN1655120A (zh) 2005-08-17
EP1571548A2 (en) 2005-09-07
EP1571548A3 (en) 2005-09-14
US20050183059A1 (en) 2005-08-18

Similar Documents

Publication Publication Date Title
JP2005228345A (ja) 統合開発環境におけるデザイナとしてのホスティッドアプリケーション
JP4336522B2 (ja) 仮想アドレスバーのユーザインタフェースコントロール
JP4541676B2 (ja) グラフィカルユーザインタフェースにおいてソフトウェアアプリケーションを管理するためのシステムおよび方法
US8436815B2 (en) Selective enabling of multi-input controls
JP4864443B2 (ja) ツリービューベースエディタでのインラインプロパティ編集のシステムおよび方法
US9785303B2 (en) Scenario specialization of file browser
JP5116541B2 (ja) コンテキストに基づくソフトウェア層を確立するための方法、システム、および媒体(コンテキストに基づくソフトウェア層)
JP2009508217A (ja) 電子ファイル・システムにおける入れ子状ビュー
US20080320050A1 (en) Asynchronous updating of web page data views
US20100146431A1 (en) Object picker with window splitter
KR20080033261A (ko) 리치 드래그 드롭 사용자 인터페이스
US20070100843A1 (en) System and method for mapping between different information management systems
US7562305B2 (en) Dynamically-generated commanding interface
KR20060112714A (ko) 통합 컬렉션 생성용 툴 및 데이터 항목 통합 리스트 제공방법
JP2001256087A (ja) ファイルメモリを備えたデータ処理システムとデータ処理方法
JP2002244901A (ja) ファイル管理装置及びファイル管理方法、並びに記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111014