JP5031242B2 - データバインドされたリッチなアプリケーション - Google Patents

データバインドされたリッチなアプリケーション Download PDF

Info

Publication number
JP5031242B2
JP5031242B2 JP2006038389A JP2006038389A JP5031242B2 JP 5031242 B2 JP5031242 B2 JP 5031242B2 JP 2006038389 A JP2006038389 A JP 2006038389A JP 2006038389 A JP2006038389 A JP 2006038389A JP 5031242 B2 JP5031242 B2 JP 5031242B2
Authority
JP
Japan
Prior art keywords
view
model
component
property
binding
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.)
Expired - Fee Related
Application number
JP2006038389A
Other languages
English (en)
Other versions
JP2006260540A (ja
Inventor
ガスペリーニ アラン
ロバート ストーナー チャールズ
モッター ドロン
エフ.ブロンズキル ジョン
ゴスマン ジョン
ブルース クーパー ケネス
レーダー ルッツ
ミューレン パトリック
アンドリュー ピータース テッド
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 JP2006260540A publication Critical patent/JP2006260540A/ja
Application granted granted Critical
Publication of JP5031242B2 publication Critical patent/JP5031242B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C19/00Machines, tools or auxiliary devices for preparing or distributing paving materials, for working the placed materials, or for forming, consolidating, or finishing the paving
    • E01C19/12Machines, tools or auxiliary devices for preparing or distributing paving materials, for working the placed materials, or for forming, consolidating, or finishing the paving for distributing granular or liquid materials
    • E01C19/16Machines, tools or auxiliary devices for preparing or distributing paving materials, for working the placed materials, or for forming, consolidating, or finishing the paving for distributing granular or liquid materials for applying or spreading liquid materials, e.g. bitumen slurries
    • E01C19/17Application by spraying or throwing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04GSCAFFOLDING; FORMS; SHUTTERING; BUILDING IMPLEMENTS OR AIDS, OR THEIR USE; HANDLING BUILDING MATERIALS ON THE SITE; REPAIRING, BREAKING-UP OR OTHER WORK ON EXISTING BUILDINGS
    • E04G23/00Working measures on existing buildings
    • E04G23/02Repairing, e.g. filling cracks; Restoring; Altering; Enlarging
    • E04G23/0296Repairing or restoring facades
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60PVEHICLES ADAPTED FOR LOAD TRANSPORTATION OR TO TRANSPORT, TO CARRY, OR TO COMPRISE SPECIAL LOADS OR OBJECTS
    • B60P3/00Vehicles adapted to transport, to carry or to comprise special loads or objects
    • B60P3/30Spraying vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Architecture (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Structural Engineering (AREA)
  • Civil Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Electrochemistry (AREA)
  • Mechanical Engineering (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Description

本発明は一般に、コンピュータ処理に関し、より詳細には、ユーザインタフェースを有するアプリケーションの開発および動作に関する。
グラフィカルユーザインタフェース(GUI)を備えるリッチなクライアントアプリケーションを生産するには、高品質なグラフィック設計作業と、従来のソフトウェアエンジニアリングスキルとの両方が必要とされる。グラフィック設計作業は、アプリケーションのGUIの外観を提供するために行わなければならない。従来のソフトウェアエンジニアリングスキルは、アプリケーションの機能を提供するために必要とされる。
グラフィック設計とソフトウェア開発は、非常に異なる2つの分野である。グラフィック設計者とソフトウェア開発者とが共に生産的に作業するのはしばしば困難であり、そのため、高品質なGUIと高品質な機能との両方を備えるクライアントアプリケーションを生産するのは困難になる。
典型的には、グラフィック設計者は、Photoshop(Adobe Systems社製)、Illustrator(同じくAdobe Systems社製)、Flash(Macromedia社製)、Director(同じくMacromedia社製)などのグラフィックツールを使用して、UIが呈するべきビューを生み出すことになる。この「モックアップ」は、次いで開発者によって、Visual Studio(本出願人による)などのプログラミングツールを使用して再実装される。通常、元のグラフィック設計要素が最終的な実装において再使用されることはほとんどない。時には、最初のアプリケーションからのいくつかのビットマップおよびアイコンが新しいアプリケーション中で再使用されることもあるが、試作されたどんな制御および対話性も使用されることはない。
このプロセスに伴う追加の問題は、容易に描けるいくつかの効果はソフトウェア開発者による再現が困難または不可能であるために、グラフィック設計者によって生み出されたデザインの一部がこのプロセス中で失われることである。グラフィック設計者のビジョンを実現することにおける制限の1つは、ソフトウェア開発者がコードおよび現在のアプリケーションプログラムインタフェース(API)を使用して実際にできることに限りがあることである。もう1つの本質的な制限は、開発者がデザインを完全に理解しておらず、グラフィック設計者の意図とは異なる選択を実装において行う場合があることである。
加えて、結果として生じるアプリケーションは再使用可能ではない。時の経過に伴ってデザインが修正された場合、グラフィック設計者は、デザインツールを使用してUIを描き直さなければならず、プログラマは、デザインに合うようにコードの各部分を書き直さなければならない。これは、フォームまたはアプリケーションのレイアウト全体から、単一の制御の外観までの、複数のレベルのいずれかで生じる場合がある。一般に、前述のようにして作成されたコードは、デバッグ、保守、および拡張が困難である。
UIを外部から指定できるようになる前に、アプリケーションビジネスロジックをプレゼンテーションから分離する必要がある。この2つを分離する手法の1つは、モデル−ビュー−コントローラ(MVC)設計パターンである。MVCは、アプリケーションを3つの領域、すなわち抽象モデルと、そのモデルのビューと、各ビューごとのコントローラとに分割することによって、この問題を解決しようとする。コントローラは、入力イベントを処理し、それらをビューまたはモデルに対する変化に変換する。反対に、ビューおよびコントローラは、オブザーバをモデルに取り付けており、モデルが変化したときは、ビューおよびコントローラは自身を更新することができる。例えば、ユーザがカタログを検索してカタログ情報を見ることのできるウェブクライアントアプリケーションの場合、モデルは、カタログ情報が記憶されている場所である。ビューはユーザへのプレゼンテーションである。コントローラは、入力イベント(ユーザからのクリックやテキストなど)を処理し、結果としてどのように変化すべきかをビューおよびモデルに伝える。ビューおよびコントローラは、モデル内の変化、すなわちビューおよびコントローラがオブザーバを介して知った変化の結果として変化することもある。
MVCパターンは、概念的にはクリーンである。しかし実際は、ビューとコントローラを分離するのはしばしば困難である。この困難のため、この2つは通常、単一のViewControllerクラスに結合されるが、このクラスは依然としてデザインとロジックの混合であり、したがってやはり、グラフィック設計者とソフトウェア開発者とがただ作成のためにこのクラスに対して協働するのも、このクラスに向けて協働するのも困難である。さらに、イベントを処理すること、ならびに、ViewControllerとModelとを結び付けるのに必要なオブザーバおよび更新機構を実装することは、面倒でコード集約的な作業であり、これらの作業は、エラーが起きやすくグラフィック設計者には適さない。さらに、オブザーバおよび更新コードは通常、あるインスタンスから次のインスタンスまで類似する。
したがって、前述のように、現在のソフトウェア開発者/グラフィック設計者ワークフローおよびアプリケーションアーキテクチャには、多くの問題が内在する。以上の欠点に鑑みて、ユーザインタフェース(UI)コンポーネントを有するアプリケーションまたはアプリケーションの一部を作成および設計するための、改善された方法が必要とされている。本発明はこの必要性を満たすものである。
オブザーバおよび更新処理コード(the observer and update handling code)を最小限に抑えながらビューとモデルとの分離を可能にするために、データバインディングが使用される。ビューは、少なくとも1つのビュープロパティを含み、ビュープロパティは、モデル中の少なくとも1つのモデルプロパティにバインドされる。このバインディングは、ビューを設計と噛み合わせる作業を簡略化し、以前ならイベント処理、オブザーバ、更新機構が処理していた機能を自動的に実施する。
いくつかの実施形態では、トランスフォーマを使用して、モデルからのデータをビュー中で使用されるように変換することができる。いくつかの実施形態では、ビューから生じるUIの各部分が自動的に生成され得る。いくつかの実施形態では、コマンドバインディングを使用して、UI中でトリガされたコマンドがモデル中で処理されるようにすることができる。
本発明の他の特徴および利点は、後続の本発明の詳細な説明および添付の図面から明らかになるであろう。
前述の概要、ならびに現時点で好ましい実施形態に関する後続の詳細な記述は、添付の図面と共に読めばよりよく理解される。本発明を説明するために、図面には、本発明の例示的な構造が示されている。しかし本発明は、開示される特定の方法および手段に限定されない。
(例示的なコンピューティング環境)
図1に、本発明を実施することのできる適切なコンピューティングシステム環境100の例を示す。コンピューティングシステム環境100は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲についてどんな限定を意味するものでもない。またコンピューティング環境100は、この例示的な動作環境100に示すコンポーネントのいずれか1つまたは組合せに関して、どんな依存や要件を有するとも解釈されるべきではない。
コンピュータまたはその他のクライアントデバイスまたはサーバデバイスは、コンピュータネットワークの一部として配置されてもよく、あるいは分散コンピューティング環境内に配置されてもよいことは、当業者なら理解することができる。これに関して、本発明は、任意の数のメモリまたは記憶装置と、任意の数の記憶装置またはボリュームにわたって発生し本発明と共に使用できる任意の数のアプリケーションおよびプロセスとを有する、任意のコンピュータシステムに関係する。本発明は、ネットワーク環境または分散コンピューティング環境内に配置された、リモートまたはローカル記憶装置を有するサーバコンピュータおよびクライアントコンピュータを有する環境に適用することができる。本発明はまた、リモートまたはローカルサービスと共に情報を生成し、受信し、および送信するためのプログラミング言語機能ならびに解釈および実行能力を有するスタンドアロンコンピューティングデバイスに適用することもできる。
本発明は、その他多くの汎用または専用コンピューティングシステム環境または構成でも機能する。本発明と共に使用するのに適するであろう周知のコンピューティングシステム、環境、および/または構成の例には、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータや、これらのシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
本発明は、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の一般的な文脈で述べることができる。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は分散コンピューティング環境で実施することもでき、その場合、タスクは通信ネットワークまたはその他のデータ伝送媒体を介してリンクされたリモート処理デバイスによって実施される。分散コンピューティング環境では、プログラムモジュールおよびその他のデータは、メモリ記憶デバイスを含めたローカルとリモートの両方のコンピュータ記憶媒体に位置することができる。分散コンピューティングは、コンピューティングデバイスおよびシステム間の直接交換によって、コンピュータリソースおよびサービスの共有を容易にする。これらのリソースおよびサービスには、情報交換、キャッシュ記憶、およびファイル用ディスク記憶が含まれる。分散コンピューティングは、ネットワーク接続性を活かし、クライアントがその集合的な力を利用して企業全体を益することができるようにする。これに関して、様々なデバイスが、本発明の技法を利用できるアプリケーション、オブジェクト、またはリソースを有することができる。
図1を参照すると、本発明を実施するための例示的なシステムは、コンピュータ110の形の汎用コンピューティングデバイスを含む。コンピュータ110のコンポーネントには、限定はしないが、処理ユニット120と、システムメモリ130と、システムメモリを含めた様々なシステムコンポーネントを処理ユニット120に結合するシステムバス121とを含めることができる。システムバス121は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含めた、いくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例として、このようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびPCI(Peripheral Component Interconnect)バス(メザニンバスとも呼ばれる)が含まれる。
コンピュータ110は通常、様々なコンピュータ読取り可能記憶媒体を備える。コンピュータ読取り可能記憶媒体は、コンピュータ110からアクセスできる任意の利用可能な媒体とすることができ、揮発性および不揮発性の媒体、取外し可能および取外し不可能な媒体の両方が含まれる。限定ではなく例として、コンピュータ読取り可能記憶媒体には、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ読取り可能命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性および不揮発性、取外し可能および取外し不可能な両方の媒体が含まれる。コンピュータ記憶媒体には、限定はしないが、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CDROM、ディジタル多用途ディスク(DVD)、または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶デバイスが含まれ、あるいは、所望の情報を記憶するのに使用できコンピュータ110からアクセスできるその他の任意の媒体が含まれる。通信媒体は通常、コンピュータ読取り可能命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他のトランスポート機構などの被変調データ信号に組み入れるものであり、任意の情報送達媒体がこれに含まれる。用語「被変調データ信号」は、信号中の情報が符号化される形で1つまたは複数の特性が設定または変更される信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークや直接有線接続などの有線媒体と、音響、無線周波数、赤外線などの無線媒体および他の無線媒体とが含まれる。以上のいずれかの組合せもコンピュータ読取り可能記憶媒体の範囲に含まれるべきである。
システムメモリ130は、読取り専用メモリ(ROM)131やランダムアクセスメモリ(RAM)132など、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。ROM131には通常、起動中などにコンピュータ110内の要素間で情報を転送するのを助ける基本ルーチンを含むBIOS(basic input/output system)133が記憶されている。RAM132は通常、処理ユニット120がすぐにアクセス可能な、かつ/または処理ユニット120が現在作用している、データおよび/またはプログラムモジュールを含む。限定ではなく例として、図1には、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、プログラムデータ137を示す。
コンピュータ110は、その他の取外し可能/取外し不可能、揮発性/不揮発性コンピュータ記憶媒体を備えることもできる。例に過ぎないが図1には、取外し不可能な不揮発性の磁気媒体に対して読み書きするハードディスクドライブ141と、取外し可能な不揮発性の磁気ディスク152に対して読み書きする磁気ディスクドライブ151と、CD ROMやその他の光媒体など取外し可能な不揮発性の光ディスク156に対して読み書きする光ディスクドライブ155を示す。この例示的な動作環境で使用できるその他の取外し可能/取外し不可能、揮発性/不揮発性コンピュータ記憶媒体には、限定されないが磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、固体RAM、固体ROMなどが含まれる。ハードディスクドライブ141は通常、インタフェース140などの取外し不可能なメモリインタフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は通常、インタフェース150などの取外し可能なメモリインタフェースでシステムバス121に接続される。
以上に論じ図1に示したドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、その他のデータの記憶域をコンピュータ110に提供する。例えば図1には、ハードディスクドライブ141がオペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を記憶しているのが示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、プログラムデータ137と同じものとすることもでき、異なるものとすることもできることに留意されたい。ここでは、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、プログラムデータ147が少なくとも異なるコピーであることを示すために、異なる番号を付けてある。ユーザは、キーボード162やポインティングデバイス161(一般にマウス、トラックボール、またはタッチパッドと呼ばれる)などの入力デバイスを介して、コンピュータ110にコマンドおよび情報を入力することができる。その他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどを含めることができる。これらおよび他の入力デバイスは、システムバスに結合されたユーザ入力インタフェース160を介して処理ユニット120に接続されることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など、他のインタフェースおよびバス構造で接続されてもよい。モニタ191または他のタイプの表示デバイスも、ビデオインタフェース190などのインタフェースを介してシステムバス121に接続される。モニタに加えて、コンピュータは、スピーカ197やプリンタ196など、その他の周辺出力デバイスも備えることができ、これらは出力周辺インタフェース195を介して接続することができる。
コンピュータ110は、リモートコンピュータ180など1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、図1にはメモリ記憶デバイス181だけしか示されていないが、通常はコンピュータ110に関して上述した要素の多くまたはすべてを備える。図1に示す論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、インターネットにおいては一般的である。
LANネットワーキング環境で使用されるときは、コンピュータ110は、ネットワークインタフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用されるときは、コンピュータ110は通常、インターネットなどのWAN173を介した通信を確立するためのモデム172または他の手段を備える。モデム172は内蔵でも外付けでもよく、ユーザ入力インタフェース160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク化された環境では、コンピュータ110に関して示したプログラムモジュールまたはその一部をリモートのメモリ記憶デバイスに記憶することができる。限定ではなく例として、図1には、リモートアプリケーションプログラム185がメモリデバイス181上にあるのが示されている。図示のネットワーク接続は例であり、コンピュータ間で通信リンクを確立するための他の手段を使用してもよいことは理解されるであろう。
本明細書のいくつかの例示的な実施形態は、コンピューティングデバイス上にあるソフトウェアに関して述べるが、本発明の1つまたは複数の部分は、オペレーティングシステム、アプリケーションプログラミングインタフェース(API)または「中間者(middle man)」オブジェクト、制御オブジェクト、ハードウェア、ファームウェアなどを介して実施することもでき、したがって本方法は、すべての.NET言語およびサービスならびにその他の分散コンピューティングフレームワークに含めることができ、これらのフレームワークにおいてサポートすることができ、これらのフレームワークを介してアクセスすることができる。
(データバインドされたアプリケーションにおけるデータバインディングコンポーネントの使用)
より高い生産性と、アプリケーション要素のよりよい再利用性と、開発者と設計者との間のより容易な協働をもたらすために、本発明は、ユーザインタフェース(UI)の外観(または「ビュー」)と、基礎をなす挙動(「モデル」)との間のクリーンな分離を提供する。図2は、本発明の一実施形態による、UIコンポーネントを含むアプリケーションのブロック図である。図2において明らかなように、アプリケーション200は、ビュー210およびモデル240を含む。これらは、アプリケーション設計のMVCパターンにおけるビューおよびモデルに対応する。モデル240は、アプリケーションのロジックに関する、UIフリーなコードを表す。例えば、カタログに関するデータベースおよびビジネスロジックは、モデル240内に実装されることになる。追加の例として、アプリケーション200によってユーザがファイルシステムを探索することができる場合、この例示的な場合におけるアプリケーションに関するモデル240は、ファイルシステム、すなわち、選択されたディレクトリ内の一組のフォルダおよびファイルである。モデル240は、データ(カタログデータ)と、データに関するロジック、例えば一貫性規則(consistency rules)との両方を含む。一貫性規則は、例えば、カタログ中の製品の価格がマイナスでないことを必要とすることができる。
モデル240を使用することにより、モデルが従来のプログラミング言語において定義されること、したがって、モデルがソフトウェア開発者にとって理解可能であることの利益が維持される。ファイルシステムの例では、モデルは、ファイルの移動、コピー、名前変更のためのメソッド、フォルダ作成のためのメソッド、アプリケーションファイルの実行のためのメソッドなどからなる。これらの操作は必然的に、タスク特有のビジネスロジックだがこれらの操作をエンドユーザに公開するのに使用されるUIからは独立した、ビジネスロジックを必要とする。ビュー210は、宣言的(declaratively)に指定される。例えば、ビュー210は、本件出願人によるVisual Studio製品やMacromedia社製のFlex製品などのツールを使用して定義することができる。
ビュー210とモデル240との間のリンクを提供するために、アプリケーション200は、総合(general)データバインディングコンポーネント220を使用する。総合データバインディングコンポーネントは、アプリケーション200内に示されているが、いくつかの実施形態では、アプリケーション200によって使用される利用可能なリソースである。いくつかの実施形態におけるデータバインディングコンポーネント220は、データバインディングエンジン220である。このようなデータバインディングエンジンは、モデル上のプロパティとビュー上のプロパティとの間の関連など、1対のオブジェクト上のプロパティ間の動的なバインディングを可能にする。データバインディングエンジン220は、これらのオブジェクトに関するプロパティ変化通知をリッスンし、これにより、ソースプロパティの変化は自動的にターゲットプロパティに反映することになる。また、その逆も同様である。データバインディングエンジンは、ターゲットの特定部分をソースの特定部分にバインドできるようにするために、プロパティパスを評価することをサポートすることができる。本発明のいくつかの実施形態では、ターゲットオブジェクトプロパティをソースオブジェクトプロパティにバインドすることは、HTML(ハイパーテキストマークアップ言語)、XML(拡張可能マークアップ言語)、XAML(拡張可能アプリケーションマークアップ言語)、またはその他の適切なマークアップ言語など、マークアップ言語で宣言的に行うことができる。
したがって、データバインディングエンジン220は、ビュー210とモデル240との間の媒介として機能する。そのため、データバインディングエンジンを使用することにより、ビュー210からのイベントを明示的に処理してモデル240に対するオブザーバおよび更新機構を実装するためのアプリケーションコードを必要とせずに、モデルとは別に構築されたユーザインタフェースを有するアプリケーションを設計することができる。データバインディングエンジン220は、そのソースとターゲットとの同期を自動的にとる。したがって、ビュー210へのユーザ入力またはモデル240内の変化が発生した場合は、適切な更新が行われる。
例として、アプリケーション200は、温度を表示する単純なアプリケーションとすることができる。ビュー210は、グラフィック設計者によってグラフィックツール中で生み出すことができる。例えば、図3に単純なビューを示す。図3に示すように、グラフィック300は、テキストボックス310および温度計グラフィック320を含む。この例では、アプリケーション200は、ユーザが郵便番号をテキストボックス310に入力できるようにして、この郵便番号における対応する温度を温度計グラフィック320に表示するように意図されている。温度計の示度は、グラフィック設計者によって、グラフィック300に関連する変数「Length」に対応するように設定される。テキスト入力ボックスからのデータは、変数「zipcode」に関連する。この例の一変形では、zipcodeに対する正しい温度を取り出すために、データベースが参照される。データベースストアは、各郵便番号について、温度計グラフィック320の表示の長さを記憶している。データバインディングエンジン220は、グラフィック300のzipcodeおよびLengthをデータベース中のそれとバインドする。図3の温度計アプリケーションの場合、データベースはモデル240である。
(データバインディングコンポーネントおよびアダプタ層の使用)
図4は、本発明の一実施形態による、アプリケーションの各部分のブロック図である。図4は、ビュー410と、データバインディングコンポーネント420と、モデル440とを有するアプリケーション400を示している。ビュー410、データバインディングコンポーネント420、およびモデル440は、図2の対応する要素に関して上述したとおりである。しかし、図4はアダプタ層430も含み、アダプタ層430は、ビュー410中の概念を、モデル440中の概念へまたは概念から変換する必要があれば、その変換を実施する。
例えば、温度計アプリケーションの例に関する別の変形では、図3に示した温度計アプリケーションのモデル440は、ワールドワイドウェブを介して利用可能なサービスによって実装される。このウェブサービスは、以下の例のようにモデル440によってアプリケーション中で公開することができ、この例では、TemperatureModelが、述べたモデルである。
Figure 0005031242
示したように、このウェブサービスは、ビュー410中で直接使用できるLength値ではなく、度で表される温度(temperature in degrees)に対応する浮動小数点数を返す。このような場合、アダプタ層430は、この浮動小数点数を、ビュー410中で使用できる長さに変換することになる。データバインディングコンポーネント420は、例えばインターネットを介してウェブサービスへのアクセスを可能にするラッパ(wrapper)を通して、サービスに対して直接に作用することができるが、サービスから提供される結果はビュー410に理解可能ではなく、ビュー410は、度で表される温度ではなく長さを必要とする。そのため、アダプタ層430が変換を提供する。ウェブベースの温度計アプリケーションの例についてのアダプタ層430の例は、以下のとおりである。
Figure 0005031242
このアダプタ層430は、ウェブサービスから返された温度からLengthが決定されるようにする。温度はウェブサービスから得られる。すなわち、モデル440のTemperatureプロパティからワールドワイドウェブ(「webservice.get_temp(zipcode)」)を介して公開されるリモートメソッドを呼び出すためのクライアント側スクリプトから得られる。Lengthは、得られた温度に基づく。次いで、データバインディングコンポーネント420は、アダプタ層430を介して、ビュー410のzipcodeをモデル440中のzipcodeにバインドし、ビュー410のLengthをモデル440中のLengthにバインドすることになる。ビュー410中のLengthに関するバインディング宣言は、モデル440中のTemperatureとアダプタ層430中のconverterとの両方を参照することになる。新しい郵便番号がビュー410に入力されたときは、データバインディングコンポーネントは、モデル440中のZipCodeプロパティを更新することになる。その結果として、モデルは、モデル中のZipCodeとTemperatureの両方のプロパティが変化したことをリスナに通知することになる。次いで、データバインディングコンポーネントは、モデル440(ウェブサービス)を使用して新しいLengthを計算し、更新済み温度値を得て、次いで変換をアダプタ層430中で適用する。得られたLength値は、ビュー410に提供されることになる。
図5は、本発明の一実施形態による、ビューとデータバインディングコンポーネントとモデルとの間のデータフローを示すブロック図である。データバインディングコンポーネント520は、矢印512で示すように、ビュー510からのプロパティ変化通知をリッスンする。加えて、データバインディングコンポーネント520は、矢印542で示すように、モデル540からのプロパティ変化通知もリッスンする。変化通知を受け取った場合、データバインディングコンポーネント520は、矢印525および526で示すように、ビュー510中のビュープロパティ550をモデル540中のモデルプロパティ560と同期させることになる。アダプタ層530がある場合は、前述のように、プロパティが直接対応しない場合にアダプタ層530がこの同期を可能にする。
(トランスフォーマ、自動生成されたUI、およびコマンドバインディング)
再び図2を参照すると、前述のように、アダプタ層はトランスフォーマを提供し、それによりビュー210中のプロパティはモデル240中のプロパティに対応することができる。トランスフォーマは、データの特定クラスを、ある値セットから別の値セットに変換するオブジェクトである。トランスフォーマは、片方向または両方向に作用することができる。上述したように、温度計の例では、ウェブサービスから取り出された結果をLengthに変換するためのトランスフォーマが提供された。温度値に逆変換する必要はなく、単方向トランスフォーマだけが必要とされたので、この変換は単方向性であった。しかし、双方向トランスフォーマが必要な場合もある。例えば、図3のグラフィック300上に米国地図も表示されており、郵便番号をテキストボックス310にタイプ入力する代わりに地図上の地点をユーザが選択することができる場合を考えてみる。このような場合、クリックの位置を保持するビュー210中のプロパティが、郵便番号を識別するモデル240中のプロパティに変換されることになる。次いで、この郵便番号を使用して、追加の変換を介して、テキストボックス310中に表示された値および温度計グラフィック320上に表示された値が変更される。
トランスフォーマは、UIがデータを種々のフォーマットで公開できるようにし、モデル240がデータを単一の、一貫したフォーマットで公開できるようにする。トランスフォーマはまた、モデル240に重複情報を公開させることなく、モデル240上の同じデータが同時にいくつかの異なる方式で表示されるようにする。プロパティをUIコンポーネントにバインドすることに加えて、データバインディングはまた、モデル240に基づいてユーザインタフェースのためのコンテンツを自動生成する強力な機能も提供する。例えば、モデル240は、データの集合であるプロパティを公開することができる。ビューは、モデル集合中の各項目について、新しいユーザインタフェースコンポーネントがビュー中で作成されるように、宣言的に指定することができる。次いで、ビュー側の集合は、データの集合であるモデル上のプロパティにバインドされる。そのため、このバインディングは、UI中のユーザインタフェースコンポーネントの自動生成を引き起こす。したがって例えば、モデル中の名前のリストから、UI中に各名前がリストされたメニューが得られる。ビュー210は、いくつの要素が名前リスト中にあるかを知る必要はなく、バインディングに基づいて正しい数のリストが自動生成される。このようにして、メニューの項目をポピュレートすること、リストビューをポピュレートすること、およびコンボボックスをポピュレートすることを含む方法によって、種々のUI要素を作成することができる。
コマンドバインディングを使用して、モデル中の操作がUI要素にバインドされる。図6は、本発明の一実施形態による、コマンドバインディングの使用を示すブロック図である。ビュー210中で、UI要素640(例えばメニュー項目)が、プロパティ645を公開することになる。プロパティ645は、データバインディングする間のシンク(ターゲット)として働く。例えば、UI要素640は、ファイルシステムの例における削除ボタンとすることができ、プロパティ645は、選択されたファイルを削除するための対応するモデルコマンドに結び付けられたコマンドプロパティである。コマンドの機能をプロパティ645に結び付けることは、モデル240をデータソースとして割り当てて、UI要素640上のプロパティ645を、モデル上のコマンド650のコマンドプロパティ655にデータバインドすることによって達成することができる。したがって、ビュー210中のコマンドの機能は、どんな命令型プログラムコードも呼び出さずに、宣言的に達成することができる。この例におけるボタンUI要素は、関連するコマンドが何であろうかにかかわらず、単にボタンが押された場合にそのコマンドを呼び出すことを担う。
宣言的バインディングは、いくつかの実施形態では、プロパティパスを使用して、まずモデル240中のアクティブ文書をアドレス指定し、次いで、ユーザインタフェース640上のボタンのコマンドプロパティ645中で指定されたアクティブ文書上の編集コマンドを、このプロパティパスで選択することによって、達成することができる。
(本発明による、ユーザに機能を提供する方法)
図7は、本発明の一実施形態による、ユーザインタフェースを介してユーザに機能を提供する方法の流れ図である。このような機能は、データバインドされたリッチなアプリケーションを提供することができる。ステップ700において、ユーザインタフェースを記述するビューデータが提供される。ビューデータは、少なくとも1つのビュープロパティを含む。加えて、ステップ710において、機能を実現するモデルデータが提供される。このモデルデータは、機能のためのデータを(例えばデータベースまたはその他のデータストアから)提供することによって、あるいはプログラムに基づく機能を提供することによって、機能を実現することができる。ステップ720において、ビュープロパティの少なくとも1つが、モデルプロパティの少なくとも1つにバインドされる。本発明のいくつかの実施形態では、これはデータバインディングエンジンによって行われる。ステップ720は、モデルプロパティをビュー準拠プロパティ(view-compliant property)に変換し、次いでこのビュー準拠プロパティをモデルプロパティにバインドすることによって、達成することができる。加えて、ステップ720は、ビュープロパティをモデル準拠プロパティに変換し、このモデル準拠プロパティをビュープロパティにバインドすることによって、達成することもできる。バインドするステップ720を介して、ビューのためのUI要素の自動生成、およびコマンドバインディングを達成することができる。
ビューデータを提供してバインドすることによって、モデルデータからアプリケーションを作成する場合と同様に、モデルデータを提供していくつかのモデルデータプロパティをビューデータプロパティにバインドすることによって、ビューデータからアプリケーションを作成することも可能である。
(結び)
本明細書に述べた様々な技法は、ハードウェアまたはソフトウェア、あるいは適切ならこの両方の組合せで実施することができる。したがって、本発明の方法および装置、またはそのいくつかの態様または部分は、フロッピー(登録商標)ディスク、CD−ROM、ハードドライブ、またはその他の任意のマシン読取り可能記憶媒体など、有形媒体に組み入れられたプログラムコード(すなわち命令)の形をとることができ、プログラムコードがコンピュータなどのマシンにロードされマシンによって実行されると、このマシンは本発明を実施するための装置になる。プログラムコードがプログラム可能なコンピュータ上で実行される場合、このコンピューティングデバイスは一般に、プロセッサと、プロセッサによって読取り可能な記憶媒体(揮発性と不揮発性のメモリおよび/または記憶素子を含む)と、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを備えることになる。例えばデータ処理APIなどを使用して、本発明の領域特有なプログラミングモデル態様の作成および/または実施を利用することのできる1つまたは複数のプログラムは、コンピュータシステムと通信するための高レベルのプロシージャ指向またはオブジェクト指向プログラミング言語で実現されることが好ましい。しかし、この1つまたは複数のプログラムは、望むのであれば、アセンブリ言語またはマシン言語で実現することもできる。いずれの場合でも、言語はコンパイルまたは解釈される言語とすることができ、ハードウェアの実装と組み合わせることができる。
本発明の態様を実施することのできる例示的なコンピューティング環境のブロック図である。 本発明の一実施形態による、UIコンポーネントを含むアプリケーションのブロック図である。 本発明の一実施形態による、モデルと共に使用することのできるビューを示す図である。 本発明の一実施形態による、アプリケーションの各部分のブロック図である。 本発明の一実施形態による、ビューとデータバインディングコンポーネントとモデルとの間のデータフローを示すブロック図である。 本発明の一実施形態による、コマンドバインディングの使用を示すブロック図である。 本発明の一実施形態による、ユーザインタフェースを介してユーザに機能を提供する方法の流れ図である。

Claims (20)

  1. コンピュータに備えるプロセッサが、ユーザインタフェースを介して機能を提供する方法であって、前記方法は、
    ビューコンポーネントにおいて、ユーザインタフェースを記述する、少なくとも1つのビュープロパティを含むビューデータを提供することと、
    モデルコンポーネントにおいて、前記機能を実現する、少なくとも1つのモデルプロパティを含むモデルデータを提供することと、
    ビューコンポーネント及びモデルコンポーネントから独立したバインディングコンポーネントにおいて、前記ビュープロパティの少なくとも1つの、前記モデルプロパティの少なくとも1つへのバインディングを宣言することであって、前記バインディングコンポーネントは、前記ビューコンポーネント及び前記モデルコンポーネントをインスタンス化することなくインスタンス化されることができる、こととを含むことを特徴とする方法。
  2. 前記バインディングを宣言することは、データバインディングエンジンを使用してバインディングを宣言することを含むことを特徴とする請求項1に記載の方法。
  3. 前記ビュープロパティの少なくとも1つ前記モデルプロパティの少なくとも1つへのバインディングを宣言することは、
    前記ビューコンポーネント、前記モデルコンポーネント、前記バインディングコンポーネントから独立したアダプタ層コンポーネントを提供して、モデルプロパティに対応するビュープロパティ、又はその逆を作成する必要があるときのみに変換を実行することであって、前記バインディングコンポーネントは前記アダプタ層コンポーネントにおける変換を参照する、ことと
    前記変換の結果としてビュー準拠モデルプロパティを得ることと、
    前記ビュー準拠モデルプロパティ前記モデルプロパティへのバインディングを宣言することと
    を含むことを特徴とする請求項1に記載の方法。
  4. 前記ビューデータは、少なくとも1つの特定のビュープロパティに基づいてユーザインタフェース要素のプレゼンテーションを記述し、前記特定のビュープロパティは、少なくとも1つの特定のモデルプロパティにバインディングされ、バインディングされることにより前記プレゼンテーションは前記少なくとも1つのモデルプロパティに基づいて前記ユーザインタフェース要素を自動的に生成できることを特徴とする請求項1に記載の方法。
  5. 前記自動的な生成は、メニューの項目をポピュレートすること、リストビューをポピュレートすること、コンボボックスをポピュレートすることから選択された1つまたは複数を含むことを特徴とする請求項4に記載の方法。
  6. 前記モデルプロパティはコマンドであることを特徴とする請求項1に記載の方法。
  7. 請求項1に記載の方法を実施するためのコンピュータ実行可能命令を備えることを特徴とするコンピュータ読取り可能記憶媒体。
  8. 機能を提供するユーザインタフェースを有するアプリケーションを提供するシステムであって、前記システムは、
    ビューコンポーネントにおいてユーザインタフェースを記述するビューデータを含むビューを提供するように構成されたプロセッサであって、前記ビューデータは少なくとも1つのビュープロパティを含む、プロセッサと、
    前記機能を実現するモデルデータを含むモデルコンポーネントであって、前記モデルデータは少なくとも1つのモデルプロパティを含むモデルコンポーネントと、
    前記ビュープロパティ少なくとも1つ前記モデルプロパティの少なくとも1つへのバインディングを宣言するデータバインディングコンポーネントであって、前記バインディングコンポーネントは前記ビューコンポーネント及び前記モデルコンポーネントから独立しており、前記データバインディングコンポーネントは前記ビューコンポーネント及び前記モデルコンポーネントをインスタンス化することなくインスタンス化されることができ、前記バインディングコンポーネントはすべてのバインディングを宣言する、データバインディングコンポーネントとを備えることを特徴とするシステム。
  9. 前記バインディングを宣言することは、データバインディングエンジンを使用してバインディングを宣言することを含むことを特徴とする請求項8に記載のシステム。
  10. 前記ビュープロパティ前記モデルプロパティへのバインディングを宣言することは、
    前記ビューコンポーネント、前記モデルコンポーネント、前記バインディングコンポーネントから独立したアダプタ層コンポーネントを提供して、モデルプロパティに対応するビュープロパティ、又はその逆を作成する必要があるときのみに変換を実行することであって、前記バインディングコンポーネントは前記アダプタ層コンポーネントにおける変換を参照する、ことと
    前記変換の結果としてビュー準拠モデルプロパティを得ることと、
    前記ビュー準拠モデルプロパティ前記モデルプロパティへのバインディングを宣言することと
    を含むことを特徴とする請求項8に記載のシステム。
  11. 前記ビューデータは、少なくとも1つの特定のビュープロパティに基づいてユーザインタフェース要素のプレゼンテーションを記述し、前記特定のビュープロパティは、少なくとも1つの特定のモデルプロパティにバインディングされ、バインディングされることにより前記プレゼンテーションは前記少なくとも1つのモデルプロパティに基づいて前記ユーザインタフェース要素を自動的に生成できることを特徴とする請求項8に記載のシステム。
  12. 前記自動的な生成は、メニューの項目をポピュレートすること、リストビューをポピュレートすること、コンボボックスをポピュレートすることから選択された1つまたは複数を含むことを特徴とする請求項11に記載のシステム。
  13. 前記モデルプロパティはコマンドであることを特徴とする請求項8に記載のシステム。
  14. コンピュータに備えられたプロセッサが、ユーザインタフェースを記述するビューコンポーネントにおいてビューデータを含むビューからアプリケーションを作成する方法であって、前記ビューデータは少なくとも1つのビュープロパティを含み、前記方法は、
    モデルコンポーネントにおいて、機能を実現する、少なくとも1つのモデルプロパティを含むモデルデータを提供することと、
    前記ビューコンポーネント及び前記モデルコンポーネントから独立したバインディングコンポーネントにおいて、前記ビュープロパティの少なくとも1つ前記モデルプロパティの少なくとも1つへのバインディングを宣言することであって、前記バインディングコンポーネントは、前記ビューコンポーネント及び前記モデルコンポーネントをインスタンス化することなくインスタンス化されることができ、前記すべてのバインディングの宣言は前記バインディングコンポーネントによりなされること
    前記ビューコンポーネント、前記モデルコンポーネント及び前記バインディングコンポーネントから独立したアダプタ層コンポーネントを提供して変換を行なうことであって、
    を含むことを特徴とする方法。
  15. 前記バインディングを宣言することは、データバインディングエンジンを使用してバインディングを宣言することを含むことを特徴とする請求項14に記載の方法。
  16. 前記ビュープロパティの少なくとも1つ前記モデルプロパティの少なくとも1つへのバインディングを宣言することは、
    前記ビューコンポーネント、前記モデルコンポーネント、前記バインディングコンポーネントから独立したアダプタ層コンポーネントを提供して、モデルプロパティに対応するビュープロパティ、又はその逆を作成する必要があるときのみに変換を実行することであって、前記バインディングコンポーネントは前記アダプタ層コンポーネントにおける変換を参照する、ことと
    前記変換の結果としてビュー準拠モデルプロパティを得ることと、
    前記ビュー準拠モデルプロパティの前記モデルプロパティへのバインディングを宣言することと
    を含むことを特徴とする請求項14に記載の方法。
  17. 前記ビューデータは、少なくとも1つの特定のビュープロパティに基づいてユーザインタフェース要素のプレゼンテーションを記述し、前記特定のビュープロパティは、少なくとも1つの特定のモデルプロパティにバインディングされ、バインディングされることにより前記プレゼンテーションは前記少なくとも1つのモデルプロパティに基づいて前記ユーザインタフェース要素を自動的に生成できることを特徴とする請求項14に記載の方法。
  18. 前記自動的な生成は、メニューの項目をポピュレートすること、リストビューをポピュレートすること、コンボボックスをポピュレートすることから選択された1つまたは複数を含むことを特徴とする請求項17に記載の方法。
  19. 前記モデルプロパティはコマンドであることを特徴とする請求項14に記載の方法。
  20. 請求項14に記載の方法を実施するためのコンピュータ実行可能命令を備えることを特徴とするコンピュータ読取り可能記憶媒体。
JP2006038389A 2005-03-15 2006-02-15 データバインドされたリッチなアプリケーション Expired - Fee Related JP5031242B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/080,531 US20060212842A1 (en) 2005-03-15 2005-03-15 Rich data-bound application
US11/080,531 2005-03-15

Publications (2)

Publication Number Publication Date
JP2006260540A JP2006260540A (ja) 2006-09-28
JP5031242B2 true JP5031242B2 (ja) 2012-09-19

Family

ID=36579740

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006038389A Expired - Fee Related JP5031242B2 (ja) 2005-03-15 2006-02-15 データバインドされたリッチなアプリケーション

Country Status (5)

Country Link
US (1) US20060212842A1 (ja)
EP (1) EP1703381B1 (ja)
JP (1) JP5031242B2 (ja)
KR (1) KR101292401B1 (ja)
CN (1) CN1834906A (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099710B2 (en) 2006-12-14 2012-01-17 Microsoft Corporation UI behaviors
JP2008171281A (ja) * 2007-01-12 2008-07-24 Fujitsu Ltd 表示画面構成装置
CN101861576A (zh) * 2007-09-28 2010-10-13 埃克斯里昂股份公司 网络操作系统
EP2206051A2 (en) 2007-09-28 2010-07-14 Xcerion Aktiebolag Network operating system
US20090112915A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Class configuration for locally cached remote data binding
US9058483B2 (en) 2008-05-08 2015-06-16 Google Inc. Method for validating an untrusted native code module
US9176754B2 (en) * 2008-07-16 2015-11-03 Google Inc. Method and system for executing applications using native code modules
US8327332B2 (en) 2008-09-02 2012-12-04 Microsoft Corporation Seamless debugging among different application views
US9253536B2 (en) * 2009-03-18 2016-02-02 Microsoft Technology Licensing, Llc Updating data-consuming entities
US8997053B2 (en) 2010-01-14 2015-03-31 Worksoft, Inc. System and method for automated testing of software applications with dynamic user interfaces spanning multiple technologies
JP5537330B2 (ja) * 2010-08-11 2014-07-02 富士通株式会社 表示画面構成装置
US8694900B2 (en) * 2010-12-13 2014-04-08 Microsoft Corporation Static definition of unknown visual layout positions
US9529866B2 (en) * 2010-12-20 2016-12-27 Sybase, Inc. Efficiently handling large data sets on mobile devices
CN102591629A (zh) * 2011-01-18 2012-07-18 腾讯科技(深圳)有限公司 一种添加图像元件的方法和装置
US8499122B2 (en) * 2011-11-21 2013-07-30 Microsoft Corporation Asynchronous data binding
CN102722372B (zh) * 2012-05-25 2015-04-22 上海学智科技有限公司 一种通过分类配置自动生成代码的方法及系统
US9516088B2 (en) * 2012-08-29 2016-12-06 Ebay Inc. Systems and methods to consistently generate web content
US10188939B2 (en) 2014-03-11 2019-01-29 Microsoft Technology Licensing, Llc Modular construction for interacting with software
US9592443B2 (en) * 2014-03-11 2017-03-14 Microsoft Technology Licensing, Llc Data store for a modular assembly system
US9703896B2 (en) 2014-03-11 2017-07-11 Microsoft Technology Licensing, Llc Generation of custom modular objects
US9555326B2 (en) 2014-03-11 2017-01-31 Microsoft Technology Licensing, Llc Gaming system for modular toys
US10150043B2 (en) 2014-03-11 2018-12-11 Microsoft Technology Licensing, Llc Interactive smart beads
US20150286691A1 (en) * 2014-04-02 2015-10-08 Microsoft Corporation Data view exposure mechanisms
CN105988778A (zh) * 2015-01-28 2016-10-05 阿里巴巴集团控股有限公司 一种页面设置方法及装置
US9483240B1 (en) * 2015-05-27 2016-11-01 Google Inc. Data binding dependency analysis
CN104834533B (zh) * 2015-06-05 2018-12-14 东信和平科技股份有限公司 一种pc机安装程序的建立方法及装置
CN105335160B (zh) * 2015-11-10 2018-12-28 河海大学 一种基于jsf的web端组件敏捷开发方法
CN108052365B (zh) * 2017-12-19 2021-04-27 深圳市四格互联信息技术有限公司 用户界面的组件生成方法及装置
US10394627B2 (en) 2017-12-28 2019-08-27 Schneider Electric Software, Llc Asynchronous C#-JS data binding bridge
CN108549570B (zh) * 2018-04-28 2021-10-26 北京小米移动软件有限公司 用户界面的更新方法及装置
GB201914521D0 (en) * 2019-10-08 2019-11-20 Wanilla Holdings Ltd A method of and a system for user interface generation
CN114691128A (zh) * 2020-12-29 2022-07-01 苏州国双软件有限公司 一种前端页面生成方法、装置、电子设备及存储介质
US20240184541A1 (en) * 2021-03-31 2024-06-06 Siemens Ltd., China Method and Apparatus for Executing Workflow Task Across Control Objects

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255356A (en) * 1989-05-31 1993-10-19 Microsoft Corporation Method for hiding and showing spreadsheet cells
US5396587A (en) * 1990-04-11 1995-03-07 501 Lotus Development Corp. Asynchronous, minimal update display system
US5388196A (en) * 1990-09-07 1995-02-07 Xerox Corporation Hierarchical shared books with database
ATE187268T1 (de) * 1992-07-06 1999-12-15 Microsoft Corp Verfahren zur namensgebung und zur bindung von objekten
US5452459A (en) * 1993-01-08 1995-09-19 Digital Equipment Corporation Method and apparatus for allocating server access in a distributed computing environment
US5485617A (en) * 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections
US5706505A (en) * 1994-08-19 1998-01-06 Microsoft Corporation Method and system for binding data in a computer system
US5835904A (en) * 1995-10-31 1998-11-10 Microsoft Corporation System and method for implementing database cursors in a client/server environment
US6401099B1 (en) * 1996-12-06 2002-06-04 Microsoft Corporation Asynchronous binding of named objects
US6262729B1 (en) * 1997-04-14 2001-07-17 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US6378004B1 (en) * 1998-05-07 2002-04-23 Compaq Computer Corporation Method of communicating asynchronous elements from a mini-port driver
US6330006B1 (en) * 1998-05-12 2001-12-11 Silverstream Software, Inc. Method and apparatus for synchronizing an application's interface and data
US6463442B1 (en) * 1998-06-30 2002-10-08 Microsoft Corporation Container independent data binding system
US6438618B1 (en) * 1998-12-16 2002-08-20 Intel Corporation Method and device for filtering events in an event notification service
JP4000718B2 (ja) * 1999-06-24 2007-10-31 株式会社日立製作所 プログラム間バインド方法及び分散処理システム
AUPQ808700A0 (en) * 2000-06-09 2000-07-06 Honeywell Limited Human-machine interface
US7099958B2 (en) * 2000-08-15 2006-08-29 Fujitsu Limited System for designing and performing web application
GB2377784B (en) * 2001-02-12 2003-11-05 Altio Ltd A presentation server which enables a client device to run a network based application
US20020198747A1 (en) * 2001-06-26 2002-12-26 Boyer Stanley Gene Event driven airport
US6968329B1 (en) * 2001-09-26 2005-11-22 Syniverse Brience, Llc Event-driven and logic-based data transformation
TWI237354B (en) * 2002-01-31 2005-08-01 Advanced Semiconductor Eng Stacked package structure
US7028288B2 (en) * 2002-06-03 2006-04-11 Sun Microsystems, Inc. Input field constraint mechanism
CA2470177A1 (en) 2003-05-17 2004-11-17 Microsoft Corporation System and method for controlling user interface properties with data
US20060069717A1 (en) * 2003-08-27 2006-03-30 Ascential Software Corporation Security service for a services oriented architecture in a data integration platform
US7409692B2 (en) * 2003-09-30 2008-08-05 Sap Ag Software component architecture
US7469402B2 (en) * 2004-12-28 2008-12-23 Sap Aktiengesellschaft Pluggable model framework

Also Published As

Publication number Publication date
KR101292401B1 (ko) 2013-08-01
CN1834906A (zh) 2006-09-20
EP1703381A3 (en) 2008-06-25
EP1703381B1 (en) 2013-05-29
KR20060101221A (ko) 2006-09-22
JP2006260540A (ja) 2006-09-28
US20060212842A1 (en) 2006-09-21
EP1703381A2 (en) 2006-09-20

Similar Documents

Publication Publication Date Title
JP5031242B2 (ja) データバインドされたリッチなアプリケーション
US11023834B2 (en) Collaborative design systems, apparatuses, and methods
US10019239B2 (en) Systems and methods for enhancing software products through integrated development environment running on host computer
AU2004206974B2 (en) Programming interface for a computer platform
US7127702B2 (en) Application development system and method
US7404188B2 (en) Method and software for publishing a business process orchestration as a web service
CA2604449C (en) A system and method for flexible visual representation of presentation components
US8166396B2 (en) User interface rendering
US20060248451A1 (en) XML application framework
US20070220035A1 (en) Generating user interface using metadata
JP2015534145A (ja) 宣言テンプレートを使用してコントロールをスタンプアウトするためのユーザインターフェイスコントロールフレームワーク
MX2007015887A (es) Flujos de trabajos centricos de datos.
US6785880B1 (en) Tooling framework system and method for code generation
JP4702835B2 (ja) Webサービスカスタマイズシステム
JP2002366352A (ja) Webアプリケーション開発支援装置
JP2006236375A (ja) Webアプリケーション開発方法、開発支援システム、および該方法に係るプログラム
JP2007035021A (ja) サーバー装置及びデータ取得方法
US20230214191A1 (en) Workflow for computer game development
Vos et al. Connecting to Enterprise Services
Morohoshi et al. A user-friendly platform for developing and accessing grid services
Partner HABITATS Service Toolkit
Context-Aware Serenoa Framework (R2)
Hemedinger et al. The New World of SAS®: Programming with SAS® Enterprise Guide®
Collins et al. Send and Receive
EP1712994A1 (en) System and method for transformation of an application definition

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120606

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120622

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120627

R150 Certificate of patent or registration of utility model

Ref document number: 5031242

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees