ASP.NET 和 Visual Studio? .NET 的确已经使 Web 应用程序开发更为简单。但是,在创建 ASP.NET Web 站点时,仍需要您亲自完成一些工作。您仍需要设计一个完善的应用程序,用可重复使用的可靠代码开发它,并对其进行彻底测试。在该过程中,您可能会问自己:“是不是有人早已解决了该问题?我是不是在重复开发?”一些情形对于大多数 ASP.NET 开发人员而言是共同的,如组合社区站点,跟踪某个项目的时间或者为公司创建门户。基于一个具有完善设计的基础来进行构建(而不必从头设计应用程序,即使这意味着可以自定义和扩展解决方案),会带来不错的结果。这正是 ASP.NET Starter Kit 的设计思想。
ASP.NET Starter Kit 是 Microsoft 提供的一组(共五个)打包示例应用程序,您可从 http://www.asp.net/starterkits 下载。其中包括一个电子商务店面应用程序、一个社区 Web 站点、一个门户站点、示例报表和一个项目时间跟踪应用程序。Starter Kit 的目的在于,提供几个有用的起始 Web 站点和一些可靠的 ASP.NET 代码示例,您可以从中进行学习并在此基础上构建站点。所有这五个 Starter Kit 都附带了完整的源代码,可将 SQL Server? 或 Microsoft? 数据引擎 (MSDE) 用作数据存储并且可在 Visual Basic?、C# 和 J# 版本中使用。此外,Starter Kit 既可以在 Visual Studio .NET 版本(带有独立的 .aspx 和代码隐藏页)中使用,也可以在 SDK 版本(没有代码隐藏页)中使用。因此,您可以在自己喜欢的环境中使用 Starter Kit,而无论该环境是 Visual Studio .NET、ASP.NET Web Matrix Project 还是某个其他编辑器。在本文中,我将介绍这五个 ASP.NET Starter Kit。然后,将重点介绍 Community Starter Kit,以便向您展示如何根据您的具体需要来扩展它。
Commerce Starter Kit 和 Portal Starter Kit
Commerce Starter Kit 要为虚构的间谍公司 IBuySpy 创建电子商务店面应用程序。该应用程序使用了一个三层体系结构、缓存功能、窗体身份验证和一个购物车。Commerce Starter Kit 还包括一个 B2B Web 服务组件。这是一个可供您研究和学习的绝佳应用程序,尤其是当您需要构建自己的电子商务应用程序时。
Portal Starter Kit 为 Commerce Starter Kit 中描述的虚构间谍公司 IBuySpy 创建门户应用程序。Portal Starter Kit 包括 10 个门户模块:通知、联系人、讨论、事件、html/text、图像、链接、快速链接、xml/xsl 和一个自定义模块。
Time Tracker Starter Kit
Time Tracker Starter Kit(请参阅图 1)实质上是一个没有记帐组件的时间和记帐 Intranet 应用程序。它相当简单。它有三个选项卡:Log、Reports 和 Administration。Administration 选项卡可用来配置项目,Log 选项卡可用来记录小时数,Reports 选项卡可用来按项目或个人生成报表。
图 1 Time Tracker Starter Kit 中的 Log 选项卡
Time Tracker Starter Kit 显示了许多有趣的 ASP.NET 体系结构方面的功能,如三层设计、Windows? 和窗体身份验证、使用 GDI+ 生成动态图表以及移动前端。
Reports Starter Kit
Reports Starter Kit 与其他 Starter Kit 的区别在于,它不是一个单一的聚合应用程序。更正确地讲,它是一系列(共八个)报表,您可以读取这些报表,针对示例数据运行它们并检查其源代码。此外,您可以复制这些源代码并将它们粘贴到自己的应用程序中。该工具包的工作方式类似于随 Microsoft .NET Framework SDK 和 Visual Studio .NET 提供的 ASP.NET QuickStart。这些报表示例包括简单的表格报表、两种样式的分层深入报表、交叉表和几个 GDI+ 图表。
Community Starter Kit
Community Starter Kit 可能会是核心工具包。使用它,无需花费太多精力或者无需知道它的工作原理,就可为用户组、俱乐部、家庭或社区快速组合社区站点。还可以使用它来组合简单的新闻和信息站点。在某些方面,它与 Portal Starter Kit 提供的功能相重叠,但是它更侧重于非商业组织并且更易于设置和管理。
Community Starter Kit 支持许多不同类型的内容,包括文章、照片库和事件列表。此外,它还支持大量可选功能(这些功能在许多社区站点上为标准功能),其中包括广告、仲裁、上载配额、评价、评论、用户投票、内容更改通知、自动转换、主题、Web 箱、联合、新闻稿、外观和安全性。
广告由两个 AdRotator 控件来处理,一个控件具有标准大小(468?―60 像素)的横幅,另一个具有 125?―125 像素的横幅。如果您针对某个区域启用仲裁功能,那么,这一区域的内容必须得到审阅人的许可才能显示在该站点上。您可以为每个用户都设置上载配额,以便限制可上载到站点上的图像和文件的数量。Community Starter Kit 还支持整个社区的上载配额。这允许 ISP 在单一箱子中宿主许多社区,而不会让一个站点占用可用的所有磁盘空间。
您可以选择针对特定类型的内容(如图书或文章)打开用户评价和评论功能。用户可以对内容项进行评价(评级可以从 1 到 5),如果愿意的话,他们也可以输入评论来代替评级,或者既添加评级又添加评论。
Community Starter Kit 支持对用户投票进行创建和报告。因此,您可以用诸如“您喜欢哪种面向 .NET 的开发语言?”或者“齐柏林飞船合唱团最初的鼓手叫什么?”之类的问题来对用户进行民意测验。还可以在某个区域中有新内容时自动通知用户。甚至可以指定转换功能,以便将污秽语言自动从提交内容和评论中清除,而无需您进行任何干预。
Community Starter Kit 有一个选项允许您创建主题列表,以便要求用户在添加投稿内容时对该内容进行分类。因此,基于 .NET Framework 的新闻站点的主题可以是 ASP.NET、托管 C++、Web 服务等。
Community Starter Kit 允许您通过启用各种 Web 箱来在页面空白处添加需要突出显示的内容。例如,您可以使用 Web 箱在主页上显示最流行或最新的文章、链接、下载或照片。还可以使用引用 Web 箱来在页面上显示随机引用。
Community Starter Kit 支持通过两种机制来复制内容:服务订阅和 Web 服务箱。使用服务订阅机制,可以聚合另一个 Community Starter Kit 站点区域的内容并将其显示在您的站点上。例如,您可以订阅另一个社区站点的讨论区域,并将其显示在自己的站点上,就好像它们是您自己的讨论区域一样。与 Web 箱一样,Web 服务箱在页面空白处显示摘录信息;但是,Web 服务箱可以从其他站点获得其内容。您可以订阅另一个将其内容作为 XML Web 服务来发布的 Community Starter Kit 站点,也可以订阅 RSS 服务,如 http://msdn.microsoft.com/msdnmag/rss/recent.xml。您可以利用 XML Web 服务和 SOAP 协议(而不是目前的 RSS 协议),将站点的任何区域作为社区服务来发布。所发布的区域可以用作服务订阅或 Web 服务箱。
您可以向社区成员发送新闻稿。新闻稿组件既支持模板,也支持嵌入特殊标记,您可以使用这些标记来包括诸如 Username、FullName 和 Password 之类的字段,以及诸如 NewArticles、NewBooks 和 NewDownloads 之类的内容特定的字段。
Community Starter Kit 引擎支持外观或主题等概念,并允许您通过从管理页上选择另一个主题来完全改变站点的外观。外观和主题将在本文稍后讨论。
Community Starter Kit 支持广泛的安全系统,这些系统将成员按照其角色进行分类:匿名、已身份验证、审阅人和管理员,也可以按照您自定义的角色来进行分类。您还可以保护站点任何区域的安全,以便只有特定类型的用户可以查看、添加、编辑或删除内容。
图 2 社区Web 站点示例
图 2 举例说明了 Community Starter Kit 支持的许多社区功能。该社区是一个名为 Ballard .NET 的虚构用户组,它使用 Professional 主题。请注意,用户投票显示在页面的顶部,社区服务供给箱标题“.NET Tips & Tricks”位于页面的右下角。
创建社区
在下载和安装 Community Starter Kit 之后,您希望做的第一件事情会是删除示例站点数据。这可以通过单击导航条底部的“Login”链接并以 Admin 用户身份用 Admin 密码登录来完成。(由于该密码会造成安全风险,因此请尽快更改该密码。)在成功登录之后,新链接 (Admin) 将出现在导航条上。单击该链接跳转到站点的管理部分,向下滚动,查找“Delete Content”链接。
当删除内容之后返回到社区主页时,您会注意到一些示例内容仍保留着。要将主页内容替换为自己的内容,需要返回到管理页,单击“Edit Sections”,单击“Home”区域,并提供一个站点标题、说明和徽标。还可以使用这个“Edit Sections”选项来更改主页的基本布局、选择主题或者启用主页的许多可选功能(如显示 Web 箱或 Web 服务箱)。
在设置了主页的布局以后,可以向站点中添加多个区域。一个站点可以有无限多个区域。图 3 列出了可创建的各种类型的区域(或模块)。
要添加一个区域,请从管理页单击“Edit Sections”链接。您可以创建多个类型相同的区域。例如,图 2 中显示的社区站点包括两个文章区域:News 和 Articles。可以使用父区域来帮助组织一组类似的区域。例如,如果您希望按一般分类来分离下载内容,则可以创建一个包含几个下载区域(如 User Contributions、Controls 和 Speaker Presentations)的父区域。
从“Edit Sections”页,可以启用适用于特定区域的各种可选功能,如仲裁或电子邮件通知。还可以选择将该区域的内容作为社区 Web 服务来发布。