.NET技术支持者

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

摘要:了解如何使用 Microsoft ASP.NET 和 Microsoft Visual Studio 2005 或 Microsoft Visual Web Developer 2005 Express Edition 来构建自己的初学者工具包。

单击此处可下载本文的代码示例。

*
本页内容
简介 简介
Media Share Library Starter Kit 的用途 Media Share Library Starter Kit 的用途
创建所需的 Admin 角色 创建所需的 Admin 角色
创建 Admin 用户 创建 Admin 用户
管理员页面 管理员页面
将项目手动输入媒体库 将项目手动输入媒体库
使用 Amazon Web 服务将项目输入媒体库 使用 Amazon Web 服务将项目输入媒体库
使用个人媒体库 使用个人媒体库
浏览和借阅主媒体库中的项目 浏览和借阅主媒体库中的项目
借入和借出项目警报 借入和借出项目警报
更改借出项目的状态 更改借出项目的状态
小结 小结

简介

欢迎阅读 ASP.NET Jumpstart 系列,本系列中的四篇文章将引导您完成整个应用程序的创建(从头至尾)。本文主要针对 Microsoft ASP.NET 初学者或爱好者,但是对 ASP.NET 2.0 中新功能感兴趣的人也能通过本系列文章受益。

ASP.NET 2.0 在 2000 年首次引入的 ASP.NET 1.0/1.1 基础之上进行了较大改进。可从 MSDN 获得 ASP.NET 2.0(在撰写本文时是 Beta 2 版),供您免费下载并用于当前要构建的任何应用程序。虽然 ASP.NET 1.x 在构建 Web 应用程序方面具有相当的创新力,但您会发现,在使您成为最高效的开发人员方面,ASP.NET 2.0 同样具有创新力。本文将重点介绍如何使用新的 ASP.NET 2.0 功能,以及如何充分利用它提供的功能。

本文是 Media Share Library Starter Kit 的简介,在服务器上安装该工具包之后将提供相应的功能。本文将帮助您设置和安装该初学者工具包,以便您可以立即开始使用。之后,后续文章将为您介绍如何实际构建该应用程序。

下面,首先来看一下 Media Share Library Starter Kit 提供的功能。

Media Share Library Starter Kit 的用途

Media Share Library Starter Kit 使您能轻松地创建允许注册用户呈现媒体项目(例如,影视 DVD、音乐 CD、书籍等)集合的应用程序,以便其他注册用户借阅。用户能够浏览使用该应用程序的群组所共有的项目库,并能够请求从已注册的项目拥有者借阅特定项目。Media Share Library Starter Kit 旨在为您提供一个框架,以用于快速组织可与更多人共享的项目库集合。

该初学者工具包提供一系列页面,以允许您轻松地呈现和管理媒体库中的项目以及借出的项目。对于已注册用户,该初学者工具包的起始页包含一个基本的主页和登录页。该初学者工具包还包含允许您查看群组库和个人库的页面,以及针对其他人的项目或您的项目发出警报的警报页面。

从这个简短的描述中,可以看到该框架应用程序提供了许多功能。在编译和运行 Media Share Library Starter Kit 并使用该应用程序一段时间后,将看到如图 1 所示的内容。


1. Media Share Library Starter Kit 的警报页面

通过简单修改所提供的代码,您可利用 Media Share Library Starter Kit 中的每个页面来构建自己的页面。这将启动群组库 Web 站点的个性化过程。

Media Share Library Starter Kit 还是一个很好的学习工具。您可以查看生成应用程序每一页的代码,您会发现,它使用了最新版本 ASP.NET 的某些最强功能。即使您不打算使用该初学者工具包来生成实际的 Web 站点,但对于学习如何使用 ASP.NET 2.0 创建应用程序而言,它仍不失为一种有价值的资源。

但是,在了解如何使用该应用程序之前,我们先看一下该初学者工具包的安装和启动。

Media Share Library Starter Kit 的初始设置

可从 MSDN 下载 Media Share Library Starter Kit,它是一个 Windows 安装程序包文件 — Media Share Library.msi。双击该文件将启动一个进程,从而在计算机上安装该初学者工具包。安装向导的第一个屏幕如图 2 所示。需要注意的是,Media Share Library Starter Kit 仅在 Visual Basic 2005 中可用。


2. 安装 Media Share Library Starter Kit

完成安装过程后,可以打开 Visual Studio 2005,然后以两种不同的方式打开 Web 站点。通过从 Visual Studio 菜单中选择 File -> Open Web Site,然后选择左窗格中的 File System 按钮,可将 Web 站点作为文件系统项目打开。这允许您导航到 C:\Inetpub\wwwroot\MediaShareLibrary 中已安装的初学者工具包。另一个选项是选择 Local IIS 按钮,并打开 Default Web Site 节点以导航到 MediaShareLibrary。这两种方法如图 3 所示。


3. 打开 Media Share Library Starter Kit

打开 Media Share Library Starter Kit 选项后,您将会注意到,项目包含许多文件夹和文件。您可以在 Visual Studio 的解决方案资源管理器中查看所有这些创建的项目,如图 4 所示。


4. Media Share Library 解决方案

在图 4 中,可以看到该初学者工具包中有许多内容。它实际上分为五个主要部分:

根文件(包括 Default.aspxWeb.configWeb.sitemap)以及一些处理登录和注册过程的页面。新增到该 ASP.NET 2.0 列表的文件是 Web.sitemap 文件,它是一个基于 XML 的 Web 站点导航结构定义。

App_Data 文件夹,它包含一个 Microsoft SQL Server Express Edition 文件 (ASPNETDB.MDF),以及用于将所有信息输入存储到 Media Share Library 的 Library.mdf 文件。ASPNETDB.MDF 文件用于存储应用程序使用的所有成员身份和角色管理信息。

App_Themes 文件夹,它包含的文件允许您定义整个应用程序的样式(外观)。这是 ASP.NET 2.0 中的新功能,它允许您通过一个中心点管理整个应用程序的外观。该文件夹中的文件类型包括一个级联样式表文件 (.css) 和一个 ASP.NET skin 文件 (.skin)。这个新文件(skin 文件)将在本文后面介绍。

Admin 文件夹,它包含一个简单的页面,允许角色为 Admin 的用户管理媒体库所使用的类别。随后,当注册用户将他们的媒体库项目输入系统时将使用这些类别。输入媒体库中的每个项目必须有一个关联的类别(DVD、XBOX、Book 等)。

Library 文件夹,它包含本文中讨论的应用程序的绝大部分。

创建所需的 Admin 角色

在 Visual Studio 中创建 Media Share Library Starter Kit 的实例时,应该做的第一件事是编译和运行该应用程序。这将启动一个包含介绍页的页面,如图 5 所示。


5. 应用程序的介绍页

首次启动应用程序时,还要创建一个管理员角色,以便随后将一个或多个用户映射到该角色。这些角色是如何创建的呢?它们在应用程序的 Global.asax 文件中创建。看一下该文件,您会注意到,在 Application_Start 事件上有以下代码(如清单 1 所示)。

清单 1. Global.asax 文件的 Application_Start 事件中创建 Admin 角色

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
      ' Code that runs on application startup
      If (Roles.Enabled) Then
         If Not Roles.RoleExists("Admin") Then
            Roles.CreateRole("Admin")
         End If
      End If
End Sub

从这段代码中,您可以看到,If 语句首先检查角色管理系统是否已启用,如果是,则检查 Admin 角色是否存在于系统中。这通过使用 Roles 类的 RoleExists() 方法完成。如果该检查的结果为 False,则使用 CreateRole() 方法创建角色。

该应用程序中角色为 Admin 的用户能够查看 Admin.aspx 页,而其他人则不能。Admin.aspx 页可让您管理允许在媒体库中使用的类别。输入媒体库中的所有项目都需要有一个关联的类别。

既然为 Media Share Library Starter Kit 创建了 Admin 角色,现在可以通过关闭浏览器实例来关闭应用程序。然后,通过在 Visual Studio 菜单中选择 Website -> ASP.NET Configuration 来打开该应用程序的 ASP.NET Website Administration Tool。将看到一个基于 Web 的 GUI,它允许您为应用程序设置特定的配置设置。单击 Security 选项卡,将看到为应用程序配置的一个角色。如图 6 所示。


6. 检查是否为应用程序创建了 Admin 角色

既然创建了角色,下面来看一下如何创建用户(随后,我们将为其中一个用户赋予 Admin 角色)。

创建 Admin 用户

创建用户最方便的地方是应用程序的注册页 (Join.aspx)。可通过在应用程序的每个页面上单击 Join Today! 链接来访问该页。注册页如图 7 所示。


7. Join.aspx

注册过程分为两个步骤。第一个表单要求输入用户的姓名以及所属的群组。单击 Next 按钮可将用户转到注册过程的第二个表单。该表单要求输入用户的用户名、密码和电子邮件地址。完成后,用户只需单击 Create User 按钮即可在系统中注册。

浏览到 Media Share Library 应用程序的任何人都可以访问该页并在站点中注册。这意味着,默认情况下,应用程序对所有用户开放。任何人都可以将自己设置为用户并登录应用程序。

如果某人希望查看媒体库并创建他自己的媒体库,则需要成为注册用户。通过 Library 文件夹下 Web.config 文件中应用的设置,限制匿名用户使用大部分应用程序。如清单 2 所示。

清单 2. Web.config 文件中阻止匿名用户

<?xml version="1.0" encoding="utf-8"?>
<configuration 
 xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <system.Web>
        <authorization>
            <deny users="?" />
        </authorization>
    </system.Web>
</configuration>

由于清单 2 所示的 Web.config 文件位于 Library 文件夹,因此在该文件中指定的任何设置仅应用于 Library 文件夹下的文件和文件夹。使用 元素,可通过使用子元素 并指定匿名用户(通过使用问号作为值)来拒绝所有匿名(未注册)用户。

Admin 文件夹中包含的单个文件也通过类似的方式控制,但 Web.config 会拒绝所有人,并只允许新创建的 Admin 角色中包含的注册用户,而不是拒绝匿名用户。该 Web.config 如清单 3 所示。

清单 3. Admin 文件夹中的 Web.config 文件

<configuration 
 xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.Web>
        <authorization>
          <allow roles="Admin" />
          <deny users="*" />
        </authorization>
      </system.Web>
</configuration> 

现在已经通过 Join.aspx 上的注册表单创建了新用户,下一步是像先前那样打开 ASP.NET Web Site Administration Tool 并导航到 Security 页。在该页上,您会看到已经创建的一个用户。单击 Manage users 链接,将转到一个允许您管理刚才创建的用户的页面。由于我们希望在 Admin 角色中添加新用户,因此在该页中单击用户名称旁边的 Edit roles 链接。随后将显示可用的单个角色。然后,可选中角色名称旁边的复选框,将新用户添加到 Admin 角色。如图 8 所示。


8. 将用户添加到 Admin 角色

现在,已经创建了一个用户来作为管理员使用应用程序,下面来看一个管理员能够访问、但其他注册用户不能访问的页面。

管理员页面

应用程序中只有一个用于应用程序管理员的页面。您将在 Admin 文件夹中看到这个页面 Default.aspx。如前所示,Admin 文件夹中还包含一个 Web.config 文件,该文件可以控制对该文件夹的访问,并且仅允许 Admin 角色的用户访问该页面。如果您是已经登录到应用程序的注册用户,并且尝试访问该页,则系统会将您转到 Login.aspx 页,并要求您提供适当的访问凭据。如果能够访问,将看到一个如图 9 所示的页面。


9. 管理页面

当用户将新项目输入媒体库时,他/她必须为每个项目指定一个特定类别。这些类别随后可用于表示项目,并使其他人能够更轻松地搜索打算借阅的项目。为此,必须有一种动态显示类别列表的方法。

类别存储在 Microsoft SQL Server Express Edition 文件 (.mdf) 中,这个管理页面允许您添加、编辑或删除应用程序所使用的类别。默认情况下,Media Share Library Starter Kit 随附三个默认类别(DVD、XBOX 和 Book)。

将项目手动输入媒体库

如果您已注册并登录到应用程序,就可以开始将项目输入主媒体库系统了。输入到整个媒体库系统的项目将显示在您的个人媒体库中。其目的是,输入媒体库的项目可供其他人借阅一段特定的时间。例如,如果将该应用程序用于工作中的一个小组,则某个人可能会请求借阅您放在系统中的某个项目。收到请求后,应将该项目激活并出借给请求方一段时间。然后,当项目到期后,借用方会将该项目返回给原始拥有者。这是用于所有帐户的自治媒体库系统。

将项目输入该系统的方法有多种 — 手动或使用 Amazon Web 服务。我们首先来看一下如何将项目手动输入系统。

要手动输入项目,请单击站点导航中的 Enter New Media 链接。将看到一个如图 10 所示的页面。


10. 将新媒体输入个人媒体库

EnterMedia.aspx 页中,可以看到系统首先要求用户选择一个类别来放置项目。该列表派生自管理员创建的集合(如前所示)。要求输入的下一项是项目的 ISBN 或 ASIN 编号。

书籍一般使用 ISBN 编号,可在书籍背面的条形码上方找到该编号。一个示例 ISBN 是 0764576100。除书籍以外,其他产品(例如 XBOX 游戏)一般使用 ASIN 编号。这些编号很难找到,因为它们不会列在实际产品上;但是,您通常可以在网上找到产品的 ASIN 编号(尝试在 Amazon 上查找)。

除了项目的类别和 ISBN/ASIN 编号以外,其他要提供的内容还包括项目的标题、描述以及用于该项目的图像 URL。如果没有用于项目的联机图像,则使用默认的 ~/Images/NoImage.gif。将项目的所有详细信息输入表单后,请单击 Enter Into System 按钮。单击之后,该项目将记录到 SQL Express Edition 文件中,而您将重定向到媒体库页面。

使用 Amazon Web 服务将项目输入媒体库

将项目输入媒体库的另一个(较容易的)选项是,使用 Amazon Web 服务(免费)根据提供的 ISBN/ASIN 编号填充所有必需的值。

第一步是访问 Amazon Web 站点,并注册一个 Amazon Web 服务帐户。

Amazon 允许通过基于 SOAP 的 Web 服务或 REST Web 服务来请求并使用他们的服务。这个 Media Share Library 应用程序通过 REST 来使用所需的 Amazon 数据。

一旦在 Amazon 注册,将为您提供一个订阅 ID,需要将该 ID 放到 EnterMediaAmazon.aspx 页的代码隐藏文件中。在页面的代码隐藏文件中,可以找到需要放置订阅 ID 的位置,如清单 4 所示。

清单 4. 修改页面以使用 Amazon 订阅 ID

    Protected Sub Page_Load(ByVal sender As Object, 
     ByVal e As System.EventArgs) Handles Me.Load

        XmlDataSource1.DataFile = 
           "http://Webservices.amazon.com/onca/xml?
            Service=AWSECommerceService&

            SubscriptionId=[YOUR SUBSCRIPTION ID]&

            Operation=ItemLookup
            &ResponseGroup=Medium
            &ItemId=" & Request.QueryString("ISBN").ToString()
        FormView1.DataBind()
    End Sub

请确保该 URL 在一行上;出于方便阅读目的,这里将它分为多行。

要使用 Amazon 填充所有必需的值,您必须首先将项目的 ISBN/ASIN 编号输入 EnterMedia.aspx 页的表单中。输入该编号后,下一步是单击表单底部的 Populate Values From Amazon Instead 按钮。这会将您转到另一个页面,它显示了从 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. 从主媒体库借出项目

借入和借出项目警报

登录 Media Share Library 应用程序后,将看到 Library 文件夹中的 Default.aspx 页。该页将显示一组有关您从其他人借入的项目的警报,以及一组有关您所拥有的项目的警报。如图 16 所示。


16. 项目到期警报

除了针对您借入和拥有的项目的警报,该页面底部还有一个表格,它显示输入主媒体库的最新十个项目。

更改借出项目的状态

用户将项目返还给原始拥有者后,由拥有者在系统中将项目标记为已返还。这会将项目放回系统中以便其他人借阅,并会移除所有警报。为此,用户必须进入他/她的个人媒体库页,并单击页面底部的 Log items in catalog as returned 按钮。

这将用户引导至 ReturnItems.aspx 页,其中,用户将看到所有处于出借状态的项目的复选框列表(如图 17 所示)。


17. 将所选项目标记为已返还

随后,这些项目的拥有者需要检查所有已返还的项目,然后单击表单底部的按钮来更改标记项目的出借状态。

小结

本文为您介绍了 Media Share Library Starter Kit,以及如何设置和使用它。该初学者工具包旨在为爱好者介绍如何使用 ASP.NET 2.0,并展示构建 ASP.NET 2.0 应用程序是多么的容易。

该 ASP.NET Jumpstart 系列的下一篇文章将介绍如何亲自构建该应用程序(从数据层开始)。

祝您编程愉快!

posted on 2005-12-10 21:55  LDAR泄漏检测与修复  阅读(1103)  评论(1编辑  收藏  举报