独立于平台的呈现合成的制作方法

文档序号:6360183阅读:216来源:国知局
专利名称:独立于平台的呈现合成的制作方法
独立于平台的呈现合成背景用户体验(UX)的质量是基于该UX有多好地与用户期望相符合。由于必须处理许多数据类型、许多数据源以及许多UX平台,设计者必须从不吸引人的方式中作出选择,这些不吸引人的方式包括针对消费来自针对特定UX平台的数据源的特定数据的特定人写呈现代码,或提供不满足任何单个人的需求的广泛定标的UX。例如,现有的UX合成系统(诸如HTML (超文本标记语言)、XAML(可扩展的应用标记语言)以及XSLT (可扩展的样式表语言转换))被设计使得针对特定平台开发标记代码。如果开发者想要代码在多个平台上工作,则在该代码中要构建自定义逻辑来处理平台差异。此外,现有的UX合成系统要求针对每个数据接口元素来显式地定义特定的呈现。允许基于UX元素表示的底层数据结构来动态生成这些UX元素的功能被限制到不存在,尤其在数据结构是复杂和/或可继承的情况下。
作为这些限制的结果,对大众市场(例如,电子邮件)可能已经服务,但是对较小的用户团体(例如,交换管理员或CRM (顾客关系管理)服务拥有者)可能是服务不周的。概述下面提供了简化的概述,以便提供对此处所描述的一些新颖实施例的基本理解。本概述不是广泛的概览,并且它不旨在标识关键/重要元素或描绘本发明的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更详细描述的序言。公开的体系结构包括独立于平台的配置驱动的呈现合成引擎。该合成引擎允许基于数据契约来动态生成多平台用户体验(UX)。通过合成,用户可选择部件、交互以及交互和部件之间的限制,以及相对于彼此的放置。UX是从针对特定数据类的组件中动态地合成的。在运行时,基于合成主机的执行平台,依赖于平台的组件实现被该引擎自动地选择。公开的体系结构允许用户创建或自定义UX,而不需要从多个可访问在许多平台上工作的许多数据源的呈现插件(widget)合成来书写代码。合成是针对数据类和呈现类型两者的,并可被预先定义或生成。为了实现上述及相关目的,本文结合下面的描述和附图来描述某些说明性方面。这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。结合附图阅读下面的详细描述,其它优点和新颖特征将变得显而易见。附图简述图I示出了根据所公开的体系结构的可视化系统。图2示出了根据所公开的体系结构的替换的可视化系统。图3示出了由合成引擎所合成的示例性合成。图4示出了包括合成系统的数据上下文和基于视觉的组件的父组件。图5示出了组件定义。图6示出了用于找到或选择组件的组件注册表。
图7示出了在合成引擎中表示变量的使用的声明性图。图8示出了根据所公开的体系结构的可视化方法。图9示出图8的方法的其它方面。

图10示出了替换的可视化方法。图11示出图10的方法的其它方面。图12示出了用于获取合成引擎中的组件的方法。图13示出了用于获取合成引擎中的组件的更详细的方法。图14示出了执行根据所公开的体系结构的合成的计算系统的框图。详细描述 公开的体系结构是呈现合成引擎。该合成引擎是被展示为一组服务的一般的合成框架,该合成框架允许用户将不同的组件以及一个或多个组件的合成(该引擎的输出合成)“粘合”(合成)在一起。通过合成,用户可选择部件、交互以及交互和部件之间的限制,以及部件相对于彼此的放置。该引擎是针对Π (用户界面)和非Π组件两者的呈现中立(presentation-neutral)框架。组件是合成引擎的Π声明的最小可重用构建块,并且它是可由名称标识的以及任选地,针对数据类型。组件可以是基本组件(单元组件)或容器组件(合成组件)。数据上下文是组件的目标数据的实例。换言之,数据上下文是表示与组件相关联的数据的名称/值对集。数据上下文条目支持更改通知,并且合成可发起更改和/或监听由其它合成发起的更改。合成引擎将特定主机的组件组装成独立于平台的用户体验。虚拟化主机是特定平台(运行时)的合成的执行环境。合成是针对数据类和呈现类型两者的,并可被预先定义或生成。尽管可以存在多个经合成的组件,但是组件链在具体的基本组件(例如,TextBox (文本框)控件、数据库查询组件等)处结束。合成引擎允许基于数据契约来动态生成多平台UX (用户体验)。UX是从针对特定数据类的组件中动态地合成的。在运行时,基于合成主机的执行平台,依赖于平台的组件实现被该引擎自动地选择。现在将参考附图,全部附图中相同的附图标记用于指代相同的元素。在下面的描述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理解。然而,显而易见,可以没有这些具体细节的情况下实施各新颖实施例。在其他情况下,以框图形式示出了各个公知的结构和设备以便于描述本发明。本发明将涵盖落入所要求保护的主题的精神和范围内的所有修改、等效方案和替换方案。图I示出了根据所公开的体系结构的可视化系统100。该系统100包括存储定义的存储102,存储定义包括针对组件和与用户体验相关联的数据的组件定义104和数据定义106。组件定义104可包括针对基本组件、容器组件以及基本和容器组件的合成的定义。通过这种方式,一现有的组件的合成可容易地用于动态选择和合成到输出组件110中。合成引擎108基于存储定义来自动地且声明性地合成输出组件110的实例。输出组件是特定于不同主机112的可视化主机的用户体验的。输出组件110包括基本组件、容器组件、或基本和容器组件的组合。输出组件110是基于用户体验的目标数据类型来合成的。系统100还可包括组件注册表,通过该注册表可基于目标数据类型来搜索组件。输出组件将相关联的组件属性绑定到数据上下文元素以链接子组件。合成引擎108包括全局变量,这些全局变量使得能够在无关的数据上下文中的输出组件之间进行数据交换。图2示出了根据所公开的体系结构的替换的可视化系统200。系统200包括图I的系统100的各实体,以及数据上下文202、个性化(私有)覆盖204以及组件实现206。输出组件110可基于数据上下文202而非现有的组件定义来合成。S卩,基于数据,自定义的组件可被创建并完全基于上下文数据202 (目标UX中数据的实例)来输出。合成引擎108采用与所选的组件定义合成的个性化覆盖204来用私有变量覆盖全局变量。图3示出了由合成引擎所合成的示例性合成300。在此,合成300是根据基本组件(例如,StackPanel (栈面板)基本组件302)和容器组件304来描述的。在此,基本组件302包括两个文本框基本组件显示文本“ABC”的第一文本框基本组件和显示文本“DEF”的第二文本框基本组件。基本组件302还包括按钮基本组件。
基本组件是针对特定平台的具体实现,合成过程的叶节点,并且可以是可视或非可视的。以下是基本组件定义的示例(根据组件类型而非组件类型)。
<ComponentType ID=nEventQuery">
<Parameters>
〈Parameter Name=nScope" Type=nString" />
〈Parameter Name="Output" Type="ISnumerable" />
</Parameters>
</CoxnponentType >
<ComponentImplementation TypeId=MEventQuery">
<SupportedPlatforms>
<Platform>WPF</Platform>
</SupportedPlatforms>
<Unit>
<MefFactory>
权利要求
1.一种计算机实现的可视化系统,所述系统具有存储由处理器执行的可执行指令的计算机可读介质,所述系统包括 存储定义的存储,所述存储定义包括针对组件和与用户体验相关联的数据的组件定义和数据定义;以及 合成引擎,所述合成引擎基于存储定义来自动地且声明性地合成输出组件的实例,所述输出组件特定于可视化主机的用户体验。
2.如权利要求I所述的系统,其特征在于,所述输出组件包括基本组件、容器组件、或基本和容器组件的组合。
3.如权利要求I所述的系统,其特征在于,所述输出组件是基于所述用户体验的目标数据类型来合成的。
4.如权利要求3所述的系统,其特征在于,进一步包括组件注册表,通过所述注册表,基于所述目标数据类型来搜索组件。
5.如权利要求I所述的系统,其特征在于,所述输出组件是基于数据上下文来合成的。
6.如权利要求I所述的系统,其特征在于,所述输出组件将相关联的组件属性绑定到数据上下文元素以链接子组件。
7.如权利要求I所述的系统,其特征在于,所述合成引擎包括全局变量,所述全局变量使得能够在无关的数据上下文中的输出组件之间进行数据交换。
8.如权利要求I所述的系统,其特征在于,所述合成引擎采用与所选的组件定义合成的个性化覆盖来用私有变量覆盖全局变量。
9.一种可由处理器和存储器执行的计算机实现的可视化方法,包括 接收针对要在执行环境中被采用的组件的请求; 搜索与所述组件相关联的组件定义; 针对所找到的组件定义来选择一个或多个数据定义;以及 自动地将所述一个或多个数据定义与所述组件定义合成以在环境运行时在所述执行环境中输出所述组件。
10.如权利要求9所述的方法,其特征在于,进一步包括当所述组件定义没被找到时,基于所请求的组件的数据类型来搜索所述组件定义。
11.如权利要求9所述的方法,其特征在于,进一步包括基于所请求的组件的缺失来创建自定义组件。
12.如权利要求9所述的方法,其特征在于,进一步包括将全局变量应用到所述组件以使得能够在无关的数据上下文之间进行数据交换。
13.如权利要求9所述的方法,其特征在于,进一步包括用私有变量来覆盖全局变量以在所述组件的子组件上施加所述私有变量。
14.如权利要求9所述的方法,其特征在于,进一步包括 当所请求的组件没被找到时,创建容器组件; 装载具有含相关联的数据类型属性的基本组件的所述容器组件;以及 将所述容器组件输出为所述组件。
15.如权利要求9所述的方法,其特征在于,进一步包括合成父组件,所述父组件包括属性到子组件的绑定以及属性到数据组件的绑定。
全文摘要
包括独立于平台的、配置驱动的呈现合成引擎的体系结构。该合成引擎允许基于数据契约来动态生成多平台用户体验(UX)。通过合成,用户可选择部件、交互以及交互和部件之间的限制,以及相对于彼此的放置。UX是从针对特定数据类的组件中动态地合成的。在运行时,基于合成主机的执行平台,依赖于平台的组件实现被该引擎自动地选择。用户可创建或自定义UX,而不需要通过从大量访问大量可在许多平台上工作的数据源的呈现插件中组合来书写代码。合成是针对数据类和呈现类型两者的,并可被预先定义或生成。
文档编号G06F9/44GK102844737SQ201180018954
公开日2012年12月26日 申请日期2011年3月25日 优先权日2010年4月15日
发明者E·N·贝克夫, F·芬迪克, R·S·本森, V·V·奥特里希科 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1