zoukankan      html  css  js  c++  java
  • 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 展示循序渐进的演练过程。


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


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


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


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


    5. SQL Server 安装向导完成

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

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

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


    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 是一件相当简单的事情。一旦进行更改,您就能够享受这些数据库引擎的功能所带来的优点了。

  • 相关阅读:
    autoLayout适配
    iOS FMDB 无法更新二进制数据的问题
    iOS 数据库操作崩溃提示“ int rc = sqlite3_step([_statement statement]);”或者提示“ rc = sqlite3_step(pStmt);”
    iOS点击cell时,控件背景色消失的解决方法
    UISegmentedControl 的使用
    自定义cell侧滑删除
    iOS设置cell选中时文字颜色的变化
    iOS 如何在Label中显示html的文本
    iOS 单例的销毁
    类似微信聊天界面加载历史记录的样式
  • 原文地址:https://www.cnblogs.com/ghd258/p/294619.html
Copyright © 2011-2022 走看看