“黄沙中,飞舞着我们的先王,他们在空中俯视着子民们对蓝色的向往。” 火之章 霜之章 [最新更新:9月15日]

你在这里看到的是一位.NET程序员的执着及其信仰的效率世界观。我们行走在消逝中,但我们都有希望,都有传承。

SQL SERVER Compact 部署时的一些注意事项记录 ,2008-10-24,0条评论

SQL SERVER Compact是个好东西,作为一个桌面式数据库,它取代了MSDE,并且在性能上和稳定性上接近SQL SERVER,和SQL SERVER能够实现同步数据交换。在很多应用上完全可以取代ACCESS。为这个数据库作部署的时候,有两种办法,一是安装服务包,二是采用ClickOnce实现“绿色文件安装”。前者显然不太现实,以为一提到下载和安装,立即就少了50%的客户,现实就是这样残酷,所以这里只说后者。


在部署的时候,要把7个DLL文件都复制到应用程序相同的目录下(或者自己能够保证一个安全的相对路径),在对System.Data.SqlServerCe.dll的引用设置属性中,要将“复制本地”属性设置为“True”,这是关键,主要是让它优先调用程序目录中的dll。

好了,就是这两个步骤。 七个dll文件分别是:sqlceca35.dll,sqlcecompact35.dll,sqlceer35en.dll,sqlceme35.dll,
sqlceoledb35.dll,sqlceqp35.dll,sqlcese35.dll。
文件名中的35是版本号,有可能你的是30或者31,这些都关系不大,主要是整体上的版本号能够统一即可。

如果是在64位环境下(包括64位IIS),需要使用64位专用DLL

通过ClickOnce技术部署的数据库可以同时运行在asp.net上。服务器不需要安装任何附加的东西。只需要在应用程序开始执行的时候执行一下AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", true);就可以了。ACCESS完全可以扔一边去了,不过,这只是相对的。如果是大规模访问和并发性很高的WEB应用环境,还是推荐使用SQL SERVER,毕竟Compact仍然只是一个文件级的数据库,在很多方面还是有局限性的。

在相同的应用领域,SQLite也是一个不错的选择,功能和性能上都稍微强于SQL SERVER Compact,并且原生自带有SQLite.Net组件,可以直接运行于.Net环境,操作方法和ADO.Net没有区别,属于一看就会的那种。SQLite作为一个开源产品是跨平台运行的,得到很多操作系统和应用环境的支持。不过正因为它属于开源产品,在可以选择的前提下,我是不太喜欢去沾的,这是仁者见仁智者见智了,在以后的话题中再讨论。
mcts

Category

Tag

Archives

  • kvspas
  • Powered by Google App Engine