微软ASP.NET站点部署指南(2):部署SQL Server Compact数据库

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 04:41 点击:

1. 综述

对于数据库访问,Contoso University程序要求下面的软件必须随程序一起部署,因为不属于.NET Framework:

  • aspx" target="_blank">SQL Server Compact (数据库引擎)
  • ASP.NET Universal Providers (启用ASP.NET membership以使用SQL Server Compact)
  • Entity Framework 4.1 (Code First)

2个数据库的数据库结构和相关的一些数据都需要部署。通常,开发系统的时候都会有一些测试数据,这些测试数据跟定不能部署到生产环境。当然,你也可能要输入一些生产环境的数据以便部署到生产环境。本章节你将配置Contoso University项目以便部署的时候包括必须的软件和数据。

提醒:如果根据本章节所做的操作出现错误信息或一些功能不正常的话,请务必check Troubleshooting页面

2. SQL Server Compact与SQL Server Express

Sample程序使用SQL Server Compact 4.0,这个数据库引擎是web网站的新选择,SQL Server Compact旧版本是不能用在web环境的。SQL Server Compact提供了很多常用的新功能,和开发部署SQL Server Express及SQL Server一样。取决于你选择的主机提供商,SQL Server Compact可能更便宜,因为完整版的SQL Server需要额外付费。 SQL Server Compact不需要额外的付费,因为你可以自己将这个数据库引擎作为自己程序的一部分来部署。另外一个优点是备份和还原都十分简单,因为所有的数据都在部署站点app_data文件夹的一个.sdf文件。备份和还原仅仅是copy文件而已。

 

不过,你依然需要注意它的限制。SQL Server Compact不支持存储过程、触发器、试图、复制。(对于SQL Server 2005和SQL Server 2008支持而SQL Server Compact不支持的完整功能列表,请访问:Differences Between SQL Server Compact and SQL Server)。还有,操作SQL Server Express 和完整版SQL Server 数据库schema和数据的一些工具也不支持SQL Compact。例如,你不能使用SQL Server Management Studio或者Visual Studio数据库项目来处理SQL Server Compact数据库。当你使用SQL Server Compact的时候,Entity Framework Code First会根据你的数据模型(data model)自动创建数据库。但一旦部署以后,想保持开发环境数据库和生产环境数据库都同步的话很难,如果有像SQL Server Management Studio一样的工具的话就简单了。更多关于部署数据库差异到SQL Server Compact数据库的信息,请查看第9章。

 

SQL Server Compact是个好选择,可以用Visual Studio里的Server Explorer工具进行管理(本系列教材会将用到)。但是如果在初始部署以后需要经常改变的话,那使用SQL Server Compact 维护的成本可就大了。

 

你可以先用SQL Server Compact 然后再升级,后面的章节将告诉你如何将SQL Server Compact迁移到SQL Server Express或者完整版SQL Server。当然,如果你正在创建新的程序然后期望以后升级至完整版SQL Server,最好的选择是使用SQL Server Express。

3. 配置SQL Server Compact数据库引擎

Contoso University程序数据访问需要的软件可以通过使用下面的NuGet包来安装:

  • SqlServerCompact
  • System.Web.Providers (ASP.NET universal providers)
  • EntityFramework
  • EntityFramework.SqlServerCompact

NuGet包已经帮你安装了所有该程序所需要的东西。有时候,它能修改Web.config文件或者添加build方案是需要运行的PowerShell脚本。如果你不想使用NuGet安装这些东西,你需要了解NuGet包安装的时候做的事情,以便可以手工做这些事情。

 

有个问题需要注意,SqlServerCompact NuGet包会添加一个post-build脚本到你id项目,以便copy原生的assemblies到bin目录下的x86amd64 子文件夹,但是项目默认是没有这些子文件夹的,结果就是在部署的时候这些文件不会copy到目标站点,需要手工来做这些事情。(默认的部署配置就是这样的,另外一个选择(该教程没有使用),你可以修改配置行为来达到目的,请查看Configuring Project Properties 来获取资料。不推荐这样做,因为部署的时候会带给生成环境很多文件。)

 

Solution Explorer里,点

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • asp.net 设置GridView的选中行的实现代码
    • C#高级编程:数据库连接[1]
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET GridView列表代码示例
    • Asp.net MVC源码分析--Action Filter的链式调用
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1