用于创建模块化web应用的框架的制作方法

文档序号:6416148阅读:208来源:国知局
专利名称:用于创建模块化web应用的框架的制作方法
技术领域
本发明一般涉及用于创建web应用的系统和方法,尤其涉及用于使用模块化和可定制框架来创建包括web页的web应用的系统和方法。
(2)背景技术局域网和广域网的增加方便了数据的检取和传递。通常,计算机用户可以通过简单的指向和点击接口,如在web页和web站点常见的接口,来检取信息。web入口是一种常见的web站点或web页类型,向用户提供各种服务。web入口可以包括欢迎信息、搜索能力、天气信息、新闻信息、股票数据、到其它站点或页的链接等等。
经验表明,有组织且视觉上吸引人的web入口在满足web入口的用户的需求方面更有效。而且,因为web入口通常是因特网或内联网会话中使用的第一页,web入口必须是可定制的,使得web呈现用户关注的内容,并使用户可以以对用户有逻辑意义或者视觉上令用户满意的方式来组织内容。
许多web开发者试图创建既吸引用户又保留用户的站点或web入口。一种常见的方法是令站点符合模块化布局,使相关内容放置在页的特定区域。web入口不是唯一能够受益于模块化和可定制布局的页。因特网或内联网上一般的web站点或页、项目页、会议页、存货跟踪页等等也可以受益于这一布局。
这类页或站点的设计和开发较难,因为仅有很少的工具来快速且有效地创建这类页。每一web页开发者必须为这类页创建他们自己的代码或设计。因此,开发者因创建这类页而泄气,导致较不合用和可读性差的页的增加。而且,当页开发者创建这类页时,无法将这些页导出让其它开发者使用。也很难使用当前技术创建具有一致的外观和感觉的可定制站点。
一种在创建web页和web站点中帮助web开发者的技术是使用在web页服务器上运行的脚本。这些脚本可以嵌入其它HTML命令之中来创建动态且可定制的web页。然而,web的可定制性当前成本较高,因为这些类型的web页需要较大的开发投资。换言之,很难建立具有丰富内容、模块化且一致设计以及可定制的成功的web站点,因为他们需要基本的开发时间,并且入口解决方案当前没有一致的模型。
(3)发明内容涉及用于创建模块化、可定制web应用的系统和方法的本发明克服了这些和其它限制。特别地,本发明涉及用于创建web应用,如web入口、web页等等的可扩充框架。该框架包括部件控制,如web部件、编辑器部件以及目录部件。该框架也包括区域控制,如区域、编辑器区域以及目录区域。每一区域控制通常包含一个或多个部件控制。
每一部件控制衍生自一个部件基类,每一区域控制衍生自一个区域基类。web部件、编辑器部件以及目录部件提供了除部件基类提供的功能之外的额外的功能。区域、编辑器区域和目录区域也提供了除区域基类提供的功能之外的额外的功能。
web应用,如web页可以分解为区域以及放置到每一区域的各种部件控制。每一区域负责展现特定区域中的每一部件周围的色彩。这控制了标题栏、边框以及动词(verb)的外观和感觉。这促进了一致外观和感觉,因为可以通过添加、移除或改变部件控制来定制或个性化web页。编辑器部件用来编辑web部件,而目录部件用来从区域中添加/移除web部件。编辑部件由编辑区域包含,目录部件由目录区域包含。
部件控制和区域具有关联的属性和方法。一些属性和方法准许在每一用户的基础上个性化部件控制,而其它属性和方法准许由开发者对所有用户定制部件控制。web部件的属性可以被导出/导入。web部件也可以被隐藏或变为可见。
在创建web页的过程中,在持久格式文件中声明区域控制。在每一区域控制内声明部件控制。也声明跟踪不同所声明的区域中的web部件的web部件管理器。每一区域通常向web部件管理器注册。web部件管理器的一个优点是它使一个web部件能够与另一web部件通信。例如,这使一个web部件的内容能够被另一web部件所使用。
本发明的另外的特征和优点将在下文描述,并且阅读该描述能够部分清楚这些特点和优点,或者可以通过对本发明的实践学到。本发明的特征和优点可以通过所附权利要求书中特别指出的仪器和组合来实现。从以下描述和所附权利要求书,可以完全清楚本发明的这些和其它特征,或者可以通过如下所述的对本发明的实践学到。
(4)


为以能够获得本发明的上述和其它优点和特征的方式描述,参考附图中说明的本发明的具体实施例来展现上文简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,因此并非对其范围的限制,通过使用附图来描述并解释本发明的另外的特性和细节,附图中图1说明了模块化web入口的一个示例;图2说明了图1所示的web入口的区域布局;图3说明了模块化web入口的另一示例;图4说明了用于个性化web页上的web部件的用户界面的一个示例;图5A和5B说明了用于向web页添加web部件的用户界面的示例;图6说明了web页上两个web部件之间的连接;图7说明了web页创建框架中使用的类和基类的层次;图8A、8B和8C说明了web页上用于控制外观、布局和行为的部件;图9说明了web页创建框架中使用的区域控制的类和基类的层次;图10说明了可以使用本发明的一个实施例实现的区域布局和web部件布局;图11示出了可以使用本发明的一个实施例实现的区域的水平和垂直布局;图12说明了动词图标的图形示例;图13说明了用于确定将哪一web部件放入区域的流程图;和图14说明了用来将一个web部件与另一web部件连接的变换器。
(5)具体实施方式
本发明延伸到用于创建模块化web应用的方法和系统。特别地,本发明涉及用于创建支持最终用户个性化或定制的模块化web页的系统和方法。本发明的一个实施例提供了可以用来创建模块化、内容丰富并且可定制的web应用的基础结构或框架。
在一个实施例中,该框架包括对服务器端和客户端行为的使用,并准许控制与其它控制共享信息。例如,该框架包括可扩充基类和控制。在一个实施例中,该框架包括部件控制、区域控制和部件管理器。
部件控制通常包含准许部件控制即使在一个特定部件控制的功能明显与另一部件控制的功能不同的情况下也能够以一致的方式呈现给用户的属性。例如,该部件控制的属性用来展现该控制周围的一致窗口或用户界面。在一个实施例中,用户界面可包括标题栏,最小化、最大化和关闭动词,以及环绕边框。使用若干不同的基类来创建部件控制。示例性的控制包括但不限于,web部件控制、编辑器部件控制以及目录部件控制。
区域控制通常用来以模块化或一致方式布置部件控制。区域负责展现每一部件的用户界面。例如,如果一个部件控制的属性包括色彩用户界面,则包含该特定部件控制的区域控制负责展现该部件控制的色彩用户界面。用于创建区域控制的类的示例包括但不限于,用于布置所有从部件继承的控制的区域基类、编辑器区域类以及目录区域类。本发明的一些实施例还包括导出一个用户设置的个性化或定制特性来由其他用户使用的能力。第三方生成的类也可以结合进该框架中。
图1说明了可定制、模块化web页的一个示例。示出web入口为web页100,包括模块化组织的信息或数据。例如,web页100包括web部件102中的欢迎信息,web部件104中的天气信息、web部件106中的股票信息、web部件108中的搜索窗以及web部件110中的链接选择。web页100还包括允许用户依照用户自己的口味和喜好来个性化web页100的个性化链接112。这些web部件参考web部件框架中的web部件基类来创建,web部件基类有时候也称为web控制。
在本发明的一个实施例中,web部件的外观和感觉可以通过使用区域在某些方面进行控制。现在参考图2,如图所示,使用三个web区域来定义图1所示的web部件的特征。web页100包括三个区域,包括顶部区域200、左边区域202和右边区域204。注意,顶部区域包括欢迎web部件102和搜索web部件108。左边区域202包括天气web部件104和链接web部件110。右边区域204包括单个web部件,即股票web部件106。通过对区域内的web部件进行分组,区域关联可以帮助协调特定区域内布置的个别web部件的外观和感觉。区域通过控制如何展现用户界面来实现这一协调。用户界面包括(如图1所示)诸如标题112和框体114的物体。用户界面也可包括诸如动词116的物体。
以下是用于生成图1和图2所示的入口的持久格式文件(本实例中为.aspx)的一个示例。高亮显示的是定义区域和web部件的范围。

尽管图1和图2所示的模块化web页可以通过调用本发明的框架中各种类来创建,如在一个示例中通过ASP.net框架中的.aspx文件的调用,然而可以通过在控制格式文件,本情况中为.ascx文件中声明控制,并在区域中引用该控制格式文件来创建其他定制页和web部件。图3示出了仅通过这一过程生成的web页300。.ascx和.aspx代码如下。
Events.ascx
Page.aspx
配置web部件包括设置控制属性。配置设置可以由应用开发者、管理员和/或最终用户作出。由开发者或管理员作出的配置设置称为自定义设置,而由最终用户作出的设置称为个人设置。因此,最终用户使用个人设置来个性化或定制站点或页,而开发者和管理员能够使用自定义设置来定制站点或页。在一个实施例中,自定义设置能够被站点的所有用户可见。个人设置通常仅能被作出个人设置的个别用户可见。
使用个人设置来个性化的一个示例在图4中示出,一般示出了web页400。通过点击web部件403中的编辑链接402,用户获得对编辑器区域406内的编辑器部件404的接入。在本示例中,用户能够通过修改标题文本框中的文本来改变web部件403的标题405。用户可以通过框体状态下拉菜单410来修改框体状态,使web部件以最大化、最小化或普通状态显示。用户也可以通过下拉框体类型菜单412修改web部件403的框体类型。
在图4所示的本示例中,用户也可以通过从Symbol文本框414添加或移除股票符号来添加或移除web部件403中所示的股票值。当用户对个性化选择满意时,用户可以选择应用动词按钮416,将变化应用到web部件403并关闭编辑器部件404。编辑器部件404还包括一些其他动词按钮,包括关闭动词按钮418、OK动词按钮420和取消动词按钮422。关闭动词按钮418和取消动词按钮422在调用时执行相同的行动,将web页400返回至不包括编辑器部件404或编辑器区域406的普通视图模式,而不向web部件403作出任何用户在编辑器区域406中作出的变化。OK动词按钮420在调用时向web部件403作出用户在编辑区域404中指定的变化并将web页返回至不包括编辑器部件404或编辑器区域406的普通视图模式。在管理员定制情况或者甚至在web页开发者建立情况中可以使用类似的界面。
使用该框架,用户可以从可用部件的目录中向web页添加额外的web部件。图5A所示的称为目录部件并一般命名为502的web部件用来向web页500添加web部件。目录部件502可以在目录区域504中布置。目录部件502可能具有若干个可由用户选择的目录510。在本发明的一个实施例中,可以通过点击目录链接512来选择目录。点击目录链接512引发显示若干个文本框506,用于选择要添加到web页502的web部件。通过复选文本框506然后点击添加按钮508(Add)来选择可用的web部件,从而将web部件添加到web页500。目录区域504既可以被个别web页用户作为个性化他们web页视图的选择,也可以在定制情况下被web页开发者或管理员用来创建可被特定web页的所有用户使用的视图。
现在参考图5B,示出了目录部件的另一示例。目录520包括可添加到web页的web部件522的选择的表示。每一web部件的表示包括web部件标题524。web部件标题524较佳地为当web部件显示在web页上时所显示的标题,如图1所示的标题112。web部件的表示还包括部件图标526。部件图标526在本示例中是表示web部件的图形文件。
目录部件520还可包括特定目录部件520中可用库528的列表。库528列表中的每一个库是可选择的,如在一个实施例中通过点击库链接530来选择。这引发显示与所选择的库链接530相关联的web部件522的选择。
目录部件520也能够在若干个不同页之中划分web部件522的选择的显示。提供了页链接532以在显示web部件522的选择的各种页之间连接。每页项目指示器534连同页的数字表示示出了可添加到web页的web部件的数量的表示,以及当前显示在目录部件520上的web部件522的选择的每页项目的数量。
目录部件520还包括用于选择所添加的web部件将添加到web页的哪一区域的下拉选择框538。一旦用户作出了添加到web页的web部件的选择,并选择在何处放置该新的web部件,用户选择添加动词536。这引发目录区域调用添加函数,引发新添加的web部件被添加到适当的区域。新添加的web部件也向用来协调web部件的交互和布局的web部件管理器注册。
在说明性示例中,可以使用目录部件,如目录部件520来将web部件添加到web页。目录部件520所属的目录区域在调用添加动词536时,将调用与所选择的目录部件520相关联的添加方法。目录部件520然后应当调用web部件管理器添加方法来将web部件(522之一)添加到页。所添加的web部件(522之一)将由web部件管理器跟踪。
web部件框架允许web部件通过预定义的接口或连接向其它web部件传递信息。这些连接可以在页上定义,或可以通过个性化创建。任意两个通过同一连接接口进行对话的web部件可以被连接。而且,使用变换器,如后文所述,可以实现使用不同连接接口的web部件的通信。这允许任意web部件共享数据,即使它们是被单独地设计并实现的。
现在参考图6,示出了两个连接的web部件的示例。图6示出了显示可选股票符号的股票列表web部件600。股票列表web部件600实现接口(本示例中说明为IFieldData接口)来展现当前所选择的股票602。股票图形web部件604能够基于任一股票符号图形化历史数据。股票图形web部件604能够通过接口来通信。每一web部件向帮助协调出现在web页的不同区域中的不同web部件的web部件管理器注册连接端点,因此可以建立连接。一旦连接,两个部件600和604提供最终用户体验,用户可以快速地浏览他们最喜欢的股票并看到相关的图形。
web部件框架也包括允许最终用户的个性化设置或系统管理员的定制设置的导出和导入的功能。例如,当用户使用上述编辑器设置个性化视图时,该设置可以是可导出的,使其它用户能够使用它们来设置他们的web入口的特定视图的属性。这一功能可以如下文在一个实施例中更详细解释的通过导出和导入xml文件来实现。
尽管上述讨论在概括综述的意义上阐明了本发明的各类实施例的特征和优点属性,现在重点将针对以下讨论,阐明了可能包含在web部件框架中用于创建web页上出现的web部件和区域的各种基类和类。使用各种基类和类,web页开发者能够创建模块化、可定制以及可个性化的web页。
这里描述的web部件框架的一个实施例包括三个基类的一般组,其它类和控制可以从这些基类衍生。这些基类的一般组包括部件控制、区域控制和web页管理器。一般而言,部件控制包括每一个别web部件的功能。这类部件的示例包括之前描述的web部件、编辑器部件以及目录部件。区域控制包括组织web部件并展现每一部件周围的用户界面所需要的功能。
web页管理器是一个不可见类,它帮助协调哪一部件包含在哪一区域中,并方便各种web部件之间的连接,诸如此类。web页管理器也可以以不同的模式展现web页。例如,为能够使用编辑器web部件,web页管理器以编辑视图模式展现web页。为使用目录web部件,web页管理器能够以目录视图模式展现web页。为定制web页,web页管理器以类似于编辑视图模式的定制视图模式展现web页。
部件控制现在参考图7,阐明对部件控制的功能的更详细描述。部件控制功能通常依赖于“Part”基类702(部件基类)。本领域的技术人员也可以在本说明书中将依赖描述为衍生或继承。依赖部件基类702的是三个其它基类,即,目录部件基类704(CatalogPart)、Web部件基类706(WebPart)和编辑器部件基类708(EditorPart)。基类的结构是分级的,基类或从另一基类依赖的(多个)基类包含其所依赖的基类的所有功能并加上一些另外设计的功能。例如,部件基类702可以用来为所有模块化类创建部件控制,因为它在层级中最高。Web部件基类706可以用来使用部件基类702的所有功能加上用于具有先进功能的类的控制来创建模块化类。编辑器部件基类708可以使用部件基类702的所有功能加上设置相关控制属性的模块化控制来创建模块化控制。换言之,编辑器部件基类708可以用来个性化其它Web部件基类706。目录部件基类704是用于用作目录的控制的基类。换言之,目录部件基类704包括允许当展现web页时对其它web部件进行添加或移除的目录部件基类。这些类可以使用部件基类的功能以及其它为目录部件基类设计的指定功能来创建。每一基类,即目录部件基类704、web部件基类706和编辑器部件基类708,具有从它们衍生或继承的其它类,如图7所示。
在每一(多个)基类内的是启用(多个)基类的一些功能的属性。部件基类702包括以下属性Description、FrameState、FrameType、LargeIconImageURL、Roles、SmallIconImageURL、Title以及TitleStyle。
在部件基类702内,并因此在所有从部件基类702继承的其它类中可用的属性之一是Description属性。Description属性是可以被其它web部件使用的web部件描述。例如,如下文所述,Description属性可以被目录部件所使用,或作为标题栏中的工具提示。Description属性在被开发者在建立web页时设置以后不可以由最终用户个性化或者由系统管理员定制。Description属性的一个示例可以在上述结合图1的描述提供的示例代码中看到。
部件基类702中的另一属性是FrameState属性。FrameState属性定义了部件的框体状态。例如,FrameState属性能够定义特定的web部件是否为最小化、最大化或普通。当最小化web部件时,仅显示标题栏。当web部件为普通时,显示标题栏和部件的内容。FrameState属性可由最终用户个性化并可由系统管理员定制。
部件基类702中的再一属性为FrameType属性。FrameType属性确定将构架部件的色彩的类型。例如,可以设置FrameType属性使得仅显示标题、显示标题和边框或仅显示边框。
部件基类702的再一属性是LargeIconImageURL属性。这一属性包括表示特定web部件的图像的URL,该图像有时也称为部件图标。这些图标可用作部件的图形化表示。如上文结合图5B的描述所描述的,LargeIconImageURL属性可以由页目录部件用来显示可添加到web页的web部件的图形表示。这也可包括特定web部件的标题范围。该属性不可以由最终用户个性化或由系统管理员定制。与LargeIconImageURL属性类似的是SmallIconImageURL属性。这一属性以与LargeIconImageURL类似的方式描述表示特定web部件的图像的URL,但是该URL连接至尺寸上较小的图像。
部件基类的再一属性是Roles属性。Roles属性使web页开发者能够设置特定web部件可用的角色。例如,web部件能够提供站点管理功能,如在对处于开放“Admin”角色中的所有用户的定制情况下。
部件基类的再一可用属性是Title属性。Title属性的值展现为出现在内容上方的web部件的顶部的标题。这通常是Title属性串内文本和说明的组合。在本发明的一个较佳实施例中,Title属性应当用作在向用户展现以上结合LargeIconImageURL和SmallIconImageURL描述的部件图标属性时的替换文本。
Web部件基类图7说明的Web部件基类706依赖于部件基类,并包括除这里将定义的其它属性之外部件基类的所有属性和功能。例如,Web部件基类706包括Connections属性。Connections属性描述了与该web部件相关的连接。Connections属性的使用的一个示例在上文图6的描述中有描述,并在这里对WebPartManager基类的描述中进一步描述。
对Web部件基类706可用的其它属性包括HelpURL和WebPartHelpMode属性。能够将HelpURL属性设置为提供关于特定web部件的帮助的页的URL。WebPartHelpMode属性定义如何显示该链接。例如,可以将该链接显示为模态对话(或者如果不支持模态对话则为新浏览器窗口)。可以将该链接显示为非模态对话(或者如果不支持非模态对话则为新浏览器窗口)。可以显示该链接使当前窗口用来定向帮助URL。
存在于Web部件基类706中的另一组属性是部件属性组,称为“允许”属性。这些属性允许web页开发者决定特定web部件中准许何种功能。例如,AllowClose属性允许web页开发者确定特定的web部件是否允许被关闭(即,从区域中移除)。这一属性一般可由所有用户个性化。AllowHide属性允许web页开发者确定特定web部件是否允许被隐藏(即,无可视元素,但仍包含在区域中)。这一属性一般可由所有用户个性化或定制。AllowMinimize属性确定特定web部件是否允许被最小化(仅在web页上显示标题栏)。这一属性可由所有用户个性化或定制。AllowMove属性确定web部件是否允许在区域内或区域之间被移动。这一属性是不可个性化或定制的。AllowExport属性确定特定web部件属性设置是否可以被导出。
web部件基类706也包括AllowPersonalization属性。在这一方式下,如果页开发者希望禁用对给定web部件的个性化,则将该属性设置为假。例如,尽管在一般意义上一些属性是可个性化的,然而如果web页开发者选择移除这些个性化属性,仅需将EnablePersonalization属性设为假来完成。由此,不允许最终用户和系统管理员编辑对其设置了该属性的特定web部件。
web部件基类706也包括Caption属性。这一属性定义了添加到web部件的色彩中的标题的末端的串。这一属性用于文档名称或其它内容特定信息。这一属性为动态的,不像Title属性为静态的。Web部件基类706中包括的另一属性是Direction属性。
Web部件基类706中可用的另一属性是Hidden属性。Hidden属性确定特定web部件在web页上是否可见。将Hidden属性设置为假的部件被认为是隐藏的。在一个实施例中,例示了这些部件并且这些部件通过了预展现和展现阶段。然而,区域未在web页上显示它们的内容。尽管如此,隐藏部件可以参与连接。隐藏部件在web部件管理器处于普通或设计模式时是隐藏的,在下文本说明书更详细描述web部件管理器的部分有讨论。当web部件管理器处于编辑模式,如在定制或个性化的情况下,隐藏部件通常是可见的,允许个性化。
如果web部件基类706的Visible属性设为假,则该web部件被认为已关闭。Visible设为假的web部件在页上例示,但不通过生命周期的展现阶段(预展现和展现)。如果web部件已关闭,则它无法参与连接或其它通信。
web部件基类706的Display属性确定web部件在web页浏览器中是否可见。即使对Display属性进行设置使得web部件在浏览器中不可见,特定的web部件仍通过展现阶段。该属性在每一用户的基础上是可个性化的。Web部件基类706的EditURL属性包含可以用来编辑特定web部件的HTML文件的URL。这一属性可由所有用户定制和个性化。
web部件基类706的编辑器部件属性阐明了与web部件相关联的自定义编辑器部件的集合。自定义编辑器部件从其依赖的编辑器部件基类708依赖于部件基类702,并在下文详细描述。这一属性在本示例中是不可定制或个性化的。
web部件基类706的IsShared属性指示特定部件是否在多个用户之间共享,或者它是否仅对当前用户可用。这一属性是不可定制或个性化的。web部件基类706的MissingAssembly属性包含当用户试图添加在未在web页服务器上安装的组件中存在的web部件时所显示的文本。这一属性是不可定制或个性化的。web部件基类706的TitleURL属性包括到包含关于特定web部件的补充信息的HTML文档的URL。如果被指定,这一链接显示在框体的标题栏中。这一属性可由所有用户定制并个性化。web部件基类706的Verbs属性阐明了与特定web部件关联的动词(OK、应用、关闭、最大化、最小化等等)的集合。这一属性是不可定制或个性化的。
web部件一般,尽管不是始终,在区域内展现。web部件基类706的区域属性阐明了包含该web部件的web部件区域。这一属性不可定制或个性化。web部件基类706的ZoneID属性阐明了包含特定web部件的区域的ID。这一属性是可定制和可个性化的。web部件基类706的ZoneIndex属性阐明了区域中web部件相对区域中其它web部件的索引。
除属性之外,特定的类也包括方法。方法是一种调用该类的功能的方式。方法也包括关于如何向其它外部组件或类提供特定类的功能的信息。例如,web部件基类706包括GetConnectionInterface方法。这一方法是一种助手方法,使得消费者,即从其它web部件接收信息的web部件,能够向提供者,即向其它web部件如消费者提供信息的web部件查询另外的连接接口。这一方法包含遍历诸如变换器的连接对象的逻辑,变换器在下文详细讨论。
web部件基类706还包含OnEditModeChanged方法。当特定部件进入或退出编辑模式时调用这一方法。这一部件作为向想要挂钩到web部件管理器的部件开发者的便利添加。
对特定类的功能的进一步定义是枚举。枚举是设置属性值的特殊数据类型。当对一种属性存在枚举,可以构造包括用于选择属性值的下拉菜单的用户界面。例如,在web部件基类706上,一个枚举是WebPartHelpMode。这一枚举描述了应该如何处理对该部件的帮助URL。对WebPartHelpMode枚举有三个值可选。这些包括、模态、非模态以及定向。如果该特定枚举设置为模态,则应当以模态窗口来显示帮助URL。如果该枚举设置为非模态,则应当以在用户屏幕上保持活动直到明确地被解散的非模态窗口来显示帮助URL。如果枚举设置为定向,则整页被定向到帮助URL。
web部件基类706的另一枚举是部件FrameType。部件FrameType枚举由web部件和区域控制用来描述应用在每一web部件周围作为其用户界面的一部分的框体。在本示例中,该枚举可以具有五个值的其中之一,五个值包括无、仅标题、标题和边框、仅边框和缺省。如果值设置为无,则在web部件周围不显示框体。如果值设置为仅标题,则在web部件上仅显示标题。如果值设置为标题和边框,则展现标题栏和边框。如果值设置为仅边框,则仅展现边框,并且在web部件上不展现标题栏。如果值留在缺省上,则必须从包围的区域中获取框体类型。部件FrameType枚举的实现的一个示例作为FrameType下拉菜单412在图4中示出。
web部件基类706中另一可用的枚举是部件FrameState枚举。这一枚举由部件和区域控制用来描述web部件的状态。在本示例中,对这一枚举有三个值可用,即普通、最小化或缺省。如果值设为普通,则显示普通窗口。如果值设为最小化,则仅显示标题栏。如果值设为缺省,则在web部件上应该从包围的区域中获取框体风格。在web部件上,如果使用了缺省值,则应当使用标准窗体风格。部件FrameState枚举的实现的一个示例作为FrameState下拉菜单410在图4中示出。
编辑器部件基类依赖于部件基类702的另一个类是编辑器部件基类708,如图7所示。编辑器部件基类708包括超出部件基类702的功能,包括对编辑器部件基类708特定的特定属性和方法。编辑器部件可以与可用来编辑的任一单个web部件相关联。编辑器部件的控制用来通过用户界面“编辑”web部件。
编辑器部件基类708上一个可用的属性是AllowMinimize属性。这一属性指定编辑器部件是否可以被最小化。编辑器部件基类中另一可用属性是WebPartToEdit属性。这一属性是对编辑器部件所负责的控制的引用。编辑器部件基类中存在的另一属性是Display属性。这一属性指示编辑器区域是否应当显示这一部件。例如,如果编辑器部件没有对当前WebPartToEdit的用户界面,则它将这一属性设为假,以不显示特定的编辑器部件。
编辑器部件基类包括至少两个方法。一个方法是ApplyChanges方法。ApplyChanges方法在编辑器部件应当将值应用到其相关web部件时由区域调用。值为真指示保存是成功的,返回的值为假指示出现了错误。编辑器部件类中另一可用的方法是SyncChanges方法。这一方法在编辑器部件由于其它编辑器部件可能改变了与该编辑器部件相关的web部件的控制属性而需要同步其值时由区域调用。这通常在所有由其它编辑器部件应用的变化成功返回之后被调用。
从编辑器部件基类衍生的若干个类包括PropertyGridEditor部件710(PropertyGridEditorPart)、BehaviorEditor部件712(BehaviorEditorPart)、AppearanceEditor部件714(AppearanceEditorPart)、LayoutEditor部件716(LayoutEditorPart)以及各种第三方编辑器部件718。
从编辑器部件基类衍生的是PropertyGridEditor部件类710。PropertyGridEditor部件710是显示标记为web可浏览的属性的编辑器部件。PropertyGridEditor部件类710能够基于属性的类型对每一类型展现不同的用户界面。缺省用户界面为文本框,与类型变换器结合使用来设置控制属性值。对不同属性类型的用户界面如下。对串属性类型,所展现的用户界面为文本框。对整数、浮点数字或单位,展现的用户界面也为文本框。对布尔(Boolean)属性类型,展现的用户界面为复选框、单选按钮或下拉。对枚举,展现的用户界面为枚举值的下拉。对日期时间DateTime属性类型,展现的用户界面为文本框或日历。对颜色,展现的用户界面为文本框、下拉或颜色选择器。
从编辑部件基类衍生的控制不需要指定PropertyGridEditor部件控制710提供哪一用户界面。作为替代,它由编辑器部件自动确定。此外,PropertyGridEditor部件控制710包括若干种允许页开发者指示对常见类型展现的较佳的用户界面的属性。例如,当属性类型对复选框或单选按钮具有传导性时,在PropertyGridEditor部件控制710内的属性允许页开发者选择使用哪一类型的用户界面。
PropertyGridEditor部件控制710也包括若干种调整编辑器部件的外观和感觉的风格属性。一组风格属性在文本格式编排上居中,包括属性PropertyNameStyle、PropertySetterStyle以及ErrorStyle。此外,有一种风格可用来控制用于组织属性名称及其相关设置器的用户界面的表格的外观。这一表格的风格可以使用GridStyleProperty来控制。例如,用户能够配置编辑器部件来展现栅格周围的线条。这一风格将应用到包装属性名称和设置器用户界面的外部表格中。
一些可以在PropertyGridEditor类中指定的属性涉及为作出各种选择而显示的用户界面。这些属性包括缺省值,但也包括其它可接受的格式。PropertyGridEditor部件类的BoolEditorType属性确定哪一类型的设置器用户界面用于布尔属性。缺省类型是复选框,但是也可以使用单选按钮或下拉。ColorEditorType部件确定哪一类型的设置器用户界面用于颜色属性。缺省类型是下拉,但是如上所述,也可以使用颜色选择器或文本框。PropertyGridEditor部件的DateEditorType确定哪一类型的设置器用户界面用于日期属性。这一类型的缺省为文本框,但是也可以指定日历或其它合适的界面。PropertyGridEditor部件类710的UnitEditorType确定哪一类型的设置器用户界面用于单位属性。这一属性的缺省是文本框。
PropertyGridEditor部件类710的WebPartToEdit属性指编辑器部件负责的web部件。这一属性可以由编辑器部件用来调整其相关控制上的属性。
PropertyGridEditor部件类710的Display属性指示编辑器区域是否应当显示这一部件。例如,如果编辑器部件没有用于当前WebPartToEdit的用户界面,则Display属性将被设为假,使其不被显示。PropertyGridEditor部件的GridStyleProperty确定应用到可用属性的栅格上的表格风格。
PropertyGridEditor部件基类710也包括各种对其可用的方法。PropertyGridEditor部件基类710的ApplyChanges方法由编辑器区域在编辑器部件应当将值应用到其关联控制时调用。在编辑器区域中调用“OK”或“应用”动词来指示应当保存变化时,这一消息方法由主含编辑器部件的编辑器区域调用。如果产生错误,编辑器部件返回假,并且编辑器区域会适当地作出行动。例如,如果点击OK动词,则编辑器区域通常在调用ApplyChanges之后将页设置为普通状态。但是如果出现错误,则编辑器部件将保持可见,以纠正错误。返回的真值指示保存是成功的。
PropertyGridEditor部件会遇到两种不同的异常。第一种异常是由编辑器部件自身在试图将串转换为属性数据类型时抛出的。为方便起见,这些异常称为转换异常。第二种异常是由web部件或一些下部层,如数据库的属性设置方法抛出的。
PropertyGridEditor部件在可设置属性栅格的顶部显示一般错误消息。错误文本可通过ErrorText属性来设置。可以完成串替换来代替引发错误的第一个属性的名称。PropertyGridEditor部件可以通过捕捉并修正调用转换例程处的异常来显示友好转换错误消息。这类串替换包括“该属性需要数值”或“该值超出范围”或“该属性需要大于或等于0的数值”或“该属性需要整数值”或“该属性需要web地址”或对要设置的属性的任一其它合适的消息。
对于web部件抛出的异常,框架会如异常消息其本身来显示该消息。由此,web部件开发者可以将这些错误消息修正为一些友好格式,而不是标准异常消息。在本发明的一个实施例中,当使用TypeConverter时倾向于引发错误的属性不被标记为WebBrowsable。作为替代,提供了自定义编辑器部件来设置该属性。
在编辑器部件应当由于其它编辑器部件(即,web部件关联的控制)可能改变了控制属性而同步化其值时,编辑器区域调用PropertyGridEditor部件的SyncChanges方法。SyncChanges仅在ApplyChanges方法成功地从所有编辑器部件返回之后才被调用。由此,如果ApplyChanges方法的任一个返回假,指示出现了错误,则不会调用SyncChanges方法。
AppearanceEditor部件基类714依赖于编辑器部件708。AppearanceEditor部件基类714设置常见用户界面web部件属性,如标题、尺寸和框体类型。AppearanceEditor部件基类14所展现的AppearanceEditor部件的一个示例在图8A中示出,并一般在800指明。LayoutEditor部件基类716设置web部件布局属性,如对于区域,ZoneIndex、Hidden等等。LayoutEditor部件基类716展现的LayoutEditor部件的一个示例在图8B中示出,并一般在802指明。
BehaviorEditor部件基类712依赖于编辑器部件基类708。编辑器部件基类712设置行为属性,包括AllowClose、AllowMinimize、AllowExport、EnablePersonalization、TitleURL、EditURL、HelpURL和Description。当对所有用户修改web页或者当编辑未在多用户之间共享的部件时,BehaviorEditor部件可用。这是由于特定属性,如AllowClose应用到所有的用户,并且不应在每个用户的基础上设置。BehaviorEditor部件基类所展现的BehaviorEditor部件的一个示例在图8C中示出,并一般在804指明。
其它编辑器部件,如可定制第三方编辑器部件可以与各种web部件相关联。提供这些自定义编辑器部件的web部件通过它们的编辑器部件属性来展现它们。希望提供自定义编辑器部件的部件开发者能够覆盖特定web部件的编辑器部件属性。这一属性将在给定部件进入编辑模式时由EditorZone复选。
目录部件基类目录部件基类704(CatalogPart)依赖于部件基类702。目录部件是展现允许用户向web页添加新web部件实例的用户界面的部件。目录部件直接与web部件管理器连接来指示能够在每个用户的基础上向页添加控制。目录部件由目录区域来展现。两个依赖于目录部件基类的目录部件在图7中示出为PageCatalog部件720(PageCatalogPart)和TemplateCatalog部件722(TemplateCatalogPart)。也可以使用第三方目录部件。
PageCatalog部件720显示已关闭的web部件。已关闭定义为其可视性设置为假的任一部件。当将部件从目录添加时,它在该目录中不再可用。一般而言,目录从空开始,并使用以持久格式声明并已关闭的部件来逐渐填充。目录通常不允许在目录内静态地声明任一web部件。
TemplateCatalog部件722用来声明性地创建目录。包含在<CatalogTemplate>中的web部件可以添加到页。由TemplateCatalog部件声明的同一目录项目的多个复件能够添加到页。
依赖于目录部件控制的类向目录部件基类704提供了功能。这一功能的示例可以通过阅读图5A和5B来看到,图5A和5B一般示出了CatalogWebParts500和520。目录部件基类704包括用于包括web部件522的选择的控制。目录部件控制也可以用来选择适当的部件图标526来显示目录部件500和520中的部件。目录部件控制还包括用于显示部件描述的控制。也包括用于显示分页540、每页项目534、复选框风格、部件描述风格、部件图像风格、部件标题等等的控制。
目录部件基类中有两个公有的属性,AvailableParts和web部件管理器。AvailableParts属性是部件基类的属性,指示目录中可用于由目录部件800显示的部件。AvailableParts属性可以是动态的,如在具有变化的可用web部件组的web服务上。由于目录部件依赖于包含在web部件管理器中的方法来向页添加所选择的项目,每一目录部件包含到其web部件管理器的引用。这是类中的保护成员,并被包括来协助可扩充性。
还存在若干私有属性,如SelectedParts、ShowPartImage、ShowPartDescription、ShowPartTitle、PartTitleStyle、PartDescriptionStyle、PartImageStyle、CheckBoxStyle、Paginate、IttemsPerPage、PagerStyle。这些属性通过帮助定义目录部件的外观和感觉来协助显示目录部件。
存在一种Add方法来指定在何处将特定的添加的web组件添加到页。CatalogZone在调用添加动词时在所选择的目录部件上调用Add方法。目录部件然后调用web部件管理器的Add方法来向页添加web部件。在这一点之后,web部件将由web部件管理器跟踪。
另一从Object基类衍生的类是WebPartVerb类。WebPartVerbs用来定义由调用特定行动的区域展现的用户界面元素。点击事件可以在客户或服务器上处理。设计动词在菜单中展现,然而它们也可以展现为图像、按钮或链接。WebPartVerb类中的属性包括Checked、Description、Enabled、ImageURL、OnClick。
Checked属性定义所调用的动词是否应当显示的复选器用户界面。在菜单用户界面环境中,复选出现在动词文本旁边。Description属性包含为动词的描述的串。该串可以在工具提示中显示。Enabled属性定义是否启用特定动词。如果未启用动词,菜单将其显示为全灰或不显示。ImageURL属性定义与动词关联的图像的位置。Onclick属性是接受服务器端点击事件的事件处理器。OnClientClick属性是当点击特定的动词时所调用的客户端函数。Text属性是动词的文本名称。这一文本显示为菜单文本。Visible属性定义特定动词是否可见。
除上述定义的属性之外,本示例中WebPartVerb类也包括Invoke方法。Invoke方法是激发对特定动词所定义的点击事件的方法。
从Object衍生的基类还有WebPartEventArgs类。WebPartEventArgs类与WebPartVerbs类使用来指示与所调用的WebPartVerb相关联的web部件。该类包括定义与所调用的WebPartVerb相关联的web部件的web部件属性。
区域控制区域基类用来创建部件来以一致的方式布置部件控制。例如,区域负责展现围绕与该特定区域相关联的每一部件的色彩和用户界面。现在参考图9,示出了区域控制的层次。区域基类900(Zone)具有三个从其衍生的基类。这三个基类是WebPartZoneBase基类902、CatalogZone基类904和EditorZone基类906。区域基类900用来控制从部件基类702继承或衍生的所有控制的布局。WebPartZoneBase类902用于web部件控制。EditorZone基类906用来布局编辑器部件控制。CatalogZone基类904用来布局目录部件控制。
图10示出了可由区域展现的各种用户界面。使用图9和10,描述了与区域基类以及从区域基类衍生的类相关联的各种属性。一些属于区域基类900的属性可以用来定义如何在web页上展现特定区域。这些区域基类属性包括BackImageURL、FrameType、Title、TitleStyle以及TitleHorizontalAlign。这些属性的其中一些能够通过以这里先前所描述的方式的枚举来设置。
区域基类900包括定义应当用作特定区域的背景的图像的URL的BackImageURL属性。
区域基类900的FrameType属性用来指定区域如何在编辑、目录和设计模式中展现标题栏和围绕特定区域的边框。例如,参考图10,将FrameType值指定为无,引发区域既不展现区域框体1002也不展现标题栏1004。将Frametype值指定为TitleOnly,引发展现标题栏1004而不展现区域框体1002。将FrameType值指定为TitleAndBorder,引发同时展现标题栏1004和区域框体1002。将FrameType值指定为BorderOnly,引发仅展现区域框体1002。Frametype属性也可以表示为上文详细描述的枚举。
区域标题栏1004可以通过区域基类900的各种其它属性来控制。例如,TitleStyle属性可以用来对标题栏1004指定风格。由此,TitleStyle定义诸如前景色和背景色之类的事物。区域基类900的Title属性包含表示区域的标题的串。区域基类900的TitleHorizontalAlign属性定义用于区域标题的对齐。
此外,区域基类900还包含各类用于定义包含在特定区域内的任一web部件的特征的属性。例如,属性PartStyle、PartFrameType、PartTitleHorizontalalign、PartTitleStyle、PartVerbStyle以及PartContentStyle用来以与用于控制区域组件的展现的属性相类似的方式展现驻留在区域内的web部件的组件。参考图10,部件标题范围1006、部件动词范围1008、部件展现的内容1010、部件框体1012以及各类其它组件可通过设置上述属性的值来控制。
WebPartZoneBase类从区域基类900衍生的是WebPartZoneBase类902。设计WebPartZoneBase类902来主含web部件控制。WebPartZoneBase基类902包括若干属性。
WebPartZoneBase基类中的属性的一个集合定义了区域内的特定项目是否可个性化。WebPartZoneBase基类的AllowWebPartPersonalization属性指定特定区域是否在该区域内显示web部件的编辑链接。如果设为假,则如下所述,对该区域内的部件不允许拖放。WebPartZoneBase基类的LockLayout属性如果设置为真,则引发区域不允许移动或添加web部件。
WebPartZoneBase基类的若干个属性控制在区域内或不同区域之间拖拽所展现的web部件的能力。WebPartZoneBase基类的DragMode属性指定用于在web页周围移动部件的拖拽模式。DragMode属性具有三个值,包括Image、WebpartTitle和Normal。当将DragMode属性设置为Image时,使用由下文描述的DragImageURL属性指定的图像。当DragMode属性的值设置为WebPartTitle时,使用光标来拖拽web部件的标题栏。当将DragMode属性设置为Normal时,使用光标来拖拽整个web部件。WebPartZoneBase基类的DragImageURL属性,如上所述,指定了当DragMode设置为Image时所使用的图像。WebPartZoneBase基类的DragHighlightColor属性指定了当将区域作为目标时所使用的加亮颜色。换言之,这一属性指定了展现在客户上的放置用户界面的颜色。放置用户界面包括包围目标区域的边框以及用来指示在其它web部件之间的插入点的条。
WebPartZoneBase基类902还包括用于定义如何在特定区域内显示各类web部件的各种属性。WebPartZoneBase基类的EditWebPartStyle属性指定用于当前正在编辑的web部件的风格。该风格仅应用到处于编辑模式的web部件。WebPartZoneBase类902覆盖区域基类的PartStyle属性中设置的任一风格。
WebPartZoneBase基类的Orientation属性指定了区域是否水平或垂直布置web部件。图11A和图11B说明了水平布置的区域1102和垂直布置的区域1104。WebPartZoneBase基类的PartTitleFormatString属性指定了如何组合web部件的Title和Caption属性来组成以色彩显示的标题。WebPartZoneBase基类的ShowIconInPartTitle属性指定了部件图标,即特定web部件的图形表示是否在标题栏中显示。
WebPartZoneBase基类的一些属性指定了关于web部件中的动词的外观的特定特征。WebPartZoneBase基类的Verbs属性定义了一组应用到区域内所有部件的动词。这些在web部件动词与区域内建立的动词如WebPartCloseVerb之间应用。可能定义的Verbs的示例包括关闭web部件的WebPartCloseVerb、最小化web部件(仅显示web部件标题)的WebPartMinimizeVerb、恢复最小化的web部件的WebPartRestoreVerb以及将用户引导到帮助URL的WebPartHelpVerb。动词展现的各种示例在图12中示出,图12示出了关闭动词1202、最小化动词1204、恢复动词1206和帮助动词1208。WebPartZoneBase基类的VerbButtonType属性指定了如何显示动词。如果WebPartVerb属性指定按钮类型是图像但未定义图像URL,则将WebPartVerb展现为链接按钮。WebPartZoneBase基类的VerbStyle属性定义了应用到动词的风格。
WebPartZoneBase基类的WebPartPadding属性定义了在区域内的web部件之间应用的填充。WebPartZoneBase基类的WebParts属性列出了区域内web部件的集合。
从WebPartZoneBase基类衍生的类是图9所示的WebPartZone类,并一般在908指明。WebPartZone类添加区域Template属性使得web部件能够以持久格式添加。
编辑器区域基类设计EditorZone基类来展现编辑器部件及其关联的用户界面。示例性编辑器部件404在图4中示出。在本发明的一个实施例中,EditorZones展现每一编辑器部件周围的最小用户界面。EditorZone基类906包括若干属性,包括ApplyVerb、CancelVerb、CloseImageURL、EditorParts、ZoneTemplate、FooterStyle、OKVerb、ShowCloseImage、VerbButtonType、VerbStyle以及WebPartToEdit。EditZone基类也包括方法的选集,包括ApplyHandler、CancelHandler和OKHandler。
EditorZone基类的ApplyVerb属性定义执行应用操作的动词,如图4所示的应用动词按钮416。调用由ApplyVerb属性定义的动词导致调用每一编辑器部件的ApplyChanges属性,并随后在每一编辑器部件上调用SyncChanges。
EditorZone基类的CancelVerb属性定义执行取消操作的动词,如图4所示的取消动词按钮422。调用CancelVerb通过web部件管理器将web页返回至普通视图,如下文详细描述。CancelVerb不调用任一编辑器部件的ApplyChanges方法。
EditorZone基类的OKVerb属性指定执行OK操作的动词,如图4所示的OK动词按钮420。对这一动词的调用导致在每一编辑器部件上调用ApplyChanges属性,并随后将页返回至普通视图。EditorZone基类的ShowCloseImage属性确定是否在区域的右上角显示关闭图形。EditorZone基类的CloseImageURL属性指定了在区域的右上角显示的图标的图像URL。
EditorZone基类的VerbButtonType属性确定用来显示每一动词的按钮类型。如果WebPartVerb不指定图像URL,而按钮类型设置为图像,则将动词文本与对图4所示的OK、Apply和Close动词按钮类似地展现链接按钮。EditorZone基类的VerbStyle属性定义应用到每一区域动词的风格。
EditorZone基类的WebPartToEdit属性指定了正在编辑的web部件。该属性被委托给基类中的web部件管理器。EditorZone基类的编辑器部件属性指定了该区域中编辑器部件的只读集合。EditorZone基类的ZoneTemplate属性列出了特定编辑器区域中的编辑器部件。EditorZone基类的FooterStyle属性指定了应用到特定区域的页脚424的风格。
在一个示例性实施例中,EditorZone类接收web部件进入编辑模式的通知。这引发EditorZone建立一组新的编辑器部件。EditorZone调用当前正在编辑的web部件的BuildEditor部件方法来获得任一自定义编辑器部件。EditorZone然后以其ZoneTemplate例示该编辑器部件。然后可以由用户向正在编辑的web部件作出变化。如果用户对作出的变化满意,则用户可以选择OK或应用动词按钮,将如上所述地例示ApplyVerb属性或OKVerb属性。
CatalogZone基类CatalogZone用来显示目录部件。通常在任一给定的时刻仅一个目录可见。CatalogZone基类904包括以下属性AddVerb、AvailableCatalogText、CancelVerb、目录部件ZoneTemplate、CloseImageURL、FooterStyle、TargetZone、TargetZoneIndex、SelectedCatalogPart、ShowCloseImage、ShowTargetZoneUserInterface、VerbButtonType以及VerbStyle。CatalogZone还包括以下方法AddHandler和CloseHandler。
CatalogZone基类904的若干属性定义了目录区域的布局和内容的外观。CatalogZone基类的AvailableCatalogText属性包括位于可用目录列表之前的文本。CatalogZone基类的ZoneTemplate属性是包含包含在特定目录区域内的目录部件的模板。CatalogZone基类的SelectedCatalogPart属性指定了当前选择的目录。这一属性可以具有空值,如当该区域中没有目录时。CatalogZone基类的ShoeTargetZoneUserInterface属性指定是否在该区域的底部显示目标区域用户界面。CatalogZone基类的FooterSytle属性定义了应用到特定区域的页脚的风格。
CatalogZone基类904的若干属性定义了在目录区域中如何展现动词和动词按钮。CatalogZone基类的AddVerb属性一般位于目录区域的页脚。当调用时,调用当前选择的目录的Add方法。CatalogZone基类的CancelVerb属性定义执行取消操作的动词。这将页返回至普通视图。CancelVerb不在任一目录部件上调用Add方法。CatalogZone基类的CloseImageURL属性阐明了在区域的右上角显示的图标的图像URL。CatalogZone基类的TargetZone属性指定当前对该目录区域选择的目标区域。当在所选择的web部件上调用Add方法时,这将作为一个参数传递。CatalogZone基类的ShowCloseImage属性指定是否在目录区域的右上角显示关闭图形。CatalogZone基类的VerbButtonType属性指定用来显示每一动词的按钮类型。如果web部件的动词没有图像URL,但是按钮类型设置为图像,则将文本显示为链接按钮。CatalogZone基类的VerbStyle属性定义应用到每一区域的动作的风格。
CatalogZone基类的其它属性帮助管理特定目录区域的目录部件。CatalogZone基类的目录部件属性列出了特定目录区域中的目录部件的集合。CatalogZone基类的TargetZoneIndex属性定义了在目标区域中应当部件之处的索引。
web部件管理器第三个基类的一般组是web部件管理器基类。web部件管理器基类跟踪web页上的web部件、跟踪web页上的区域并跟踪每一区域中有哪些web部件。web部件管理器也通过跟踪web页的编辑状态来处理web页的个性化。为方便如图6所示并描述的连接,web部件管理器跟踪web部件之间的连接并启动web部件之间的连接通信。web部件管理器可能连接到并依赖数据库,用于web部件的定义和个性化。web部件管理器也负责展现任一需要用来处理客户操作,如在编辑模式中拖拽web部件的脚本。web部件管理器可以如其它任一控制一样,通过一个示例中的持久格式添加到web页。通常在一个web页上仅显示web部件管理器的一个实例。
web页在其生命周期之内具有各种阶段。这些阶段包括初始化、加载、预展现、保存状态、展现、布置以及卸载。web部件管理器可能贯穿一些阶段具有与web页上其它部件的交互。在初始化阶段,例示web部件管理器、例示区域、区域将其自身向web部件管理器注册并且使用来自模板的web部件构造控制树。在加载阶段中,信号连接到关于连接的web部件并且web部件管理器在每一web部件上设置Connection属性。在预展现阶段,注册web部件管理器客户脚本块。在展现阶段,web部件管理器跟踪并控制区域和web部件如何展现内容。
web部件管理器包括若干属性来实现上述功能,包括DisplayMode、WebPartToEdit、ClosedWebParts以及web部件区域。web部件管理器也包括若干方法,包括AddWebPart、BeginWebPartEditing、CreateConnection、DeleteWebPart、EndWebPartEditing、XmlDocument、Export、Import、MoveWebPart、RegisterConnectionEndPoint、RegisterZone以及SetDisplayMode。
web部件管理器基类的DisplayMode属性定义页的当前显示模式。操作包括普通、编辑、设计、目录等等。普通显示模式的一个示例在图1到图3中示出并描述。当web页为普通显示模式时,web部件以普通模式显示,并且编辑器区域、目录区域以及区域边框不可见。编辑显示模式的一个示例在图4中示出并描述。当web页在编辑显示模式时,web部件以编辑模式展现,并且编辑器区域以及区域边框可见,而目录区域不可见。目录显示模式的一个示例在图5中示出。当web页在目录显示模式时,web部件以普通模式展现,并且目录区域和区域边框可见,而编辑器区域不可见。当web页在设计显示模式时,web部件以普通模式展现,并且区域边框可见,而编辑器区域和目录区域不可见。个别web部件可能在编辑模式。这使web部件能够以一直线显示用户界面,或者在编辑器区域中显示任一相关的编辑器部件。通过下列事件通知web部件当前的模式DisplayModeChanging、WebPartAdded、WebPartEditModeChanged、WebPartEditModeChaning以及WebPartDeleted。
web部件管理器基类的WebPartToEdit属性在当web页处于编辑模式时用来标识当前正在编辑的web部件。这一属性由编辑器区域和编辑器部件使用。web部件管理器基类的ClosedWebParts属性标识可视属性设置为假的web部件组。web部件管理器基类的WebParts属性标识web部件管理器负责的所有web部件,包括在页上为静态的部件和已动态添加的部件。
web部件管理器基类的Zones属性标识web部件管理器当前正在管理的web部件组。每一web部件区域在OnInit中将其自身向web部件管理器注册,OnInit然后将该区域添加到该组。在web页的生命周期的后段,每一区域调用web部件管理器的GetWebPartsForZone来发现该区域当前包含哪些web部件。WebPartZone的在web部件管理器上对RegisterZone的调用可选地传递web部件的初始组。WebPartZone然后可以调用GetWebPartsForZone来发现哪些web部件分配到特定区域。GetWebPartsForZone方法,如下所述,允许区域确定它们负责展现的web部件。这一方法估计web部件管理器的web部件集合来看哪一web部件属于合适的区域。web部件管理器根据WebPart.Zone、WebPart.Visible和WebPart.Roles过滤web部件。区域然后负责检查特定web部件是否隐藏。
web部件管理器基类中有各种可用方法。调用web部件管理器基类的BeginWebPartEditing方法来开始编辑web部件。调用该方法时激发WebPartEditModeChanging和WebPartEditModeChanged事件。如果web部件已处于编辑模式,则调用EndWebPartEditing。如果成功,则将WebPartToEdit属性设置为web部件参数值。
调用web部件管理器基类的EndWebPartEditing方法来结束BeginEditingWebpart方法。调用该方法时激发WebPartEditModeChanging和WebPartEditModeChanged事件。如果成功,则清除WebPartToEdit属性。
调用web部件管理器基类的MoveWebPart方法以在区域之间移动web部件。为调用该方法,使用三个参数WebPart参数指定要移动的web部件、Zone参数指定目标区域以及ZoneIndex参数指定目录区域中添加web部件之处的索引。
每一区域在需要展现其包含的web部件时调用web部件管理器基类的GetWebPartsForZone方法。GetWebPartsForZone方法允许区域确定其负责展现的部件。该方法估计web部件管理器的web部件集合来看哪一web部件属于适当的区域。web部件管理器根据WebPart.Zone、WebPart.Visible以及WebPart.Roles来过滤web部件。该区域然后负责检查特定的部件是否隐藏。该方法返回web部件的集合。
图13示出并描述了用于确定要返回的web部件集合的方法的详细流程图。当区域调用GetWebPartsForZone方法(1302)时开始该方法。web固件管理器察看每一部件(1304)。web部件管理器检查web部件中指定的区域是否为目标区域(1306)。如果该区域不是目标区域,则进程返回,来检查其它web部件。如果该区域是目标区域,则web部件管理器检查该web部件的Visible属性是否设置为真(1308)。如果Visible属性未设置为真,则进程返回,来检查其它web部件。如果web部件的Visible属性设置为真,则web部件管理器检查该web部件是否可用于当前角色(如在个性化、自定义和开发情况下)(1310)。如果该web部件不可用于web部件的Role属性定义的当前角色,则进程返回,来检查其它web部件。如果该web部件可用于当前角色,则将该web部件添加到特定区域的WebpartCollection属性(1312)。然后将WebPartCollection返回(1314)至web部件管理器,循环该进程来继续检查每一web部件。
调用web部件管理器的AddWebPart方法来向web页添加web部件。任一通过该方法添加的web部件被认为是动态的,并且之后可以被删除。AddWebPart方法采用或者web部件的实例,或者XML DWP文件。在任一情况下,web部件管理器通常创建一个动态控制。在该方法的这一示例中指定了三个参数WebPart参数标识要添加到web页的web部件、Zone参数指定应当向其添加web部件的区域、以及ZoneIndex参数指定区域中应当添加web部件之处的索引。
web部件管理器基类的RegisterConnectionEndPoint方法由希望注册连接端点的web部件调用,使得web部件可以通过如上所述的连接来交互。该方法中传递的参数是ConnectionEndPoint,指定了要注册的连接端点。
当要从页中移除web部件时,调用web部件的基类的RemoveWebPart方法。这一方法清除该部件上任意个性化设置。对于在页上声明的部件(并且因此无法被移除),该方法将Visible属性设为假。对于动态地添加到页的部件,移除对动态web部件的引用。该方法中传递的参数是web部件参数,指定了要移除的web部件。
web部件管理器基类的SetDisplayMode方法设置web页的显示模式。这一模式激发下述WebPartDisplayModeChanging和WebPartDisplayModeChanged事件。此外,当有部件当前正在被编辑时如果web页移出编辑模式,该方法终止web部件的编辑。在该方法中传递的参数是DisplayMode参数,设置目标web部件的显示模式。
web部件管理器包括若干事件,包括ClosedWebPartsChanged、DisplayModeChanged、DisplayModeChanging、WebPartAdded、WebPartEditModeChanged、WebPartEditModeChanging以及WebPartDeleted。当关闭部件或者从CloseWebParts集合中移除部件时,激发web部件管理器基类的的ClosedWebPartsChanged事件。在显示模式改变之后,激发web部件管理器基类的DisplayModeChanged事件。在改变显示模式之前激发web部件管理器基类的DisplayModeChanging事件。该事件的处理器能够调整事件自变量来避免显示模式的改变。在web部件放入编辑模式或从其中移除之后,激发web部件管理器基类的WebPartEditModeChanged事件。在web部件放入编辑模式或从其中移除之前,激发web部件管理器基类的WebPartEditModeChanging事件。
在web部件在数据库中声明而不是以web部件区域的持久格式声明的情况下,开发者可以扩充web部件管理器。应当覆盖CreateChildControls方法来从一个替换源获取web部件。web部件管理器上的WebpartCollection属性依赖其子控制,因此这些属性不需要覆盖。Delete、Add和Move方法也可能被覆盖来与替换数据存储交互。
理解上述基类的基本功能之后,可以在基类及其衍生的控制的配合动作的语境下解释部件基类、区域基类和web部件管理器基类的其它特点。一些这类可扩充功能包括导入和导出功能、web部件之间的连接以及web部件配置。
应用能够允许web部件属性的导出和导入功能。这使用户能够共享他们的web部件设置。当执行导出时,创建web部件属性的完整XML表示。该文档的格式是XML文件,并由web部件对XML串行化元数据属性的使用来控制。该XML文档然后可以被导入。通常,仅标记为可个性化的属性包括在部件的最终XML表示中。在本发明的一个实施例中,能够在web部件上创建导出按钮来启用导出功能。
XML格式用来描述web部件个性化的属性设置。文件包括类型名称、装配名称以及用于web部件的各种属性的值。一旦加载了文件,web部件管理器例示指定的对象,分析文件中的XML并将属性应用到对象。这一web部件然后被添加到页的web部件集合并能够作为任一其它动态部件来处理。
可以连接web部件来共享信息与功能。结合图6的描述所描述的连接通过成对的消费者和提供者模型来工作。支持连接功能的部件必须将其自身向web部件管理器注册。web部件管理器然后负责挂钩部件之间的连接。
对于要连接的web部件,进行以下步骤消费者和提供者web部件向web部件管理器注册连接端点;web部件管理器通过委托向提供者要求连接对象;web部件管理器通知web部件他们已通过委托连接;以及web部件通过理解的连接接口通信。连接可以通过Connections属性以web部件管理器的持久格式定义。
连接模型在连接的每一端点上基于提供者和消费者。每一连接通过主连接接口工作。这一接口被提供者和消费者所理解。仅提供者需要实现该接口,因为消费者仅通过接口方法、属性和事件来调用。连接通常不是双向的,除非特定提供者和消费者的语义允许他们执行双向通信。
框架包含对服务器端连接的主支持。在页执行的过程中出现服务器端连接,并且服务器端连接仅在web页生命周期中为活动的。客户端连接是不需要回标帖(post-back)而出现在客户端的连接。如果提供者和消费者都实现了对客户端通信的支持,则连接框架允许连接的部件在客户上通信。这允许第三方装入对客户端连接的支持。
web部件管理器负责跟踪并初始化所有web部件的通信。当每一部件向web部件管理器注册连接端点时连接进程开始。在生命周期的适当阶段,web部件管理器调用对提供者的委托,在该点上,提供者返回或者其自身,或者另一连接对象的实例。在web部件接收连接对象之后,它调用对ConnectConsumerCallBack的委托。在该点上,消费者能够自由地通过适当的连接接口通信。
希望参与连接的web部件定义一个或多个连接端点ConnectionEndPoint,由web部件管理器用来将web部件共同挂钩。每一连接端点ConnectionEndPoint包括若干属性,标识该部件上的连接点ConnectionEndPoint。Name定义了连接点ConnectionEndPoint的名称,例如“SelectedRow”。ConnectionInterface为该连接定义主接口,如IFieldData。CallBackDelegate由提供者用来指向返回实现连接接口ConnectionInterface的对象的方法,并由消费者用来指向接收实现连接接口ConnectionInterface的对象的方法。Description包括描述向最终用户的连接端点ConnectionEndPoint,如“提供选择的行来……”。
RegisterProvider由提供者web部件在OnInit中调用。GetConnectionCallback自变量是向负责创建连接Connection对象的方法的委托。提供者Provider调用RegisterProvider方法的一个示例如下
RegisterConsumer由消费者web部件在OnInit中调用。ConnectionConsumerCallback参数是向负责接受连接的方法的委托。消费者web部件调用RegisterConsumer方法的示例如下 变换器是具有将一个连接接口ConnectionInterface变换为另一个的逻辑的对象。例如,变换器使理解IFieldData的部件能够与实现IRowData的部件对话。为完成这一目的,变换器从提供者发送的行数据中选择适当的单元并将其展现给消费者。IConnection接口由所有连接中涉及的变换器实现。它用来查询哪一连接接口可用。
变换器的一个实施例的功能如图14所示。说明提供者web部件1402为股票列表web部件。提供者web部件1402包括SelectedStockList连接端点ConnectionEndPoint。提供者web部件1402通过第一通信接口1406,本示例中为IRowData接口,耦合至变换器1404。这些接口在下文详细阐明。变换器1404将沿第一通信接口1406发送的数据变换为消费者web部件1408可读的格式,如本示例中所示的股票图形部件。然后沿第二通信接口1410向消费者web部件1408发送合适的数据。
GetConnectionInterface方法在基本web部件类中存在。它使web部件能够检查它们所使用的连接对象是否实现额外的连接接口。这一方法应当在变换器在主连接接口中存在的情况下使用。
消费者web部件通过Provider接口与提供者通信。该接口定义消费者如何期望与提供者交互。框架实现若干种提供者接口。例如,IFieldData提供了到数据的单个单元的接口。IRowData提供了到列表的行的接口。IRowData接口适合选择驱动行动。IListData提供了到整个列表的接口。该IListData接口适合提供整个数据组的替换景象的web部件。IModifyRow接口能够用来在列表中插入、更新以及删除行。
当web部件注册其自身时,它标识了它所理解的提供者接口。web部件可以作出若干个对RegisterConsumer/RegisterProvider方法的调用来指示他们理解多接口。例如,列表部件能够支持IRow和IModifyRow。消费者部件也能够理解这两个接口。web部件也可以决定以不同的语义实现同一接口两次。例如,列表web部件可以对当前选择的行和鼠标当前所覆盖的行支持IRow。这可以通过实现两个单独的实现IRow的连接类来实现。
与这些连接类的每一个相关联的可以是对第二连接接口的不同支持。例如,对选择的行支持IRowModify,但对覆盖的行不支持。一旦连接了两个web部件,消费者能够向提供者查询其支持的接口。这可以通过web部件基类中定义的GetConnectionInterface方法来实现。希望跨连接共享更多高级功能的开发者可以实现其消费者web部件能够理解的自定义提供者接口。
GetConnectionCallback用作向负责实际创建并返回连接对象的功能的委托。它在RegisterConneetion方法中被引用。接受实际调用的方法必须匹配GetConnectionCallback方法的签名。
ConnectConsumerCallback由消费者部件用来标识当建立特定连接时所要调用的方法。这一委托在RegisterConsumer方法中使用。
本发明的实施例包括专用或通用计算机,包括各类计算机硬件,如下文所详细描述的。
处于本发明的范围之内的实施例也包括用于携带或在其上储存计算机可执行指令或数据的计算机可读媒质。这类计算机可读媒质可以是通用或专用计算机可访问的任一可用媒质。作为示例而非局限,这类计算机可读媒质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可以用来以计算机可读指令或数据结构的形式携带或储存所期望的程序代码方法并可由通用或专用计算机访问的其它任何媒质。当通过网络或另一通信连接(任一硬布线、无线或硬布线和无线的组合)向计算机传输或提供信息时,计算机适当地将该连接视为计算机可读媒质。因此,任一这类连接适当地被称为计算机可读媒质。上述的组合也应当包括在计算机可读媒质的范围内。计算机可执行指令包括,例如,引发通用计算机、专用计算机或专用处理设备执行特定的功能或功能组的指令和数据。
以下讨论提供了可在其中实现本发明的合适计算环境的简要一般描述。尽管并非所需要,本发明在计算机可执行指令的一般语境下描述,计算机可执行指令如程序模块,由网络环境中的计算机执行。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。计算机可执行指令、相关数据结构以及程序模块代表了用于执行这里披露的方法的步骤的程序代码方法。这类可执行指令或相关数据结构的特定顺序代表用于实现这类步骤中描述的功能的相应动作的示例。
本领域的技术人员可以理解,本发明可以在具有多种类型的计算机系统配置的网络计算环境中实践,计算机系统配置包括个人计算机、手持式设备、多处理器系统、微处理器系统或可编程消费者电子产品、网络PC、小型机、大型机等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接(或者通过硬布线链路、或者通过无线链路、或者通过硬布线和无线链路的组合)的本地和远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
本发明可以在不脱离其精神或本质特征的情况下以其它特定形式来实施。所描述的实施例在所有方面都被认为仅为说明性而非限制性的。因此,本发明的范围由所附权利要求而非之前的描述来指示。所有处于权利要求的等效权利要求的意思和范围之内的变化都包含在其范围之内。
权利要求
1.一种用于创建模块化web应用的框架,其特征在于,所述框架包括一个或多个部件控制,其中,每一所述部件控制具有准许每一部件如同其它部件控制一样来展现的一个或多个属性;一个或多个区域控制,其中,每一所述区域控制在每一区域内布置所述一个或多个部件控制中的至少一个;以及web部件管理器,跟踪所述一个或多个部件控制中的哪些是在每一区域控制之内。
2.如权利要求1所述的框架,其特征在于,所述每一部件控制的所述一个或多个属性启用特定区域控制以在所述特定区域控制内以及每一所述部件控制的功能不同之处展现每一所述部件控制的一致用户接口。
3.如权利要求1所述的框架,其特征在于,所述部件控制从一个或多个部件基类创建。
4.如权利要求3所述的框架,其特征在于,所述一个或多个部件基类包括部件基类、从所述部件基类衍生的web部件基类、从所述部件基类衍生的目录部件基类以及从所述部件基类衍生的编辑器部件基类。
5.如权利要求4所述的框架,其特征在于,所述编辑器部件基类用于设置控制属性的模块化控制,所述控制属性包括个人设置、用于所述一个或多个部件控制的布局属性以及用于所述一个或多个部件控制的行为属性中的一个或多个。
6.如权利要求4所述的框架,其特征在于,所述目录部件基类被用于提供能够被添加到至少一个所述区域控制的web部件的目录的模块化控制。
7.如权利要求5所述的框架,其特征在于,所述一个或多个区域控制从一个或多个区域基类创建。
8.如权利要求7所述的框架,其特征在于,所述一个或多个区域基类包括用于布置从部件基类继承的控制的区域基类;从所述区域基类衍生并用于web部件控制的web部件区域基类;从所述区域基类衍生并用于布置编辑器部件控制的编辑器区域基类,所述编辑器部件控制用于布置所述编辑器控制;以及用于目录控制的目录部件基类。
9.如权利要求1所述的框架,其特征在于,所述web部件管理器是部件控制,并且每一所述区域控制向所述web部件管理器注册。
10.如权利要求9所述的框架,其特征在于,所述web部件管理器跟踪所述一个或多个部件控制之间的连接,并且其中,所述web部件管理器从所述web页添加、移除以及移动部件控制。
11.如权利要求1所述的框架,其特征在于,所述一个或多个部件控制的至少一些包括用于与其它部件控制通信的接口。
12.如权利要求11所述的框架,其特征在于,所述一个或多个部件控制的至少一些向所述web部件管理器注册所述接口。
13.如权利要求1所述的框架,其特征在于,所述一个或多个部件控制的至少一些包括用于与其它部件控制通信的多个接口,并且其中,所述一个或多个部件控制的至少一些向所述web部件管理器注册所述多个接口。
14.如权利要求13所述的框架,其特征在于,所述多个接口的至少一部分是有不同语义的相同接口。
15.一种用于创建可由开发者和用户定制的web页的框架,其特征在于,所述框架包括从其中衍生部件控制的部件基类,其中,所述部件控制包括web部件、目录部件和编辑器部件的一个或多个;从其中衍生区域控制的区域基类,所述区域控制包括以下的一个或多个web部件区域,用于布置包含在所述web部件区域中的web部件;目录区域,用于布置包含在所述目录区域中的目录部件;以及编辑器区域,用于布置包含在所述编辑器区域中的编辑器部件。
16.如权利要求15所述的框架,其特征在于,部件控制的每一实例在区域控制的实例中定义。
17.如权利要求15所述的框架,其特征在于,特定区域控制内的部件控制的每一实例具有类似的用户界面。
18.如权利要求15所述的框架,其特征在于,所述部件控制的至少一些包括用于与在同一区域控制内或另一区域控制内的另一部件控制连接的连接端点。
19.如权利要求15所述的框架,其特征在于,所述编辑区域适合于用来提供在所述部件基类中定义的属性的用户输入。
20.如权利要求19所述的框架,其特征在于,所述属性是可导出的。
21.如权利要求20所述的框架,其特征在于,所述属性的用户输入使用XML文档导出。
22.如权利要求15所述的框架,其特征在于,它还包括web部件管理器类,其中,所述web部件管理器类跟踪包含在所述区域控制内的所述部件控制的任何实例。
23.如权利要求22所述的框架,其特征在于,特定部件控制能够在同一区域控制内或者向另一区域控制拖放。
24.如权利要求15所述的框架,其特征在于,特定目录部件适用于提供可由用户选择来添加到特定区域控制的web部件的列表,其中,所述特定目录部件包括用于允许用户从被添加到web页的所述特定区域控制的所述web部件列表中选择的装置。
25.如权利要求15所述的框架,其特征在于,每一部件控制都在持久格式文件中声明。
26.如权利要求15所述的框架,其特征在于,所述部件基类包括以下的一个或多个确保每一所述部件控制使用类似的用户界面来展现的属性;定义特定区域控制如何展现在所述特定区域中每一部件控制周围的用户界面的框体类型属性;定义特定部件控制对哪些用户可用的角色属性;以及每一部件控制的一个或多个部件图标。
27.如权利要求15所述的框架,其特征在于,所述每一web部件包括以下的一个或多个用于与其它web部件通信的连接接口;用于启用所述web部件的个性化的启用个性化属性;帮助属性;确定向最终用户展现哪一用户界面的一个或多个允许属性;定义web部件是最小化、最大化还是普通的框体状态;当设置为真时不显示web部件的隐藏属性;标识包含所述web部件的区域控制的区域属性;包含所述区域控制的ID的区域ID;包括与所述区域控制中其它web部件相关的所述区域控制的索引的区域索引。
28.如权利要求27所述的框架,其特征在于,所述编辑器部件是以下的一个或多个设置web部件的用户界面属性的外观编辑器部件,其中,所述用户界面属性包括标题、高度、宽度、框体状态以及框体类型的一个或多个;设置web部件的布局属性的布局编辑器,其中,所述布局属性包括隐藏属性、区域属性以及区域索引属性的一个或多个;设置行为属性的行为编辑器部件;显示被标记为web可浏览的属性的属性栅格浏览器编辑器部件;以及自定义编辑器部件。
29.如权利要求15所述的框架,其特征在于,所述目录部件展现了准许最终用户向web页添加新web部件的用户界面。
30.如权利要求15所述的框架,其特征在于,它还包括管理特定web页上的所有部件控制的web部件管理器,其中,所述web部件管理器负责以下的一个或多个跟踪所述特定web页上的web部件控制;跟踪所述特定web页上的web部件区域控制;跟踪所述特定web页上的部件控制之间的连接;启动所述部件控制之间的通信;以及跟踪所述特定web页的编辑状态。
31.如权利要求30所述的框架,其特征在于,所述web部件管理器展现了用于添加、移除以及移动部件控制的一个或多个方法。
32.如权利要求31所述的框架,其特征在于,所述一个或多个方法由目录部件、编辑器部件以及区域控制调用。
33.如权利要求29所述的框架,其特征在于,所述用户界面可由管理员用来为所有用户向web页添加新web部件。
34.如权利要求19所述的框架,其特征在于,所述属性的用户输入设置了所有用户的属性,并且所述属性的用户输入由管理员执行。
35.如权利要求15所述的框架,其特征在于,属性在所述部件基类中定义,所述属性可由web页开发者以持久格式定义。
36.一种用于创建模块化并且可由开发者或最终用户定制的web页的方法,其特征在于,所述方法包括在持久格式文件中声明至少一个区域控制,其中,每一区域控制都从区域基类中衍生;在每一区域控制中声明至少一个web部件控制,其中,所述web部件控制从部件类衍生;以及由每一区域控制展现每一所述区域控制的用户界面元素以及所述至少一个web部件控制的一些用户界面元素,使得至少一个web部件控制的每一个在每一区域内具有类似的外观。
37.如权利要求36所述的方法,其特征在于,在所述区域控制中声明至少一个web部件控制还包括在控制格式文件中声明所述至少一个web部件控制。
38.如权利要求37所述的方法,其特征在于,它还包括声明web管理器部件,其中,所述web管理器部件跟踪每一至少一个区域控制中的所述至少一个web部件控制。
39.如权利要求38所述的方法,其特征在于,它还包括所述web管理器部件启动第一web部件控制和第二web部件控制之间的连接,使得所述第一web部件控制与所述第二web部件控制通信。
40.如权利要求36所述的方法,其特征在于,它还包括导出特定web部件或所述特定web部件的属性。
41.如权利要求36所述的方法,其特征在于,它还包括导入特定web部件或所述特定web部件的属性。
42.如权利要求41所述的方法,其特征在于,它还包括使用所导入的属性设置当前web部件控制的所述属性的至少一部分。
43.如权利要求36所述的方法,其特征在于,它还包括为每一web部件控制定义一角色属性来指定能够访问每一web部件控制的用户。
44.如权利要求36所述的方法,其特征在于,它还包括以下的一个或多个使用从所述部件类衍生的编辑器部件来编辑特定web部件控制,其中,所述编辑器部件包含在编辑器区域内;使用从所述部件类衍生的目录部件向特定区域添加额外的web部件控制,其中,所述目录部件包含在目录区域内;从区域移除所选择的web部件控制;准许每一web部件控制的一个或多个属性可由最终用户定制;以及允许最终用户共享对web部件控制的个性化。
45.如权利要求36所述的方法,其特征在于,它还包括使用所述部件控制的属性以使最终用户能够个性化所述部件控制。
46.如权利要求36所述的方法,其特征在于,它还包括使用所述部件控制的属性来防止最终用户个性化所述部件控制。
47.如权利要求36所述的方法,其特征在于,它还包括以所述持久格式声明属性来控制向所有最终用户的用户界面元素展现。
48.如权利要求36所述的方法,其特征在于,它还包括与每一区域控制的所述用户界面元素以及所述至少一个web部件控制的所述一些用户界面元素交互来控制对所有用户类似的外观。
49.具有用于执行权利要求36所述的方法的计算机可执行指令的计算机程序产品。
全文摘要
用于创建模块化web页的框架。该框架启用包括web入口和web页的模块化、定制并个性化的web应用的开发。该框架包括可扩充部件基类和可扩充区域基类。从部件基类衍生的部件控制包括web部件控制、编辑器部件控制以及目录部件控制。区域控制、编辑器区域控制以及目录区域控制从区域基类衍生。每一区域控制包括一个或多个部件控制,并且每一区域负责显示每一相应区域中的部件控制。web部件控制能够与其它web部件控制通信。web部件控制能够被编辑、移除或添加到区域控制。部件控制的功能可以在特定区域内和跨不同区域的部件控制之中广泛地变化。
文档编号G06F15/00GK1627257SQ20041005989
公开日2005年6月15日 申请日期2004年6月18日 优先权日2003年6月19日
发明者J·K·克罗尼, N·科沙里, M·哈德, G·S·林德霍斯特, A·萨纳布里亚 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1