CN1684034A - 用以执行命令绑定的数据绑定机制的应用 - Google Patents
用以执行命令绑定的数据绑定机制的应用 Download PDFInfo
- Publication number
- CN1684034A CN1684034A CNA2005100550943A CN200510055094A CN1684034A CN 1684034 A CN1684034 A CN 1684034A CN A2005100550943 A CNA2005100550943 A CN A2005100550943A CN 200510055094 A CN200510055094 A CN 200510055094A CN 1684034 A CN1684034 A CN 1684034A
- Authority
- CN
- China
- Prior art keywords
- binding
- order
- command
- data
- value
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
使用数据绑定引擎来执行命令绑定。数据绑定引擎把用户界面控件,诸如按键、菜单、列表框等等绑定到在应用程序模型上展现的命令。可在定义命令如何绑定于UI元素的标记语言中指定数据源和数据绑定路径。
Description
相关申请
本申请相关于律师案号为MSFT-3489/307340.1题为“Priority Binding”的专利申请。
技术领域
本发明涉及计算机处理,尤其涉及使用用于命令绑定的数据绑定机制。
背景技术
用于应用程序的代码常常被分成用于用户交互(一组“视图”或者用户界面(UI))的层,以及用于实现内部应用程序逻辑和数据管理(常通过一组“模型”实现)的层。通常用户界面包括菜单项和其它调用在模型上实现的功能的UI元素。
通常,图形设计者设计用户界面的外观,而开发者编写实现用户界面和/或底层模型的代码。图形设计和软件开发是两种很不相同的学科,而且设计者和开发者要一起颇有成果地工作常常是困难的。通常,设计者使用诸如Adobe Photoshop和Adobe Illustrator的图形工具来创建用户界面(UI)的样板,然后开发者用代码来重新实现UI。通常在最后的实现中并不使用原始的图形设计元素,而且有时部分的设计会在过程中丢失,因为开发者不能在代码中轻易地重建该设计或者没有完全理解该设计。如果改动了设计,就需要设计者重画UI而开发者可能不得不重写部分代码以匹配设计。简言之,过程是笨拙的。
在构建这种应用程序时遇到的另一问题是如何展现功能(命令)以及如何把该功能映射或绑定到UI中的元素中。例如,文本处理应用程序可展现用于剪切选定文本的功能。可把该功能展现为“命令”(例如,文档展现了一种调用“剪切”命令的方法)。需要程序代码在UI上与底层数据上所发生的事件之间作连接,即确定命令如何绑定于菜单项。
通常,采用事件处理器或命令路由来执行该任务。事件处理器提供绑定代码和UI元素的直接方法。UI元素可展现事件的声明(例如菜单项上的“点击”),而模型可实现匹配事件声明的签名的方法(例如事件处理器)。然而,该机制并不是很灵活。活动数据模型(例如上例中的活动文档)或命令状态(例如“剪切”命令变成不活动或禁用)中的变化通常需要开发者编写其它代码以连接和断开事件处理器并更新用户界面的状态。
在命令处理中需要灵活性的先进应用程序通常把标识符(ID)分配给每个关联于UI元素的命令。这种***常常具有把命令ID映射到该命令的当前活动实现的中央服务(有时称为命令管理器)。该命令管理器处理一组活动命令目标(即一组展现命令的模型)。为了执行命令,从UI把标识符发送给命令管理器,且该命令服务器找到用收到的ID处理命令的命令目标并调用该目标上的命令。不幸的是,该机制相当复杂,且难以掌握。
如果有把UI元素连接到在应用程序模型上所展现命令的简便、灵活方法,这将是有帮助的。此外,如果能使设计者和开发者的软件开发过程更简便成为可能,也将是有帮助的。
发明内容
使用数据绑定引擎来执行命令绑定。数据绑定引擎把用户界面控件,诸如按键、菜单、列表框等等绑定到在应用程序模型上展现的命令。在本发明的某些实施例中,命令绑定用标记语言来进行声明性的指定。可在定义命令如何绑定于UI元素的标记中指定数据绑定路径和数据源。
附图说明
结合附图阅读前面的发明内容和以下说明性实施例的详细描述,能得到更好的理解。为了说明本发明,在附图中示出本发明的示例性构架;然而,本发明并不限于所揭示的特定方法和装置。在附图中:
图1是示出本发明的诸方面可在其中实现的示例性计算环境的框图;
图2是根据本发明一实施例用于命令绑定的示例性***的框图;
图3是根据本发明一实施例图2的更详细框图;
图4是根据本发明一实施例图3的命令绑定***的示例性使用的框图;
图5是根据本发明一实施例命令绑定的示例性方法的流程图;以及
图6是根据本发明一方面对象的框图。
具体实施方式
纵览
假设文本处理应用程序处理众多展现用于剪切选定文本的功能的文档对象。应用程序可提供“编辑”菜单上标有“剪切”的菜单项。应用程序需要定义“剪切”命令如何绑定于菜单项和活动文档。命令绑定的传统方法是复杂的,且增加了设计者/开发者交互中固有的困难。根据本发明的某些实施例,通过使数据绑定命令路径声明性地与用户界面的元素或组件相关联、当命令属性改变时发送改变通知、以及通过对象绑定机制自动更新对象,从而降低命令绑定和路由中专门技术的复杂度和需要程度,命令绑定得以完成。
示例性计算环境
图1和以下讨论旨在提供一种本发明在其中实现的适当计算环境的简要一般说明。然而,可以理解,手持式、便携式、以及所有种类的其它计算装置可预期在本发明中使用。尽管以下所述是通用计算机,但这仅仅是一个示例,且本发明仅需要具有网络服务器互操作性和交互的瘦客户机。因而,本发明可在其中包含很少或最少客户机资源的包容网络化服务的环境中实现,例如其中客户机装置仅作为浏览器或万维网接口的网络化环境。
尽管不是必需的,本发明将通过由开发者使用和/或包括在网络浏览软件中的应用编程接口(API)来实现,该浏览软件在由一台或多台诸如客户机工作站、服务器或其它装置的计算机执行的诸如程序模块的计算机可执行指令的一般上下文中进行说明。一般,程序模块包括执行具体任务或实现具体抽象数据结构的例程、程序、对象、组件、数据结构等等。通常,在各种实施例中可按需组合或分配程序模块的功能。另外,本领域技术人员会理解,本发明在其它计算机***配置中也是可以实践的。其它适用于本发明的众所周知的计算***、环境、和/或配置包括,但不限于,个人计算机(PC)、自动取款机、服务器计算机、手持式或膝上型装置、多处理器***、基于微处理器的***、可编程电器消费品、网络PC、迷你计算机、大型机等等。本发明还可在分布式计算环境中实践,其中任务由经通信网络或其它数据传输介质连接的远程处理装置执行。在分布式计算环境中,程序模块可被置于包括存储器存储装置的本地和远程存储器存储介质中。
尽管如上所述图1示出了本发明可在其中实现的适当计算***环境100的示例,该计算***环境100仅是适当计算环境的一个示例,并非旨在提出本发明使用或功能性范围的任何限制。计算环境100也不应被解释为对示例性操作环境100中所示的任一组件或其组合有任何依赖性或任何需求。
参照图1,实现本发明的示例性***包括计算机110形式的通用计算装置。计算机110的组件可包括,但不限于,处理单元120、***存储器130以及把包括***存储器在内的各种***组件耦合到处理单元120的***总线121。***总线121可能是若干总线结构类型中的任何一种,包括存储器总线或存储器控制器、***总线、以及使用多种总线架构的任一种的本地总线。作为示例,而非限制,这些架构包括工业标准架构(ISA)总线、微信道架构(MSA)总线、扩展ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和也称为Mezzanine总线的***部件互连(PCI)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能被计算机110访问的任何可用介质,并包括易失和非易失介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现、用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失和非易失介质、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能光盘(DVD)或其它光学存储技术、磁盒、磁带、磁盘存储或其它磁性存储装置、或任何其它可用于存储所需信息并可由计算机110访问的介质。通信介质通常包括诸如载波或其它传输机制的调制数据信号中的计算机可读指令、数据结构、程序模块、或其它数据,且包括任何信息输送介质。术语“调制数据信号”意指以在信号中信息编码的方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直线连接的有线介质,和诸如声学、射频、红外线和其它无线介质的无线介质。以上任何介质的组合也应包括在计算机可读介质的范围中。
***存储器130包括诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失和/或非易失存储器形式的计算机可读介质。包含帮助计算机110如起动时在元件间传送信息的基本例程的基本输入/输出***(BIOS)133通常存储在ROM 131中。RAM 132通常包含可被处理单元120立即访问和/或现时操作的数据和/或程序模块。作为示例,而非限制,图1示出了操作***134、应用程序135、其它程序模块136、和程序数据137。
计算机110还可包括其它可移动/不可移动、易失/非易失计算机存储介质。作为示例,图1图示了读取和写入不可移动、非易失性介质的硬盘驱动器141,读取和写入可移动、非易失磁盘152的磁盘驱动器151,读取和写入可移动、非易失光盘156,诸如CD-ROM或其它光学介质的光盘驱动器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输入命令和信息。其它输入装置(未示出)可包括话筒、游戏杆、游戏垫、***、扫描仪等等。这些和其它输入装置常常通过与***总线121耦合的用户输入接口160与处理单元120相连,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)的其它接口连接。
监视器191或其它类型的显示装置也可通过诸如视频接口190的接口与***总线121相连。诸如Northbridge的图形接口182也可连接到***总线121。Northbridge是与CPU或主处理单元120通信的芯片集,并承担加速图形端口(AGP)通信的责任。一个或多个图形处理单元(GPU)184可与图形接口182通信。在这点上,GPU 184通常包括诸如寄存器存储的片内存储器存储,且GPU 184与视频存储器186进行通信。然而,GPU 184仅是协处理器的一个示例,且因而在计算机110中了包括各种协处理装置。监视器191或其它类型的显示装置也可通过诸如视频接口190的接口连接到***总线121,而该接口可与视频存储器186通信。除了监视器,计算机还可包括诸如扬声器197和打印机196的其它输出装置,它们通过输出***接口195相连。
计算机110可以在使用与一台或多台远程计算机,诸如远程计算机180的逻辑连接的网络化环境中运行。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等装置或其它公共网络节点,而且通常包括上述与个人计算机110相关的许多或全部组件,尽管在图1中仅图示了存储器存储装置181。图1中所描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这样的网络化环境在办公室、企业范围计算机网络、企业内部互联网和因特网上是常见的。
当用于LAN网络化环境中时,计算机110通过网络接口或适配器170与局域网171连接。当用于WAN网络化环境中时,计算机110通常包括调制解调器172或其它用于在广域网173,诸如因特网中建立通信的装置。可以是内置式或外置式的调制解调器172与***总线121通过用户输入接口160或其它适当机制连接。在网络化环境中,与计算机110相关的程序模块或其一部分可存储在远程存储器存储装置中。作为示例,而非限制,图1示出了驻留于远程计算机180中的远程应用程序185。应当理解,所示网络连接是示例性的,且也可以使用其它用于在计算机间建立通信连接的技术。
本领域普通技术人员能理解计算机110或其它客户机装置可被配置为计算机网络的一部分。在这点上,本发明适合具有任何数量存储器或存储单元的任何计算机***,以及发生在任何数量的存储单元或存储体上的任何数量的应用程序和过程。本发明可应用于带有在网络环境中配置的具有远程或本地存储器的服务器计算机和客户机计算机的环境。本发明也可应用于具有编程语言功能、解释和执行能力的单机计算装置。
使用用于命令绑定的数据绑定机制的***和方法
图2示出了根据本发明某些实施例用于使用数据绑定机制以执行命令绑定的示例性***。这样的***可整个地或部分地驻留于诸如图2示例性计算机202的一台或多台计算机中。计算机202可包括诸如参照图1所述计算机110的计算机。使用数据绑定引擎以路由命令的***可包括以下元素的一个或多个:数据绑定组件208、来源206、以及目标203。
在本发明的某些实施例中,数据绑定组件208是使源对象(例如示例性源对象210a、210b等等)的命令对象212a能够动态绑定于目标对象(例如示例性目标对象204a、204b等等)的数据绑定引擎208。数据绑定引擎可收听对象上的属性改变通知,从而对源对象命令属性的改变自动地反射在相关联的目标对象属性上,反之亦然。目标对象可与标识目标对象所绑定的源相关联。数据绑定引擎可支持属性路径的估算以使目标的特定部分能绑定到源的特定部分上。在本发明的某些实施例中,说明性地可用诸如HTML(超文本链接标记语言)、XML(可扩展标记语言)、XAML(可扩展应用标记语言)或其它适当标记语言的标记语言来完成目标对象属性对源对象命令属性的绑定。数据绑定引擎可搜索目标对象数据源上的源对象命令属性,并执行适当的更新。
在本发明的某些实施例中,产生面向对象对象的图表,其中一个、某些、或全部对象指向其它对象从而形成其中每个从一个对象指向另一个对象的箭头代表一个属性的图表。面向对象对象的示例性图表如图6所示。在图6中,对象602代表文档管理器对象,对象604和606代表文档对象,而对象608代表“剪切”命令(CutCommand)。图6中,活动文档是文档对象606(由实线603标注表示活动文档Active Document属性)。可以理解,本发明所期望的并不限于这些对象和命令。可作用于任何适当对象和命令。当然,本发明所期望的并不限于面向对象编程语言环境中的对象,且可同样地应用于任何数据源和属性的分层结构。在本发明的某些实施例中,数据绑定引擎208使能数据源(对象602)和属性路径的指定,诸如表示从对象602到对象606到对象608的路径的“ActiveDocument.CutCommand”(活动文档.剪切命令)。数据绑定引擎208可查询表示运行程序中“活动”对象的对象图表,以动态地确定哪个对象由路径“ActiveDocument.CutCommand”(在此情形中为对象608)表示。
再看图2,源206可包括如源对象210a、210b等等所表示的一个或多个源对象。源对象210a、210b等等可与图2中源命令对象212a等表示的一个或多个源命令对象相关联。在本发明某些实施例中,源206可表示一个模型。本发明某些实施例中的模型是代表底层状态集合的底层应用逻辑。例如,考虑使用户能对用户***进行资源管理的应用程序。在此情形中该应用程序的模型可能是文件***:选定目录的文件夹中的文件夹和文件集。可把众多视图绑定到一个模型上。这些绑定到模型的视图可取决于该模型。然而,在本发明某些实施例中,模型与视图无关。如果一个对象上的属性改变或者状态改变发生,模型可发送改变通知。例如,如果把新文件添加到文件夹中,可发送改变通知。
源对象210a、210b等等可与源命令对象212a等表示的一个或多个源命令对象相关联。在本发明某些实施例中,命令对象是关联于执行方法的对象(即命令对象是可执行对象)并具有状态。在本发明某些实施例中关联于命令对象的状态是表示是否执行该命令的,即该命令是活动(使能)的还是不活动(禁止)的布尔值。命令的示例包括但不限于“打开文档”、“剪切选定文档”等等。
目标203可包括如图2目标对象204a、204b等等所表示的一个或多个目标对象。在本发明某些实施例中,目标可以是视图或用户界面。一个或多个视图可绑定于模型上,并显示底层模型的状态。在本发明某些实施例中,视图或用户界面可用诸如HTML(超文本链接标记语言)、XML(可扩展标记语言)、XAML(可扩展应用标记语言)或其它适当标记语言的标记语言来定义,在标记语言中定义用户界面的视图并定义用户界面的元素或组件。目标对象可以是用户界面元素或控件,诸如但不限于菜单项、按钮或列表框。在上述的文件***示例中,示例性用户界面可显示选定目录的文件夹中的当前文件列表。
在本发明某些实施例中,为了把用户界面绑定到底层模型,不是通过分配ID和调用目录管理器来使用事件处理器对绑定进行显式定义或者间接地把用户界面组件关联到底层模型,而是通过参照图6如上所述地指定数据源对象和查询路径,将代表用户界面组件的对象绑定于底层模型对象。如果查询的任何部分改变,由对象发送改变通知,而数据绑定引擎检测改变通知并更新适当对象。可以理解被查询的主题是运行程序中的活动对象。
图3是图2***的更详细框图。在图3中,数据绑定引擎320可把源对象(模型324的一部分)上的命令属性322绑定到目标对象(例如UI组件330)上的属性中。数据绑定引擎320可收听属性改变通知(模型属性322的通知326、UI属性334的通知328)并自动使源324和目标330同步。目标330(例如UI组件)可关联于用作目标330绑定源的数据源332。
在本发明某些实施例中,要绑定的UI属性334是命令对象的信宿或目标属性,而要绑定的命令属性322是模型上的命令属性。示例的非限制目标属性可以是例如“ClickCommand”(点击命令)。在本发明某些实施例中,通过把模型324分配为数据源并把UI组件上的属性334数据绑定到模型上的命令属性322,来完成命令绑定。在某些实施例中不需要任何程序代码,绑定就可以说明性地完成。示例性说明语句可以是:
<MenuItem ClickCommand=″*Bind(DataSource=model,Path=DocumentManager.ActiveDocument.CutCommand)″/>
该语句意思是关联于菜单项“ClickCommand”的数据源是对象“模型”,且要关联于ClickCommand的对象是活动文档上的CutCommand属性。UI无需编写代码就可在标记的UI设计工具中或在设计工具之外创建。或者,可通过编写代码来获得同样的结果。
在本发明某些实施例中,命令对象可与展现为属性的附加状态相关联。示例包括但不限于IsEnabled、要显示给用户的文本名、关键绑定或图标。状态可由开发者显式提供或从应用的其它属性计算或推导而来。在本发明某些实施例中,目标对象知道如何处理这些属性(例如,菜单项对命令对象的IsEnabled属性设定其激活状态并更新其视觉显示、菜单项把显示给用户的文本更新为命令对象上的Text文本属性)。命令对象提供对这些属性的改变通知。目标对象收听改变通知,并在有改变通知情形中更新其属性和显示。不是命令对象上的所有属性需要是目标对象已知的。
在本发明某些实施例中,目标对象没有隐式地处理某些状态属性。在此情形中,数据绑定被用以把命令对象上的已知属性绑定到目标对象上的已知属性上:<MenuItem Text=”*Bind(Path=DocumentManager.ActiveDocument.CutCommand.Text”/>。
在本发明某些实施例中,命令对象是无状态的且完全不提供属性。状态属性仍能由模型提供,并使用数据绑定绑定到目标元素上。
在本发明某些实施例中,无状态命令可通过提供模型上的方法并绑定于该方法(而不是命令对象)来实现。
<MenuItem Click=”*Bind(Path=ActiveDocument.Copy)”Enabled=”*Bind(Path=ActiveDocument.CanCopy”)/>
在此情形中不需要命令对象。Cancopy状态由模型提供并使用数据绑定来绑定Copy()方法。
图4示出了根据本发明某些实施例其中可采用用于命令绑定的***的典型情景。考虑处理多个文档408、410等等(其中之一为活动文档,即文档410)的应用程序。文档管理器404(模型的一部分)可展现活动文档的属性。文档对象408、410等等(模型的一部分)可把编辑命令(例如命令对象412)展现为可选择的属性。在某些实施例中使用通过用户界面上的按钮402先处理活动文档410再选择活动文档上编辑命令的属性路径来完成说明性绑定。示例性说明性绑定语句可以是:
<MenuItem ClickCommand=″*Bind(Path=DocumentManager.ActiveDocument.CutCommand)″/>
或者:
<MenuItem ClickCommand=″*Bind(Path=DocumentManager.ActiveDocument.CopyCommand)″/>
或者:
<MenuItem ClickCommand=″*Bind(Path=DocumentManager.ActiveDocument.PasteCommand)″/>
在某些实施例中文档管理器404可提供对活动文档410属性的任何改变的改变通知(例如用户改变了活动文档)。改变通知由数据绑定引擎406检测,且把命令重新绑定到活动文档中。要注意的是,在本发明某些实施例中,无需编写程序代码就可说明性地获得以上结果。不需要对命令管理的服务。
在本发明某些实施例中,可将不是命令属性的任意属性绑定到菜单项中。例如,可把模型上的布尔属性绑定到复选框菜单项上。在本发明某些实施例中,复选框UI组件可展现用作目标属性的诸如“IsChecked”的属性。类似地,可将对象列表绑定到特定的列表框菜单项以处理诸如但不限于“最近使用的”文件列表的情景。
图5示出了根据本发明一实施例指定并执行命令绑定的方法的示例性流程图。该方法的一个或多个步骤是可选的。在图5中,在步骤502接收源定义。这可涉及模型或应用的编码和/或例示。例如,开发者可实现模型,展现要绑定的一个或多个属性。在步骤504,接收目标定义。这可涉及在诸如用户界面的目标的代码或标记中的指定和/或用户界面的例示。例如,设计者可用标记语言来创建用户界面或者开发者可用代码来创建用户界面。在步骤506可接收命令绑定语句。这可涉及如上所述目标和源之间数据连接的编码(例如由开发者)或者标记中命令绑定语句的指定(例如由设计者)。在本发明某些实施例中,可把命令绑定语句的指定结合到目标的定义中去(步骤504)。
在步骤508,可产生和/或例示包括模型和用户界面的应用程序。绑定引擎可在模型的路径上收听,并估算命令绑定语句。如果命令绑定语句估算成功,可如上所述使目标和模型同步。在本发明某些实施例中,可提供一个或多个命令绑定语句。通过如上所述说明性地向源分配一个或多个数据绑定命令路径和数据源,可完成命令绑定。在本发明某些实施例中,命令路径和数据源可用诸如HTML、XML、XAML、或另一适当标记语言的标记语言进行说明性的定义。可对模型的路径进行连续监视以发现改变通知。可从指示命令属性已改变的命令对象接收改变通知。在本发明某些实施例中,改变通知由命令对象发送并由数据绑定引擎检测。如果收到改变通知,可重新估算命令绑定语句且使源和目标同步,如上所述。在某些实施例中,数据绑定引擎查询对象图表以找到由数据源和数据路径指示的对象,且数据绑定引擎通过一般对象绑定机制来自动更新目标。
在此所述的各种技术可结合硬件或软件,或在适当时结合两者的组合来实现。因而,本发明的方法和装置,或者其中的某些方面和部分,可取诸如软盘、CD-ROM、硬盘驱动器、或任何其它机器可读存储介质的有形介质中包含程序代码(即指令)形式,其中当程序代码由诸如计算机的机器载入并执行时,该机器成为用于实践本发明的装置。在可编程计算机上的程序代码执行情形中,计算装置通常包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元素)、至少一个输入设备、和至少一个输出设备。可利用本发明的领域专用编程模型方面的创建和/或实现的一个或多个程序,例如通过使用数据处理API等等,更适宜用高级过程化或面向对象的编程语言来实现以与计算机***进行通信。然而,如果需要,也可用汇编或机器语言来实现程序。在任何情形中,语言可以是编译或解释语言,并与硬件实现相结合。
尽管本发明已结合各种情形的优选实施例进行了描述,要理解可使用其它类似实施例,或者可对所述实施例作更改和添加用于执行本发明的***功能,而没有偏离本发明。因此,不应把本发明限制在任一单个实施例中,而应当根据所附权利要求在广度和范围中进行解释。
Claims (38)
1.一种用于在源和目标之间绑定命令的***,其特征在于,包括数据绑定引擎,所述数据绑定引擎接收把命令映射到所述目标的元素上的至少一个绑定语句、估算所述至少一个绑定语句、并把所述目标元素更新为关联于所述命令的值。
2.如权利要求1所述的***,其特征在于,所述命令是命令对象。
3.如权利要求1所述的***,其特征在于,所述命令与状态相关联。
4.如权利要求3所述的***,其特征在于,所述命令状态从所述源导出。
5.如权利要求3所述的***,其特征在于,所述命令状态与能够执行相关联。
6.如权利要求3所述的***,其特征在于,所述命令状态与不能执行相关联。
7.如权利要求1所述的***,其特征在于,所述命令是无状态的。
8.如权利要求1所述的***,其特征在于,所述命令是方法。
9.如权利要求1所述的***,其特征在于,所述至少一个绑定语句包括说明性标记语言的语句。
10.如权利要求9所述的***,其特征在于,所述说明性标记语言包括HTML、XML、或者XAML。
11.如权利要求1所述的***,其特征在于,所述至少一个绑定语句包括数据源的指示。
12.如权利要求1所述的***,其特征在于,所述至少一个绑定语句包括绑定路径。
13.如权利要求1所述的***,其特征在于,所述数据绑定引擎查询包括至少第一对象和第二对象的对象图表,其中所述第一对象指向所述第二对象。
14.如权利要求13所述的***,其特征在于,所述第二对象是命令对象。
15.如权利要求1所述的***,其特征在于,所述命令包括关联于可执行方法的对象,以及与关联于所述命令对象的执行方法能执行或不能执行相关联的布尔状态。
16.如权利要求1所述的***,其特征在于,所述目标是用户界面。
17.如权利要求1所述的***,其特征在于,所述源包括底层应用程序的状态集合。
18.一种用于把命令映射到目标的方法,其特征在于,包括:
接收定义所述命令和所述目标之间映射的至少一个绑定语句;
确定所述命令的值;以及
把所述目标更新为所述命令的值。
19.如权利要求18所述的方法,其特征在于,响应于对所述至少一个绑定语句估算失败的确定,将命令的值设定为无效。
20.如权利要求18所述的方法,其特征在于,响应于对所述至少一个绑定语句估算失败的确定,将命令的值设定为缺省值。
21.如权利要求18所述的方法,其特征在于,响应于对所述命令值为无效的确定,所述目标被禁止。
22.如权利要求18所述的方法,其特征在于,所述命令是关联于状态的对象。
23.如权利要求18所述的方法,其特征在于,所述命令状态从数据源导出。
24.如权利要求22所述的方法,其特征在于,所述命令状态与执行的能力相关联。
25.如权利要求18所述的方法,其特征在于,所述命令是无状态的。
26.如权利要求18所述的方法,其特征在于,所述命令是方法。
27.如权利要求18所述的方法,其特征在于,还包括监视包括数据源的对象集以发现改变通知。
28.如权利要求27所述的方法,其特征在于,还包括响应于检测所述改变通知,查询所述数据源的对象的图表以确定所述命令的经更新值。
29.如权利要求28所述的方法,其特征在于,还包括把所述命令映射的目标更新为所述命令更新值。
30.如权利要求18所述的方法,其特征在于,所述至少一个绑定语句包括标记语言的说明性语句。
31.如权利要求30所述的方法,其特征在于,所述标记语言是HTML。
32.如权利要求30所述的方法,其特征在于,所述标记语言是XML。
33.如权利要求30所述的方法,其特征在于,所述标记语言是XAML。
34.如权利要求18所述的方法,其特征在于,所述目标是用户界面的元素。
35.一种包括计算机可执行指令的计算机可读介质,其特征在于,所述可执行指令用于:
接收定义在数据源命令与用户界面元素之间映射的至少一个绑定语句;
确定所述命令的值;以及
把所述用户界面的元素更新为所述命令的值。
36.如权利要求35所述的计算机可读介质,其特征在于,还包括用于监视包括所述数据源的对象集的计算机可执行指令以发现改变通知。
37.如权利要求36所述的计算机可读介质,其特征在于,还包括计算机可执行指令,用于:
检测所述改变通知;以及
查询所述数据源的对象的图表以确定所述命令的经更新值。
38.如权利要求37所述的计算机可读介质,其特征在于,还包括用于把关联于所述命令的所述用户界面元素更新为所述命令的经更新值的计算机可执行指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/822,910 | 2004-04-13 | ||
US10/822,910 US7653880B2 (en) | 2004-04-13 | 2004-04-13 | Application of data-binding mechanism to perform command binding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1684034A true CN1684034A (zh) | 2005-10-19 |
Family
ID=34939141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005100550943A Pending CN1684034A (zh) | 2004-04-13 | 2005-03-11 | 用以执行命令绑定的数据绑定机制的应用 |
Country Status (11)
Country | Link |
---|---|
US (1) | US7653880B2 (zh) |
EP (1) | EP1586994B1 (zh) |
JP (1) | JP2005301993A (zh) |
KR (1) | KR100986415B1 (zh) |
CN (1) | CN1684034A (zh) |
AU (1) | AU2005200700B2 (zh) |
BR (1) | BRPI0500787A (zh) |
CA (1) | CA2498695A1 (zh) |
ES (1) | ES2676739T3 (zh) |
MX (1) | MXPA05002947A (zh) |
RU (1) | RU2398266C2 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101971143A (zh) * | 2008-02-05 | 2011-02-09 | 奥多比公司 | 应用组件之间的自动连接 |
CN102124445A (zh) * | 2008-07-28 | 2011-07-13 | Abb研究有限公司 | 用于针对自动化过程创建hmi应用的方法和*** |
CN102937897A (zh) * | 2011-11-21 | 2013-02-20 | 微软公司 | 异步数据绑定 |
CN105144091A (zh) * | 2013-03-13 | 2015-12-09 | 微软技术许可有限责任公司 | 针对基于程序的命令行的用户界面模型生成 |
CN105334808A (zh) * | 2014-06-26 | 2016-02-17 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 半导体设备的数据处理方法及*** |
CN106227553A (zh) * | 2011-02-15 | 2016-12-14 | 微软技术许可有限责任公司 | 用于描述并执行图形用户界面中的管理任务的数据驱动模式 |
CN107430590A (zh) * | 2015-01-12 | 2017-12-01 | 安提特软件有限责任公司 | 数据比较 |
CN107479982A (zh) * | 2017-07-03 | 2017-12-15 | 福建网龙计算机网络信息技术有限公司 | 一种数据同步的方法及终端 |
CN108427689A (zh) * | 2017-02-15 | 2018-08-21 | 北京国双科技有限公司 | 信息获取方法和装置 |
CN109840088A (zh) * | 2018-12-29 | 2019-06-04 | 深圳市梦域科技有限公司 | 一种开发框架设计的方法及装置 |
CN111819535A (zh) * | 2017-12-28 | 2020-10-23 | 阿韦瓦软件有限责任公司 | 异步c#-js数据绑定桥 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7831918B2 (en) * | 2005-09-12 | 2010-11-09 | Microsoft Corporation | Content based user interface design |
US8566781B2 (en) * | 2007-04-23 | 2013-10-22 | Siemens Aktiengesellschaft | Model-based view parts and reusable data source configurations |
US7950027B2 (en) * | 2007-06-15 | 2011-05-24 | Microsoft Corporation | Mutable application experience and user interface |
US20080320408A1 (en) * | 2007-06-21 | 2008-12-25 | Dziezanowski Joseph J | Devices, Systems, and Methods Regarding Machine Vision User Interfaces |
US8156467B2 (en) | 2007-08-27 | 2012-04-10 | Adobe Systems Incorporated | Reusing components in a running application |
US20090320004A1 (en) * | 2007-11-02 | 2009-12-24 | Kirk Fertitta | Test Instrument Graphical User Interface |
US20090199112A1 (en) * | 2008-02-04 | 2009-08-06 | Deserranno Allen | Simplified opc to wpf xaml binding method |
US8656293B1 (en) | 2008-07-29 | 2014-02-18 | Adobe Systems Incorporated | Configuring mobile devices |
US8887074B2 (en) * | 2011-02-16 | 2014-11-11 | Apple Inc. | Rigging parameters to create effects and animation |
US20130055200A1 (en) * | 2011-08-30 | 2013-02-28 | Microsoft Corporation | Application interface for object build information |
US9015608B2 (en) * | 2012-07-16 | 2015-04-21 | Sap Se | Regenerating a user interface area |
US8924848B2 (en) * | 2012-07-16 | 2014-12-30 | Sap Se | Synchronizing a user interface area |
WO2014117387A1 (en) * | 2013-02-01 | 2014-08-07 | Hewlett-Packard Development Company, L.P. | Test script creation based on abstract test user controls |
US10359914B2 (en) | 2014-11-25 | 2019-07-23 | Sap Se | Dynamic data source binding |
US9984105B2 (en) * | 2014-12-04 | 2018-05-29 | International Business Machines Corporation | Automatic discovery of code and data stores that populate a user interface element |
US9483240B1 (en) | 2015-05-27 | 2016-11-01 | Google Inc. | Data binding dependency analysis |
CN105302552B (zh) * | 2015-10-21 | 2018-09-07 | 浪潮(北京)电子信息产业有限公司 | 一种用户界面视图扩展方法和装置 |
US10705893B1 (en) | 2019-02-22 | 2020-07-07 | Hewlett Packard Enterprise Development Lp | Command line interface modifications |
US11055073B2 (en) | 2019-04-08 | 2021-07-06 | Citrix Systems, Inc. | Transforming validated user interface layouts using inter-platform design mapping data |
CN112817779A (zh) * | 2021-01-29 | 2021-05-18 | 京东方科技集团股份有限公司 | 组件化应用程序通信方法、装置、设备及介质 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5083262A (en) * | 1986-04-28 | 1992-01-21 | International Business Machines Corporation | Language bindings for graphics functions to enable one application program to be used in different processing environments |
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 |
EP0930566A3 (en) | 1992-07-06 | 2006-07-05 | Microsoft Corporation | Method and system for composing objects |
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 |
US6167455A (en) * | 1995-05-05 | 2000-12-26 | Apple Computer, Inc. | Method and system for synchronous operation of linked command objects |
US5872973A (en) | 1995-10-26 | 1999-02-16 | Viewsoft, Inc. | Method for managing dynamic relations between objects in dynamic object-oriented languages |
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 |
US6826759B2 (en) * | 1997-04-01 | 2004-11-30 | Sun Microsystems, Inc. | Method and apparatus for discovering and activating software components |
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 |
US6429882B1 (en) * | 1999-03-15 | 2002-08-06 | Sun Microsystems, Inc. | User interface component |
US6571253B1 (en) | 2000-04-28 | 2003-05-27 | International Business Machines Corporation | Hierarchical view of data binding between display elements that are organized in a hierarchical structure to a data store that is also organized in a hierarchical structure |
US7099958B2 (en) * | 2000-08-15 | 2006-08-29 | Fujitsu Limited | System for designing and performing web application |
-
2004
- 2004-04-13 US US10/822,910 patent/US7653880B2/en active Active
-
2005
- 2005-02-16 AU AU2005200700A patent/AU2005200700B2/en not_active Ceased
- 2005-02-22 KR KR1020050014662A patent/KR100986415B1/ko active IP Right Grant
- 2005-02-22 JP JP2005045562A patent/JP2005301993A/ja active Pending
- 2005-02-28 CA CA002498695A patent/CA2498695A1/en not_active Abandoned
- 2005-03-01 RU RU2005105754/09A patent/RU2398266C2/ru not_active IP Right Cessation
- 2005-03-03 BR BR0500787-9A patent/BRPI0500787A/pt not_active IP Right Cessation
- 2005-03-11 CN CNA2005100550943A patent/CN1684034A/zh active Pending
- 2005-03-16 MX MXPA05002947A patent/MXPA05002947A/es active IP Right Grant
- 2005-04-05 ES ES05102665.6T patent/ES2676739T3/es active Active
- 2005-04-05 EP EP05102665.6A patent/EP1586994B1/en active Active
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101971143A (zh) * | 2008-02-05 | 2011-02-09 | 奥多比公司 | 应用组件之间的自动连接 |
US9619304B2 (en) | 2008-02-05 | 2017-04-11 | Adobe Systems Incorporated | Automatic connections between application components |
CN101971143B (zh) * | 2008-02-05 | 2013-08-28 | 奥多比公司 | 用于应用组件之间的自动连接的方法和设备 |
CN102124445A (zh) * | 2008-07-28 | 2011-07-13 | Abb研究有限公司 | 用于针对自动化过程创建hmi应用的方法和*** |
CN102124445B (zh) * | 2008-07-28 | 2014-02-05 | Abb研究有限公司 | 用于针对自动化过程创建hmi应用的方法和*** |
CN106227553A (zh) * | 2011-02-15 | 2016-12-14 | 微软技术许可有限责任公司 | 用于描述并执行图形用户界面中的管理任务的数据驱动模式 |
CN106227553B (zh) * | 2011-02-15 | 2019-10-01 | 微软技术许可有限责任公司 | 用于描述并执行图形用户界面中的管理任务的数据驱动模式 |
CN102937897A (zh) * | 2011-11-21 | 2013-02-20 | 微软公司 | 异步数据绑定 |
CN102937897B (zh) * | 2011-11-21 | 2016-07-06 | 微软技术许可有限责任公司 | 异步数据绑定 |
CN105144091A (zh) * | 2013-03-13 | 2015-12-09 | 微软技术许可有限责任公司 | 针对基于程序的命令行的用户界面模型生成 |
CN105144091B (zh) * | 2013-03-13 | 2019-07-26 | 微软技术许可有限责任公司 | 针对基于程序的命令行的用户界面模型生成 |
CN105334808A (zh) * | 2014-06-26 | 2016-02-17 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 半导体设备的数据处理方法及*** |
CN107430590A (zh) * | 2015-01-12 | 2017-12-01 | 安提特软件有限责任公司 | 数据比较 |
US10719482B2 (en) | 2015-01-12 | 2020-07-21 | Micro Focus Llc | Data comparison |
CN108427689A (zh) * | 2017-02-15 | 2018-08-21 | 北京国双科技有限公司 | 信息获取方法和装置 |
CN107479982A (zh) * | 2017-07-03 | 2017-12-15 | 福建网龙计算机网络信息技术有限公司 | 一种数据同步的方法及终端 |
CN107479982B (zh) * | 2017-07-03 | 2020-01-31 | 福建网龙计算机网络信息技术有限公司 | 一种数据同步的方法及终端 |
CN111819535A (zh) * | 2017-12-28 | 2020-10-23 | 阿韦瓦软件有限责任公司 | 异步c#-js数据绑定桥 |
CN109840088A (zh) * | 2018-12-29 | 2019-06-04 | 深圳市梦域科技有限公司 | 一种开发框架设计的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US7653880B2 (en) | 2010-01-26 |
EP1586994A2 (en) | 2005-10-19 |
EP1586994A3 (en) | 2007-10-10 |
RU2005105754A (ru) | 2006-08-10 |
AU2005200700B2 (en) | 2010-02-18 |
KR20060043087A (ko) | 2006-05-15 |
JP2005301993A (ja) | 2005-10-27 |
BRPI0500787A (pt) | 2005-11-16 |
KR100986415B1 (ko) | 2010-10-08 |
EP1586994B1 (en) | 2018-05-23 |
RU2398266C2 (ru) | 2010-08-27 |
MXPA05002947A (es) | 2005-10-17 |
CA2498695A1 (en) | 2005-10-13 |
ES2676739T3 (es) | 2018-07-24 |
AU2005200700A1 (en) | 2005-10-27 |
US20050229190A1 (en) | 2005-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1684034A (zh) | 用以执行命令绑定的数据绑定机制的应用 | |
US11762634B2 (en) | Systems and methods for seamlessly integrating multiple products by using a common visual modeler | |
US9696972B2 (en) | Method and apparatus for updating a web-based user interface | |
US9619304B2 (en) | Automatic connections between application components | |
US9887873B2 (en) | Custom rendering of web pages based on web page requests | |
KR101292401B1 (ko) | 풍부한 데이터 바인딩된 애플리케이션 | |
Meier | Professional Android 4 application development | |
KR101645052B1 (ko) | 디버깅 파이프라인 | |
US9092298B2 (en) | Packaging content updates | |
EP2369480A2 (en) | Mashup infrastructure with learning mechanism | |
US20110010613A1 (en) | System and method for building mixed mode execution environment for component applications | |
US7266370B2 (en) | System and method for developing and deploying device independent applications | |
US9277033B2 (en) | Server for communicating with multi-mode devices using multi-mode applications | |
CN103336705A (zh) | 脚本处理和工作流***间的自动转码和语义自适应 | |
RU2405190C2 (ru) | Приоритетное связывание | |
KR101907837B1 (ko) | 애플리케이션 활성화 프레임워크 | |
JP2009054151A (ja) | 通信メッセージ・インスタンス投入方法、データ・インスタンス投入方法、通信メッセージ・インスタンス投入装置、および、コンピュータ読取可能媒体 | |
EP2951678B1 (en) | Remotely executing operations of an application using a schema that provides for executable scripts in a nodal hierarchy | |
KR20210144045A (ko) | 마이크로서비스 아키텍처 애플리케이션 실행 시스템과 방법 및 이를 위한 컴퓨터 프로그램 | |
US9430222B2 (en) | Controlling a running application for live scene graph editing | |
CN111625221B (zh) | 应用于集成开发环境的版本控制方法、装置及设备和介质 | |
JP2017522639A (ja) | 開発システムにおける意味論的なコンテンツアクセス | |
US20070006121A1 (en) | Development activity recipe | |
US9425988B2 (en) | Device for communicating in multiple modes using multi-mode applications | |
CN112445473A (zh) | 客户端布局方法与装置、存储介质、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20051019 |