摘要:了解如何使用MicrosoftASP.NET和MicrosoftVisualStudio2005或MicrosoftVisualWebDeveloper2005ExpressEdition来构建自己的初学者工具包。
ASP.NET2.0在2000年首次引入的ASP.NET1.0/1.1基础之上进行了较大改进。可从MSDN获得ASP.NET2.0(在撰写本文时是Beta2版),供您免费下载并用于当前要构建的任何应用程序。虽然ASP.NET1.x在构建Web应用程序方面具有相当的创新力,但您会发现,在使您成为最高效的开发人员方面,ASP.NET2.0同样具有创新力。本文将重点介绍如何使用新的ASP.NET2.0功能,以及如何充分利用它提供的功能。
下面,首先来看一下MediaShareLibraryStarterKit提供的功能。
MediaShareLibraryStarterKit使您能轻松地创建允许注册用户呈现媒体项目(例如,影视DVD、音乐CD、书籍等)集合的应用程序,以便其他注册用户借阅。用户能够浏览使用该应用程序的群组所共有的项目库,并能够请求从已注册的项目拥有者借阅特定项目。MediaShareLibraryStarterKit旨在为您提供一个框架,以用于快速组织可与更多人共享的项目库集合。
图1.MediaShareLibraryStarterKit的警报页面
通过简单修改所提供的代码,您可利用MediaShareLibraryStarterKit中的每个页面来构建自己的页面。这将启动群组库Web站点的个性化过程。
MediaShareLibraryStarterKit还是一个很好的学习工具。您可以查看生成应用程序每一页的代码,您会发现,它使用了最新版本ASP.NET的某些最强功能。即使您不打算使用该初学者工具包来生成实际的Web站点,但对于学习如何使用ASP.NET2.0创建应用程序而言,它仍不失为一种有价值的资源。
但是,在了解如何使用该应用程序之前,我们先看一下该初学者工具包的安装和启动。
MediaShareLibraryStarterKit的初始设置
可从MSDN下载MediaShareLibraryStarterKit,它是一个Windows安装程序包文件—MediaShareLibrary.msi。双击该文件将启动一个进程,从而在计算机上安装该初学者工具包。安装向导的第一个屏幕如图2所示。需要注意的是,MediaShareLibraryStarterKit仅在VisualBasic2005中可用。
图2.安装MediaShareLibraryStarterKit
完成安装过程后,可以打开VisualStudio2005,然后以两种不同的方式打开Web站点。通过从VisualStudio菜单中选择File->OpenWebSite,然后选择左窗格中的FileSystem按钮,可将Web站点作为文件系统项目打开。这允许您导航到C:\Inetpub\wwwroot\MediaShareLibrary中已安装的初学者工具包。另一个选项是选择LocalIIS按钮,并打开DefaultWebSite节点以导航到MediaShareLibrary。这两种方法如图3所示。
图3.打开MediaShareLibraryStarterKit
打开MediaShareLibraryStarterKit选项后,您将会注意到,项目包含许多文件夹和文件。您可以在VisualStudio的解决方案资源管理器中查看所有这些创建的项目,如图4所示。
图4.MediaShareLibrary解决方案
在图4中,可以看到该初学者工具包中有许多内容。它实际上分为五个主要部分:
App_Data文件夹,它包含一个MicrosoftSQLServerExpressEdition文件(ASPNETDB.MDF),以及用于将所有信息输入存储到MediaShareLibrary的Library.mdf文件。ASPNETDB.MDF文件用于存储应用程序使用的所有成员身份和角色管理信息。
App_Themes文件夹,它包含的文件允许您定义整个应用程序的样式(外观)。这是ASP.NET2.0中的新功能,它允许您通过一个中心点管理整个应用程序的外观。该文件夹中的文件类型包括一个级联样式表文件(.css)和一个ASP.NETskin文件(.skin)。这个新文件(skin文件)将在本文后面介绍。
Admin文件夹,它包含一个简单的页面,允许角色为Admin的用户管理媒体库所使用的类别。随后,当注册用户将他们的媒体库项目输入系统时将使用这些类别。输入媒体库中的每个项目必须有一个关联的类别(DVD、XBOX、Book等)。
Library文件夹,它包含本文中讨论的应用程序的绝大部分。
在VisualStudio中创建MediaShareLibraryStarterKit的实例时,应该做的第一件事是编译和运行该应用程序。这将启动一个包含介绍页的页面,如图5所示。
图5.应用程序的介绍页
首次启动应用程序时,还要创建一个管理员角色,以便随后将一个或多个用户映射到该角色。这些角色是如何创建的呢?它们在应用程序的Global.asax文件中创建。看一下该文件,您会注意到,在Application_Start事件上有以下代码(如清单1所示)。
清单1.在Global.asax文件的Application_Start事件中创建Admin角色
SubApplication_Start(ByValsenderAsObject,ByValeAsEventArgs)'CodethatrunsonapplicationstartupIf(Roles.Enabled)ThenIfNotRoles.RoleExists("Admin")ThenRoles.CreateRole("Admin")EndIfEndIfEndSub从这段代码中,您可以看到,If语句首先检查角色管理系统是否已启用,如果是,则检查Admin角色是否存在于系统中。这通过使用Roles类的RoleExists()方法完成。如果该检查的结果为False,则使用CreateRole()方法创建角色。
该应用程序中角色为Admin的用户能够查看Admin.aspx页,而其他人则不能。Admin.aspx页可让您管理允许在媒体库中使用的类别。输入媒体库中的所有项目都需要有一个关联的类别。
既然为MediaShareLibraryStarterKit创建了Admin角色,现在可以通过关闭浏览器实例来关闭应用程序。然后,通过在VisualStudio菜单中选择Website->ASP.NETConfiguration来打开该应用程序的ASP.NETWebsiteAdministrationTool。将看到一个基于Web的GUI,它允许您为应用程序设置特定的配置设置。单击Security选项卡,将看到为应用程序配置的一个角色。如图6所示。
图6.检查是否为应用程序创建了Admin角色
既然创建了角色,下面来看一下如何创建用户(随后,我们将为其中一个用户赋予Admin角色)。
创建用户最方便的地方是应用程序的注册页(Join.aspx)。可通过在应用程序的每个页面上单击JoinToday!链接来访问该页。注册页如图7所示。
图7.Join.aspx
注册过程分为两个步骤。第一个表单要求输入用户的姓名以及所属的群组。单击Next按钮可将用户转到注册过程的第二个表单。该表单要求输入用户的用户名、密码和电子邮件地址。完成后,用户只需单击CreateUser按钮即可在系统中注册。
如果某人希望查看媒体库并创建他自己的媒体库,则需要成为注册用户。通过Library文件夹下Web.config文件中应用的设置,限制匿名用户使用大部分应用程序。如清单2所示。
清单2.在Web.config文件中阻止匿名用户
Admin文件夹中包含的单个文件也通过类似的方式控制,但Web.config会拒绝所有人,并只允许新创建的Admin角色中包含的注册用户,而不是拒绝匿名用户。该Web.config如清单3所示。
清单3.Admin文件夹中的Web.config文件
图8.将用户添加到Admin角色
现在,已经创建了一个用户来作为管理员使用应用程序,下面来看一个管理员能够访问、但其他注册用户不能访问的页面。
图9.管理页面
当用户将新项目输入媒体库时,他/她必须为每个项目指定一个特定类别。这些类别随后可用于表示项目,并使其他人能够更轻松地搜索打算借阅的项目。为此,必须有一种动态显示类别列表的方法。
类别存储在MicrosoftSQLServerExpressEdition文件(.mdf)中,这个管理页面允许您添加、编辑或删除应用程序所使用的类别。默认情况下,MediaShareLibraryStarterKit随附三个默认类别(DVD、XBOX和Book)。
将项目输入该系统的方法有多种—手动或使用AmazonWeb服务。我们首先来看一下如何将项目手动输入系统。
要手动输入项目,请单击站点导航中的EnterNewMedia链接。将看到一个如图10所示的页面。
图10.将新媒体输入个人媒体库
从EnterMedia.aspx页中,可以看到系统首先要求用户选择一个类别来放置项目。该列表派生自管理员创建的集合(如前所示)。要求输入的下一项是项目的ISBN或ASIN编号。
书籍一般使用ISBN编号,可在书籍背面的条形码上方找到该编号。一个示例ISBN是0764576100。除书籍以外,其他产品(例如XBOX游戏)一般使用ASIN编号。这些编号很难找到,因为它们不会列在实际产品上;但是,您通常可以在网上找到产品的ASIN编号(尝试在Amazon上查找)。
除了项目的类别和ISBN/ASIN编号以外,其他要提供的内容还包括项目的标题、描述以及用于该项目的图像URL。如果没有用于项目的联机图像,则使用默认的~/Images/NoImage.gif。将项目的所有详细信息输入表单后,请单击EnterIntoSystem按钮。单击之后,该项目将记录到SQLExpressEdition文件中,而您将重定向到媒体库页面。
将项目输入媒体库的另一个(较容易的)选项是,使用AmazonWeb服务(免费)根据提供的ISBN/ASIN编号填充所有必需的值。
Amazon允许通过基于SOAP的Web服务或RESTWeb服务来请求并使用他们的服务。这个MediaShareLibrary应用程序通过REST来使用所需的Amazon数据。
一旦在Amazon注册,将为您提供一个订阅ID,需要将该ID放到EnterMediaAmazon.aspx页的代码隐藏文件中。在页面的代码隐藏文件中,可以找到需要放置订阅ID的位置,如清单4所示。
清单4.修改页面以使用Amazon订阅ID
要使用Amazon填充所有必需的值,您必须首先将项目的ISBN/ASIN编号输入EnterMedia.aspx页的表单中。输入该编号后,下一步是单击表单底部的PopulateValuesFromAmazonInstead按钮。这会将您转到另一个页面,它显示了从Amazon收集的结果。如图11所示。
图11.使用Amazon自动获得结果
在该页(即EnterMediaAmazon.aspx页)上,首先进行检查以确保信息正确,再使用所提供的下拉列表选择媒体类型,然后按下页面底部的Select按钮。这会将结果输入媒体库。转到MyLibrary.aspx页之后,将看到这个新添内容。
输入到系统的项目将显示在您的个人媒体库中,该媒体库在MyLibrary.aspx页上显示。个人媒体库中显示的项目也会显示在主媒体库中,并且允许其他人请求借阅该项目。MyLibrary.aspx页的示例屏幕快照如图12所示。
图12.查看个人媒体库
个人媒体库页面允许您查看输入系统的项目。这些项目按媒体类型显示,媒体类型由表单顶部的下拉列表控制。例如,图12仅显示该用户输入系统的所有书籍。
个人媒体库将告诉您有关输入系统的项目的所有信息,包括项目是否在出借期间。如果在出借期间,则行的背景将为浅蓝色。对于表中的每一项,可通过单击适当的Edit按钮来编辑某些项目信息。甚至可单击Delete按钮来删除项目。
无论将什么项目输入主媒体库,您都能够仔细浏览主媒体库以便请求借阅它所包含的任何项目。主媒体库将显示输入系统的所有项目。示例媒体库如图13所示。
图13.查看主媒体库
在图13的屏幕快照中,可以看到主媒体库类似于个人媒体库,但不同之处在于,在主媒体库中,无法编辑或删除列表中包含的项目。在页面顶部,将看到一个允许您筛选项目类型的下拉列表,这些项目显示在下面的表格中。在图13的示例中,选择了XBOX并显示系统中的所有XBOX游戏。表格将显示项目的标题、拥有者、项目被查看和出借的次数,以及当时项目是否处于出借状态。
单击项目的标题将显示所选项目的详细视图。如图14所示。
图14.查看媒体库中项目的详细视图
项目的详细视图可显示所选项目的图像、是否处于出借状态、项目的所有者、描述以及信息(例如,前面提及的项目被查看和出借的次数)。
从项目的详细视图中,可通过单击表单底部的Borrow按钮来实际请求借阅某个项目(如果可用)。单击之后,系统将通知您进行了请求并由您挑选拥有者的项目。语句中还包含将项目返还给拥有者的日期(参见图15)。
图15.从主媒体库借出项目
图16.项目到期警报
除了针对您借入和拥有的项目的警报,该页面底部还有一个表格,它显示输入主媒体库的最新十个项目。
用户将项目返还给原始拥有者后,由拥有者在系统中将项目标记为已返还。这会将项目放回系统中以便其他人借阅,并会移除所有警报。为此,用户必须进入他/她的个人媒体库页,并单击页面底部的Logitemsincatalogasreturned按钮。
这将用户引导至ReturnItems.aspx页,其中,用户将看到所有处于出借状态的项目的复选框列表(如图17所示)。
图17.将所选项目标记为已返还
随后,这些项目的拥有者需要检查所有已返还的项目,然后单击表单底部的按钮来更改标记项目的出借状态。
本文为您介绍了MediaShareLibraryStarterKit,以及如何设置和使用它。该初学者工具包旨在为爱好者介绍如何使用ASP.NET2.0,并展示构建ASP.NET2.0应用程序是多么的容易。