微软ASP.NET站点部署指南(2):部署SQL Server Compact数据库
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目录下的x86 和amd64 子文件夹,但是项目默认是没有这些子文件夹的,结果就是在部署的时候这些文件不会copy到目标站点,需要手工来做这些事情。(默认的部署配置就是这样的,另外一个选择(该教程没有使用),你可以修改配置行为来达到目的,请查看Configuring Project Properties 来获取资料。不推荐这样做,因为部署的时候会带给生成环境很多文件。)
Solution Explorer里,点
相关新闻>>
- 发表评论
-
- 最新评论 更多>>