14.5 技术解惑
14.5.1 实际应用中使用WebPart控件的方式
在实际应用中,可以通过下列3种方式之一来使用WebPart控件。
- 创建使用WebPart控件的网页。
- 创建单个WebPart控件。
- 创建完整的、可个性化设置的Web应用程序,例如门户网站。
1.页面开发
Web页面开发人员可以使用可视化设计工具(如Visual Studio 2012)创建使用WebPart控件的网页。使用Visual Studio之类工具的一个好处就是:在可视化设计器中,WebPart控件集可提供拖放式创建及配置WebPart控件的功能。例如,可以使用该设计器将一个WebPart区域或一个WebPart编辑器控件拖曳到设计界面上,然后使用WebPart控件集所提供的用户界面将该控件配置在设计器中的正确位置。这可以加快WebPart应用程序的开发速度并减少必须编写的代码量。
2.控件开发
可以将现有的任意ASP.NET控件用作WebPart控件,包括标准的Web服务器控件、自定义服务器控件和用户控件。若要通过编程最大限度地控制环境,还可以创建从WebPart类派生的自定义WebPart控件。在开发单个WebPart控件时,通常会创建一个用户控件并将其用作WebPart控件,或者开发一个自定义WebPart控件。
作为一个开发自定义WebPart控件的示例,可以创建一个控件以提供其他ASP.NET服务器控件所提供的任何功能,这可能对打包为可个性化设置的WebPart控件十分有用,这样的控件包括:日历、列表、财务信息、新闻、计算器、用于更新内容的多格式文本控件、链接到数据库的可编辑网格、动态更新显示的图表或天气和旅行信息。如果对控件提供了可视化设计器,则无论使用Visual Studio的任何页面,开发人员都只需将控件拖至WebPart区域并在设计时对该控件进行配置即可,而无需另外编写代码。
3.Web应用程序开发
开发完全集成和可个性化设置的Web应用程序(如门户网站)涉及最全面地使用WebPart。可以开发一个允许用户对用户界面和内容进行大量个性化设置的网站,其功能类似于MSN。或者,甚至可以开发一个可由提供门户加载服务的公司或收费ISP提供和使用的打包应用程序。
在Web应用程序方案中,可以为最终用户提供一个完整的解决方案来管理和个性化设置应用程序。这可能包括:一组提供站点所需功能的WebPart控件,一组使最终用户可以一致地对用户界面进行个性化设置的一致主题和样式,WebPart控件目录(用户可以从中选择要显示在页上的控件),身份验证服务以及基于角色的管理(例如,允许管理员用户为所有用户对WebPart控件和站点设置进行个性化设置)。
对于应用程序的各部分,可以根据需要扩展WebPart控件,以便对环境提供更好的控制。例如,除了为页面的主要用户界面创作自定义WebPart控件之外,还可能需要开发一个与应用程序的外观一致的自定义WebPart目录,并使用户可以更灵活地选择向页面添加控件的方式。也可以扩展区域控件,以便为它包含的WebPart控件提供其他用户界面选项。此外,还可以编写自定义个性化设置提供程序,以对存储和管理个性化设置数据的方式提供更大的灵活性和更多的控制。
14.5.2 WebPart的定制功能推动了ASP.NET的发展
Visual Basic和ASP.NET等编程工具之所以越来越流行,其主要原因是使用可视化方式描述对象更贴近自然,也因此进一步提高了软件的生产效率。另一方面,通过这种方式,开发人员能够以其自己特有的方式(如以.dll、.ascx等文件形式)来创建和发布控件,从而极大地方便了广大软件开发者。
借助于组件(非可视化对象)和控件(可视化对象),开发人员可以重用这些软件元件所具有的功能,并最终创建出更高效的应用程序。
随着Web应用程序用户对Web的理解越来越深入,他们的用户体验期望经历了巨大的变化。特别是最近发展起来的Ajax现象又进一步加快了Web应用程序的这种动力和交互性,而终端用户开始能够尝试到这种体验,甚至能够根据自己的要求“裁剪”这种体验。
14.5.3 ASP.NET中3种WebPart部署方式
在现实开发应用中,ASP.NET实现WebPart部署的常见方式如下。
(1)使用ASP.NET 4.5的WebPart部署方式,在声明SafeContorl后上载到Sharepoint的WebPart gallery中。有关这种方式的具体操作步骤,请读者参考MSDN中的“Walkthrough: Creating a Basic WebPart”内容。
(2)使用SharePoint的WebPart,然后确保安装了VS Extensions for SharePoint插件。会有一个名为“WebPart”的项目类型。此时可以自定义编写一个WebPart,然后按下F5键后就会把WebPart部署到我们的SharePoint的站点中,这其实也是部署了一个Feature。
(3)使用Feature部署DelegateContorl的方式,部署一个“.ascx”文件到站点集的Feature(角色)中,这种方式比较加单。
以上3种方式各有优缺点,其中前两种方式采用纯粹的WebPart的形式,特别是拥有丰富的用户界面的站点会变得十分繁琐。第三种方式虽然十分简单,但是没有Code-behind,不适合于对安全性要求高的企业级开发。