基于样式的用户界面 [0001] 背景 [0002] 有效的用户界面通常采用得到证明的用户界面样式来以相关、可读且有用的方式呈现信息。如此处所使用的,样式是用于呈现信息的视觉样式。例如,信息列表中的每一条目都可具有多个字段,且这些字段中的一个是该条目中的信息的主标识符。样式可涉及通过在列表中的每一条目之上包括主标识符来概括该列表中的信息。主标识符可以用相对较大粗体来呈现,而其余信息可以用常规的非粗体呈现在主标识符之下。其他样式可包括用于输入批量信息的样式、用于显示详细信息的样式、用于以特定格式(诸如日期、电话号码的格式等)显示信息的样式。最优视觉设计样式通常未被公式化,而是由了解样式以及使用样式的方针以及了解用户界面技术的开发者来实现的。 [0003] 概述 [0004] 本文描述的工具和技术可允许使用样式来更容易且更高效地创建有效用户界面。 [0005] 在一个实施例中,工具和技术可包括描述对将由软件应用显示的信息的预期使用。可以运行应用,并且可执行对用于显示信息的用户界面样式模块的选择。如此处所使用的,样式模块是声明性的和/或是计算机可执行指令,可调用该指令以便将一个或多个用户界面构造安排和配置成符合对应的视觉样式,诸如符合用于特定用途的标准视觉样式。 用户界面样式模块可针对预期使用来设计。当正在运行应用时,可实例化和组织用于使用用户界面样式模块来显示信息的用户界面构造,并可呈现这些用户界面构造以显示信息。 [0006] 在工具和技术的另一实施例中,可执行对将用软件应用来显示的信息的分类以产生分类元数据。可选择第一用户界面样式模块来在应用中的第一上下文中显示信息,并且可选择第二用户界面样式模块来在应用中的第二上下文中显示信息。可实例化和组织用户界面构造的第一集合以使用第一样式模块选择和分类元数据来显示信息的至少一部分。可呈现构造的第一集合以便在第一应用上下文中显示信息。可实例化和组织用户界面构造的第二集合以使用第二样式模块选择和分类元数据来显示信息的至少一部分。可呈现用户界面构造的第二集合以便在第二应用上下文中显示信息。 [0007] 在工具和技术的又一实施例中,可执行对将用软件应用显示的信息的分类以产生分类元数据,并且可修改该分类元数据。可使用分类元数据以及对用于显示信息的用户界面样式模块的选择来实例化和组织用户界面构造。可呈现用户界面构造以显示信息。 [0008] 提供本概述是为了以简化的形式介绍一些概念。这些概念将在以下详细描述中进一步描述。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。类似地,本发明不限于解决在背景、详细描述、或附图中讨论的特定技术、工具、环境、缺点、或优点的实现。 [0009] 附图简述 [0010] 图1是其中可实现所描述的各实施例中的一个或多个实施例的合适的计算环境的框图。 [0011] 图2是包括开发环境和应用执行环境的基于样式的用户界面环境的框图。 [0012] 图3是包括开发环境和应用执行环境的另一基于样式的用户界面环境的框图。 [0013] 图4是基于样式的用户界面技术的流程图。 [0014] 图5是另一基于样式的用户界面技术的流程图。 [0015] 图6是又一基于样式的用户界面技术的流程图。 [0016] 详细描述 [0017] 许多开发者没有足够的用户界面样式和用户界面技术的知识来在开发软件用户界面时有效地使用样式。而且,即使开发者具备这一知识,使用样式来创建用户界面也是费时的。本文描述的实施例涉及用于更容易且更高效地创建有效的基于样式的用户界面的技术和工具。与先前的技术相比,各实施例可允许更大群体的开发者更高效地使用样式。这样的改善可源于分开或组合地使用各种技术和工具。 [0018] 这些技术和工具可包括捕捉关于将用应用显示的信息的元数据,描述对要显示的信息的预期使用,以及使用关于信息的元数据来执行对信息的分类。分类可产生分类元数据。执行分类可包括自动执行一个或多个分类和/或接收指定一个或多个分类的用户输入。可选择用于显示信息的用户界面样式模块。用户界面样式模块以及分类元数据可用于实例化和组织一个或多个用户界面构造以根据分类元数据和样式模块来显示信息。关于将要显示的信息的元数据还可用于根据该元数据来实例化和组织用户界面构造。可呈现用户界面构造以显示信息。样式模块选择以及实例化、组织和呈现用户界面构造可以在应用正在运行的同时诸如在与其中描述预期使用的开发环境不同的计算环境中完成。样式模块选择可取决于应用正在运行时可用的动态信息,诸如终端用户是否被授权编辑信息的特定部分。可修改分类元数据、其他信息元数据和/或样式模块选择,并且经修改的分类元数据、信息元数据和/或样式模块选择可用于实例化、组织和呈现用户界面构造。另外,分类元数据可以与多个不同的样式模块一起使用以便在应用中的不同上下文中不同地显示经分类的信息。同样,可以在主样式模块中使用附加用户界面样式模块来形成一系列嵌套的用户界面样式模块,诸如用于一项目的样式模块被嵌套在用于整个项目列表的样式模块中的情况。 [0019] 一些“向导”类型的技术已经用于描述数据并发行样本用户界面以便根据样式来显示数据。然而,这些向导是受限的。例如,典型的向导技术不允许在应用正在运行时实例化和组织用户界面元素。那些技术也不允许在向导已经在运行时进行修改。另外,那些技术不允许使用数据分类来根据不同上下文中的不同样式模块呈现经分类的信息。 [0020] 由此,通过此处描述的工具和技术可以实现一个或多个实质的益处。例如,在应用正在运行时能够选择样式模块并且能够实例化、组织和呈现用户界面元素,这能够在样式模块选择以及用户界面元素的实例化、组织和呈现时提供更多的灵活性。还能够通过允许修改信息元数据、分类元数据、样式模块和/或样式模块选择,并且通过使用来自数据分类的元数据来根据不同上下文中的不同样式模块呈现信息,来增强灵活性。所附权利要求中定义的主题不必限于本文描述的益处。本发明的特定实现可提供本文描述的益处的全部、一些、或未提供本文描述的益处。尽管本文出于呈现的目的以特定的顺序次序描述了用于各种技术的操作,但应理解除非要求特定的排序,否则这种描述方式涵盖了操作顺序上的重新安排。例如,在某些情况下,可以重新安排或并发执行顺序地描述的操作。本文参照流程图描述的技术可被用于本文描述的一个或多个系统和/或用于一个或多个其他系统。例如,本文描述的各种技术可用硬件或软件、或两者的组合来实现。此外,为了简单起见,流程图可能未示出可结合其他技术来使用特定技术的各种方式。 [0021] 示例性计算环境 [0022] 图1示出其中可实现所描述的各实施例中的一个或多个实施例的合适的计算环境(100)的一般化示例。例如,可将一个或多个这样的计算环境用作开发环境或应用执行环境。一般而言,可使用各种不同的通用或专用计算系统配置。适用于此处所描述的工具和技术的公知计算系统配置的示例包括,但不限于,服务器场和服务器群集、个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子产品、网络PC、小型机、大型计算机、包括上述系统或设备中的任一个的分布式计算环境等。 [0023] 计算环境(100)不旨在对本发明的使用范围或功能提出任何限制,因为本发明可以在完全不同的通用或专用计算环境中实现。 [0024] 参考图1,计算环境(100)包括至少一个处理单元(110)和存储器(120)。在图1中,这一最基本的配置(130)被包括在虚线内。处理单元(110)执行计算机可执行指令,并且可以是真实或虚拟处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。存储器(120)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存)、或两者的某种组合。存储器(120)存储实现基于样式的用户界面的软件(180)。 [0025] 尽管为了清楚起见用线条示出了图1的各框,但是,实际上,描绘各组件并不是那样清楚,并且用比喻方法,图1以及下文讨论的其他附图的线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件认为是I/O组件。而且,处理器具有存储器。 发明人关于此点认识到,这是本领域的特性,并且重申,图1的图示只是例示可结合本发明的一个或多个实施例来使用的示例性计算设备。诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间没有区别,它们全部都被认为是在图1的范围之内的并且被称为“计算机”、“计算环境”、或“计算设备”。 [0026] 计算环境(100)可具有附加特征。在图1中,计算环境(100)包括存储(140)、一个或多个输入设备(150)、一个或多个输出设备(160)以及一个或多个通信连接(170)。诸如总线、控制器或网络等互连机制(未示出)将计算环境(100)的各组件互连。通常,操作系统软件(未示出)为在计算环境(100)中执行的其它软件提供操作环境,并协调计算环境(100)的各组件的活动。 [0027] 存储(140)可以是可移动或不可移动的,并可包括诸如磁盘、磁带或磁带盒、CD-ROM、CD-RW、DVD之类的计算机可读存储介质,或者可用于储存信息并可在计算环境(100)内访问的任何其它介质。存储(140)储存用于软件(180)的指令。 [0028] 输入设备(150)可以是诸如键盘、鼠标、笔或跟踪球等触摸输入设备;语音输入设备;扫描设备;网络适配器;CD/DVD读取器;或可向计算环境(100)提供输入的另一设备。 输出设备(160)可以是显示器、打印机、扬声器、CD/DVD刻录机、网络适配器、或从计算环境(100)提供输出的另一设备。 [0029] 通信连接(170)允许通过通信介质与另一计算实体进行通信。因此,计算环境(100)可使用通往诸如个人计算机、服务器、路由器、网络PC、对等设备或另一常见网络节点等一个或多个远程计算设备的逻辑连接而工作在联网环境中。通信介质以已调制数据信号的形式传达诸如数据或计算机可执行指令或请求等信息。已调制数据信号是其一个或多个特征以在信号中编码信息的方式设置或改变的信号。作为示例而非局限,通信介质包括以电、光、RF、红外、声学或其他载波实现的有线或无线技术。 [0030] 各种工具和技术可以在非瞬态计算机可读介质的一般上下文中描述。计算机可读介质可以是可在计算环境内访问的任何可用介质。作为示例而非局限,对于计算环境(100),计算机可读介质包括存储器(120)、存储(140)、和以上的组合。 [0031] 这些工具和技术可在诸如程序模块中所包括的在目标真实或虚拟处理器上的计算环境中执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。程序模块的功能可以如各实施例中所需的组合或在程序模块之间分离。用于程序模块的计算机可执行指令可以在本地或分布式计算环境中执行。在分布式计算环境中,程序模块可以位于本地和远程计算机存储介质中。 [0032] 出于演示的目的,详细描述使用了如“确定”、“选择”、“调整”和“操作”等术语来描述计算环境中的计算机操作。这些以及其他类似术语是对计算机执行的操作的高层抽象,并且不应混淆于人类执行的动作,除非明确指出人类(诸如“用户”)的动作执行。对应于这些术语的实际的计算机操作取决于实现而不同。 [0033] 基于样式的用户界面系统和环境 [0034] 图2是基于样式的用户界面计算环境(200)的框图,可结合该计算环境实现所描述的各实施例中的一个或多个。环境(200)可包括要显示的信息(202)、包括关于信息(202)的元数据的元模型(203)、用于开发可显示信息(202)的应用(206)的开发环境(204)以及可运行应用(206)的应用执行环境(208)。开发环境(204)和应用执行环境(208)可以是不同的环境,诸如不同的物理或虚拟机器。基于样式的用户界面环境(200)的这些组件中的每一个都将在下文中更详细地描述。 [0035] 要显示的信息(202)在图2中被示为在开发环境(204)中,而信息(202)还可与应用(206)一起被包括在执行环境(208)中。此外,信息(202)中的某一些或全部可以不存在于开发环境(204)中。例如,当应用(206)正在执行环境(208)中运行时,可由用户输入信息(202)的至少一部分。信息(202)可以是各种类型的信息中的任一种。例如,信息可以是来自数据库的数据、用户输入数据的提示、要显示的图、用户输入的数据等。 [0036] 元模型(203)可包括捕捉到的信息元数据(214),该信息元数据可以是各种格式中的任一种,诸如XML格式。信息元数据(214)可描述要显示的信息(202)。例如,信息元数据(214)可包括信息(202)中的字段的字段名称或描述、信息(202)中的字段的类型(例如,数值、串、日期和/或时间)。信息元数据(214)还可包括相关元数据(例如,串长度约束),相关元数据可影响用户界面实例化、组织和/或呈现。元模型(203)还可包括信息(202)的一个或多个方面(例如,字段、字段组等)的分类元数据(216)。 [0037] 另外,元模型(203)可包括样式选择(218),该样式选择可包括对信息(202)的至少一部分的预期使用的指示。例如,样式选择(218)可包括用户将批量编辑信息的指示,这进而指示对允许对信息进行批量编辑的用户界面样式模块的选择。作为另一示例,样式选择(218)可指示用户想要信息的简单概述,这可指示对提供简单概述的用户界面样式模块的选择。 [0038] 开发环境(204)可用于开发将在执行环境(208)中运行的应用(206)。作为该开发的一部分,开发环境(204)可捕捉用于元模型(203)的数据。能够以各种方式来捕捉用于元模型(203)的数据(信息元数据(214)、分类元数据(216)和/或样式选择(218)),诸如通过从开发者接收用户输入和/或经由对要显示的信息(202)的储存库(例如,数据库、web服务等)运行简单的试探来推断数据。除了以下讨论的各个模块之外,开发环境可包括诸如在微软的 软件开发系统中提供的其他开发模块。 [0039] 开发环境(204)可包括信息描述模块(220)。信息描述模块(220)可捕捉信息元数据(214),该信息元数据可描述要显示的信息(202)。例如,信息元数据(214)可描述将向终端用户显示的信息的结构和特性。例如,信息元数据(214)可指示要显示的信息(202)包括客户的表示,每一个客户表示包括姓名、地址、电子邮件和电话号码。信息元数据(214)可由开发环境(204)中的信息描述模块(220)来捕捉,并且信息元数据(214)还可被持久存储在开发环境(204)中。 [0040] 开发环境(204)还可包括分类模块(222)。分类模块(222)可以对要显示的信息(202)进行分类,由此产生分类元数据(216)。分类元数据(216)可包括描述信息(202)的相对优先级和语义的元数据。在例如上文讨论的客户信息的示例中,分类元数据(216)可指示姓名字段是信息的主标识符,并且电子邮件、地址和电话号码字段具有次要重要性。通过从开发者接收用户输入和/或通过对信息描述模块(220)捕捉到的信息元数据(214)使用简单的试探法来推断分类信息,分类模块(222)可执行分类以产生分类元数据(216)。分类元数据(216)可以是设备和平台无关的,以使其能够用于在各种不同的平台和/或设备中的任一种中实例化和组织基于样式的用户界面,如将在下文中更多地讨论的。可响应于指示一个或多个分类的用户输入来执行分类(即,执行分类以产生分类元数据(216)),和/或可通过从信息元数据(214)中自动推断分类元数据(216)来执行分类。例如,如果信息元数据(214)指示字段名称是“姓名”,则可以推断出该字段是信息(202)的至少一部分的主标识符。 [0041] 开发环境(204)还可包括能够实例化和组织样式选择(218)的样式选择模块(224)。样式选择(218)可包括描述将如何使用信息(202)和/或在显示信息时将使用什么样式或样式模块的元数据。例如,样式选择(218)可指示用户将浏览诸如客户列表等列表中的信息结构的许多实例。或者,样式选择(218)可诸如通过指示用户将对信息进行批量编辑、用户将期望信息的详细概述等来指示其他使用。样式选择(218)(其可包括指示一个或多个所选样式或样式模块的元数据)可通过响应指示样式选择(218)的用户输入来生成。样式选择(218)可指示样式或样式模块将彼此嵌套。例如,一个样式可适用于列表中的每一条目,而另一样式可适用于整个列表。一组样式模块可以是可用的,以使得样式选择(218)可以从可用样式模块中进行选择。然而,该组样式模块能够是可扩展的,以使得可响应于开发者或其他人的用户输入来添加附加样式(以及用于根据样式来实例化和组织用户界面构造的附加的对应样式模块)。样式选择(218)可包括对用于同一信息(202)的多个样式模块的选择。例如,样式选择(218)中的不同样式模块可以适用于应用中的不同上下文。 例如,在一个上下文中,信息(202)可以是不可编辑的,而在另一上下文中,信息(202)可以是可编辑的。作为另一示例,在一个上下文中,信息(202)可以用概述样式来显示,而在另一上下文中,信息(202)可以用详细显示样式来显示,以显示信息(202)中的更多细节。 [0042] 开发者可修改元模型(203),包括对信息元数据(214)、分类元数据(216)、样式选择(218)和/或所选的样式模块本身作出修改。而且,如果元模型(203)中的第二数据集合是从元模型(203)中的第一数据集合中推断出的,则对第一集合的修改可提示也对第二集合进行修改。例如,如果分类元数据(216)是从信息元数据(214)中推断出的并且信息元数据(214)以将影响该分类元数据(216)的方式改变,则可更新该分类元数据以反映该改变。 [0043] 仍旧参考图2,应用(206)可以在开发环境(204)中编译,并且经编译的应用可被传递至执行环境(208)并在该环境中运行。执行环境(208)可包括可用样式模块(230),可以运行该模块以实现在样式选择(218)中选择的样式。执行环境(208)可包括用户界面构造实例化和组织模块(232),该模块可使用来自元模型(203)的数据来实例化和组织一个或多个用户界面构造(234)。例如,通过调用对应于样式选择(218)的样式模块(230)中的一个或多个来创建一个或多个用户界面构造(234)以便以针对样式选择(218)中所指示的对应使用进行优化的方式显示信息,构造实例化和组织模块(232)能够使用分类元数据(216)和样式选择(218)来实例化和组织用户界面构造(234)。 [0044] 所调用的样式模块(230)可应用分类元数据(216)来将信息(202)的各个字段分配给样式中的类别,并且可实例化和组织用户界面构造来显示信息(202),其中所分配的字段是根据样式类别来显示的。例如,信息(202)的“姓名”字段可以在分类元数据(216)中被分类为“主标识符”。样式模块(230)可具有“主标识符”类别,并且“姓名”字段可被分配到该类别。作为一示例,“主标识符”类别可以出现在用户界面中的信息之上,且与显示的其他信息字段相比具有更大的字体大小。 [0045] 用户界面构造(234)可包括平台和设备无关的构造层以及平台和/或设备相关的构造层。这可允许从可用平台中选择特定平台,并且平台无关的构造层可被转换成针对所选平台的平台相关的构造层。平台相关用户界面构造层可包括标准用户界面构造,该标准用户界面构造可用于调用所选平台或技术来根据所选平台模块呈现构造。例如,平台相TM 关用户界面构造层可具有标准格式或特殊格式,诸如HTML、微软Silverlight 格式、微软Word文档格式、XML等。如上所述,样式模块(230)可以是可扩展的,以使得可以在外部定义附加样式模块并使其在开发环境(204)中可用,并且使其对在开发环境(204)中开发的应用可用。 [0046] 执行环境(208)还可包括用户界面呈现模块(236),该模块可呈现用户界面构造(234)以提供用户界面显示(238)。这可以用标准用户界面平台或技术来完成。例如,可以对平台或技术作出应用程序编程接口调用。平台或技术可以通过呈现用户界面构造(234)以便根据元模型(203)来提供信息(202)的用户界面显示(238)来作出响应。捕捉到的信TM 息元数据(214)还可包括呈现用户界面时可使用的平台专用注释(例如,Silverlight 或CSS式样标识符或主题定义)。 [0047] 现在参考图3,将讨论另选的基于样式的用户界面环境(300)。环境(300)可以与上文讨论的环境(200)包括相同的组件和组件特征。由此,环境(300)可包括要在应用中显示的信息(302)、元模型(303)、开发环境(304、在开发环境(304)中开发的应用(306)、应用执行环境(308)、捕捉到的信息元数据(314)、分类元数据(316)、样式选择(318)、信息描述模块(320)、分类模块(322)、样式选择模块(324)、样式模块(330)、用户界面构造实例化和组织模块(332)、用户界面构造(334)、用户界面呈现模块(336)以及用户界面显示(338)。 然而,用户界面构造实例化和组织模块(332)可以在开发环境(304)中,而不是在执行环境(308)中,以使得用户界面构造在开发环境(304)中被实例化和组织。或者,可以在开发环境中存在一用户界面构造实例化和组织模块,并且在执行环境中存在另一用户界面构造实例化和组织模块,以使得一些用户界面构造可以在开发环境中被实例化和组织,而另一些用户界面构造可以在执行环境中被实例化和组织。基于样式的用户界面环境的组件还可以按本文没有明确详述的其他方式被重新安排。 [0048] 基于样式的用户界面技术 [0049] 参考图4,将讨论基于样式的用户界面技术。在一软件开发计算环境中,可描述(410)对将由软件应用来显示的信息的预期使用。可执行(420)对信息的至少一部分的分类。可以运行(430)应用,并且可执行(440)对用于显示信息的至少一个用户界面样式模块的选择。当应用正在运行时(430),可使用至少一个用户界面样式模块来实例化和组织(450)用于显示信息的一个或多个用户界面构造。分类的执行(420)可产生可用于实例化和组织(450)一个或多个用户界面构造的分类元数据。同样当应用正在运行时(430),可呈现(460)一个或多个用户界面构造以显示信息。样式模块选择的执行(440)也可以在应用正在运行时(430)执行,但该执行(440)也可以在运行应用之前执行。 [0050] 描述(410)对信息的预期使用可包括接收指示该预期使用的用户输入。实例化和组织(450)一个或多个用户界面构造可包括实例化一个或多个平台无关用户界面构造以及一个或多个平台相关用户界面构造。而且,实例化和组织(450)可考虑应用执行环境约束。 例如,实例化和组织(450)可包括接收选择平台的用户输入,并且一个或多个用户界面构造中的至少一部分可针对所选平台进行格式化。作为另一示例,式样化(styling)可影响如何TM 实例化和组织用户界面构造。例如,微软Silverlight 输出平台可支持式样化和主题化,以使得可应用不同的主题和/或式样。在一个示例中,可以在实例化和组织用于呈现供打印的屏幕的用户界面构造时应用打印机专用主题。由此,用户界面可以在为打印而呈现时表现得和/或看上去与为屏幕显示而呈现时不同。 [0051] 作为另一示例,在移动平台的实现中,由于较小的屏幕大小的环境约束,一个或多个用户界面的演示可能是不同的。例如,用于具有不同部分的屏幕的样式可被重新组织成一组选项卡以节省屏幕空间,或者屏幕的一部分可被放置在“更多”按钮之后。关于预期使用和分类或其他约束的信息可以连同这种类型的环境约束考虑一起被考虑。继续移动平台示例,被表示开发者的意图的元数据分类为较不重要的信息可以在实例化和组织用户界面构造时被自动放置到屏幕的“更多”部分中。例如,可能期望立即显示被开发者标记为“标题”和“子标题”的信息,但立即显示被开发者标记为“描述”信息的信息可能不那么重要,由此“描述”信息可被放置到屏幕的“更多”部分中。 [0052] 分类的执行(420)可包括将信息的一个或多个字段分配到至少一个用户界面样式模块中的一个或多个类别中。而且,分类的执行(420)可包括执行一个或多个试探,诸如对关于要显示的信息的元数据的试探。 [0053] 图4的技术还可包括接收指示对分类元数据的修改的用户输入,并且响应于该用户输入而修改分类元数据,以产生经修改的分类元数据。经修改的分类元数据可用于实例化和组织一个或多个用户界面构造。 [0054] 现在参考图5,将讨论另一基于样式的用户界面技术。该技术可包括执行(510)对将用软件应用显示的信息的分类以产生分类元数据。该技术还可包括执行(520)对一个或多个用户界面样式模块的第一集合的第一选择以便在应用中的第一上下文中显示信息,以及执行(530)对一个或多个用户界面样式模块的第二集合的第二选择以便在应用中的第二上下文中显示信息。可使用第一样式模块选择和分类元数据来实例化和组织(540)用于显示信息的至少一部分的一个或多个用户界面构造的第一集合,并且可使用第二样式模块选择和分类元数据来实例化和组织(550)用于显示信息的至少一部分的一个或多个用户界面构造的第二集合。可呈现(560)一个或多个用户界面构造的第一集合以便在第一上下文中显示信息,并且可呈现(570)一个或多个用户界面构造的第二集合以便在第二上下文中显示信息。 [0055] 呈现(560)一个或多个用户界面构造的第一集合以及呈现(570)一个或多个用户界面构造的第二集合可以在软件应用正在运行时执行。实例化和组织(540)一个或多个用户界面构造的第一集合以及实例化和组织(550)一个或多个用户界面构造的第二集合可以在软件应用正在运行时执行。而且,该技术可包括描述在第一上下文中对信息的第一预期使用以及描述在第二上下文中对信息的第二预期使用。描述在第一上下文中对信息的第一预期使用以及描述在第二上下文中对信息的第二预期使用能够在与执行呈现一个或多个用户界面构造的第一集合以及呈现一个或多个用户界面构造的第二集合的计算环境不同的计算环境中执行。 [0056] 图5的技术还可包括捕捉描述信息的元数据,并且分类的至少一部分可通过对描述要显示的信息的元数据执行一个或多个试探来执行。 [0057] 现在参考图6,将讨论又一基于样式的用户界面技术。该技术可包括执行(610)对将用软件应用显示的信息的分类以产生分类元数据。分类的至少一部分可以自动执行。可以诸如响应于指示对分类元数据的修改的用户输入来修改(620)分类元数据,并且还可修改(625)描述要显示的信息的其他元数据。可执行(630)对用于显示信息的至少一个用户界面样式模块的选择。可使用经修改的分类元数据和样式模块选择来实例化和组织(640)一个或多个用户界面构造。可呈现(650)一个或多个用户界面构造以显示信息。 [0058] 图6的技术还可包括捕捉描述信息的元数据并且描述信息的元数据可用于执行分类的至少一部分。如果描述信息的元数据已经被修改,则可使用经修改的元数据来执行分类的至少一部分。该技术还可包括接收指示对信息的预期使用的用户输入,并且至少一个用户界面样式模块可针对该预期使用来设计。 [0059] 尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。