ASP.NET Jumpstart:构建 Media Share Library Starter Kit 的数据层

摘要:描述如何建立新的 ASP.NET 成员关系、角色管理和个性化服务,从而使用常规的 SQL Server 代替 Microsoft SQL Server Express。

本文最初发表于 Scott 的网络日记。请在此处加入讨论。

*
本页内容
快速回顾:新的 ASP.NET 2.0 应用程序服务是什么? 快速回顾:新的 ASP.NET 2.0 应用程序服务是什么?
默认的 SQL Express 提供程序 默认的 SQL Express 提供程序
小结 小结

快速回顾:新的 ASP.NET 2.0 应用程序服务是什么?

Microsoft ASP.NET 2.0 包含许多内置的“构造块”应用程序服务。我们称其为“构造块”的原因是,它们是有用的核心框架,从而能够在超常情况下用于当前的 Web 应用程序 — 因此,它们可以大大提高生产效率并节约开发人员的时间。

这些构造块包括:

成员关系 API(用于管理用户名/密码和安全凭据)以及角色 API(支持将用户映射到逻辑组)。

配置文件 API,用于存储访问 Web 站点的已验证用户和匿名用户的任意属性(例如,邮编、性别、主题首选项等)。

个性化 API,用于存储控件自定义首选项(通常与 ASP.NET 2.0 中的 WebPart 功能一起使用)。

状态监视 API,用于跟踪和收集有关运行状态的信息和 Web 应用程序内部发生的任何错误。

站点导航 API,用于定义应用程序内部的层次结构,以及根据当前传入用户在站点内的位置来构建特定于上下文的导航 UI(菜单、树视图、详细路径跟踪)。

ASP.NET 应用程序服务 API 可插接且实现过程不可知,这意味着,API 不对数据存储位置的详细信息进行硬编码。相反,API 调入“提供程序”,而“提供程序”是实现特定“提供程序约定”(定义为一个抽象类,具有 API 期望实现的一组定义好的方法/属性)的类。

ASP.NET 2.0 随附有许多内置提供程序,包括:

针对本地 SQL Express 数据库的 Microsoft SQL Server Express 提供程序。

针对成熟的 SQL Server 的 Microsoft SQL Server 2000/2005 提供程序。

针对 AD 或 ADAM 实现的活动目录提供程序。

绑定文件系统上 XML 文件的 XML 提供程序(用于站点导航)。

该模型的优势在于,如果您不喜欢随附的现有提供程序,或者希望针对已经使用的现有数据存储集成这些 API,那么只需实现一个提供程序并将其插入模型即可。例如:您或许已经有一个存储用户名/密码的现有数据库,或者一个需要集成的现有 LDAP 系统。只需将成员关系提供程序约定实现为一个类,并在应用程序的 web.config 文件中注册(后文将详细说明),然后对 ASP.NET 中成员关系 API 的所有调用将委托给代码。

默认的 SQL Express 提供程序

坦白说,大多数 ASP.NET 2.0 应用程序服务均配置为使用内置的 SQL Express 提供程序。在第一次使用一个应用程序服务时,该提供程序将自动创建和提供一个新的数据库,并提供一种非常简单的入门方法,而无需过多的安装步骤(只要有 SQL Express 就可以进行)。请注意,SQL Express 数据库也可以升级为在成熟的 SQL Server 实例上下文中运行。因此,使用 SQL Express 进行开发的应用程序可轻松升级为高容量、集群的故障转移安全 8P SQL 盒,与此同时所开发的应用程序将迈向更大的成功。

如何将提供程序从使用 SQL Express 更改为使用 SQL Server

如果要使用成熟的 SQL Server 2000 或 SQL Server 2005 数据库实例(而不是 SQL Express),可按照以下步骤执行:

步骤 1:创建或获取一个空白的 SQL 数据库实例

步骤将创建或获取一个连接字符串,该字符串指向一个空的标准 SQL 数据库实例。

步骤 2:提供您的 SQL 数据库和 ASP.NET 架构

在系统中打开一个命令行窗口,并运行与 ASP.NET 2.0 一起安装的 aspnet_regsql.exe 实用工具,该实用工具位于 C:\WINDOWS\Microsoft.NET\Framework\v2.0.xyz 目录。

请注意,该实用工具可以在基于 GUI 的模式下运行,也可以与命令行开关一起运行(添加一个“-?”标记即可查看所有开关选项)。

通过这个向导,您能够演练如何为 ASP.NET 2.0 随附的内置 SQL 提供程序创建架构、表格和存储过程。图 1 至图 5 展示循序渐进的演练过程。

ASP.NET Jumpstart:构建 Media Share Library Starter Kit 的数据层

1. SQL Server 安装向导,欢迎屏幕

ASP.NET Jumpstart:构建 Media Share Library Starter Kit 的数据层

2. SQL Server 安装向导,配置应用程序服务

ASP.NET Jumpstart:构建 Media Share Library Starter Kit 的数据层

3. SQL Server 安装向导,选择服务器和数据库

ASP.NET Jumpstart:构建 Media Share Library Starter Kit 的数据层

4. SQL Server 安装向导,确认设置

ASP.NET Jumpstart:构建 Media Share Library Starter Kit 的数据层

5. SQL Server 安装向导完成

演练向导完成后,将安装和配置所有支持应用程序服务的数据库架构和存储过程。(注:我们还提供了上述框架目录下的原始 .sql 文件,如果 DBA 想要确切知道内部发生的事情,可以手动演练和/或运行这些文件来安装 DB。)

步骤 3:使 Web.config 文件指向新的 SQL 数据库

现在,ASP.NET 2.0 支持 web.config 文件中一个名为 的新区段,它(显然)用于存储连接字符串。从管理角度看,好处之一是现在新的 ASP.NET MMC 管理单元可提供一种基于 GUI 的方式来配置和管理这些连接字符串(如图 6 所示)。

ASP.NET Jumpstart:构建 Media Share Library Starter Kit 的数据层

6. ASP.NET 管理页面中的连接字符串

ASP.NET 2.0 现在还支持加密任何存储在 web.config 文件中的区段,因此您可以安全地存储私人数据(例如,连接字符串),而不必编写任何加密代码。

ASP.NET 2.0 随附有一个名为 LocalSqlServer 的内置连接字符串,默认情况下,它配置为使用 SQL Express 数据库,以及成员关系、角色、个性化、配置文件和状态监视等服务。

让应用程序自动利用新创建的 SQL 数据库的最简单的方法是,在应用程序的本地 web.config 中,替换该 LocalSqlServer 设置的连接字符串值。

例如,如果我在本地计算机的 appservicesdb 数据库实例中创建了数据库,并使用 Windows 集成安全进行连接,那么我将更改本地的 web.config 文件来指定这项操作。

<configuration>

    <connectionStrings>

        <remove name="LocalSqlServer"/>

        <add name="LocalSqlServer" 

         connectionString="Data Source=localhost;

           Initial Catalog=appservicesdb;

           Integrated Security=True" 

           providerName="System.Data.SqlClient"/>

    </connectionStrings>

</configuration> 

单击“保存”,现在所有的内置应用程序服务都会使用新创建和新定义的 SQL Server 数据库。

这种方法的一个缺点是,重用了 LocalSqlServer 连接字符串名 — 如果我在另一台机器上部署数据库,将感觉很别扭。如果想将它命名为自己的连接字符串名,只需添加一个全新的连接字符串,然后指定现有提供程序使用新的连接字符串名来代替默认的 LocalSqlServer 连接字符串。

小结

虽然 ASP.NET 2.0 提供的应用程序服务默认使用 SQL Server 2005 Express,但是将其更改为使用 SQL Server 2000 或 2005 是一件相当简单的事情。一旦进行更改,您就能够享受这些数据库引擎的功能所带来的优点了。

你可能感兴趣的:(asp.net)