如果我的软件使用它,我是否必须在每个客户端上安装sql server?

时间:2012-07-14 06:42:25

标签: c# .net sql-server deployment runtime

如果我们用c#(或基本上.Net)开发一些软件,我们不会将visual studio安装到任何客户端。客户端必须安装所需的.Net框架(1.0,1.1,2.0,3.0等),我们很高兴。

同样,如果我们在VC2008中制作应用程序,他只需要拥有Visual C ++ 2008运行时(可从MS站点免费获得,大约4-5Mb)。所以,基本上,我们只需要运行时环境。但是没有任何SQL Server 2008运行时(或者我不知道它?)。

所以,我的问题是,如果我的软件使用的是SQL Server 2008,那么客户端需要什么运行时(或其他任何东西)才能运行?

另外,还有一件事,我看到有一个SQL Server Express版本,我可以在部署中使用它,但似乎有点沉重,知道如果我的软件只需要5,10或20Mb我需要安装一个只是让用户可以运行它。

最后,如果我使用的是SQL Server 2008 Developer Edition(我或者是企业版)并且我在客户端上安装了SQL Server Express,如果我的软件使用的某些功能不是快递版支持? (比如数据库的数量,或并发连接,或任何东西)。

所以?它需要什么运行时间?如果安装sql server express是唯一的选择,如果我使用的是Express版本不支持的某些功能,该怎么办?当然,我不能继续在每个客户端上完整安装开发人员版本!

编辑:如果这有任何帮助,我当前的项目是一个图书馆管理系统,它将安装在客户端(图书管理员的计算机上,我正在为此制作),所以这里没有服务器客户端的情况。那我应该在他的电脑上安装sql express吗?另外,正如YvesR在他的回答中指出的那样,该链接仅显示三个版本(主要版本),但http://msdn.microsoft.com/en-us/library/cc645993%28v=SQL.110%29.aspx显示更详细的比较。那么,在我刚才描述的这个特定场景中,如果我只是在客户端的机器上部署和表达版本就足够了吗?

现在,关于我所说的关于快递版中没有的一些功能, http://msdn.microsoft.com/en-us/library/cc645993(v=SQL.110).aspx#CrossBoxScale 表明快递版仅限于10Gb大小的数据库,现在我知道在上面描述的场景中绰绰有余,但是如果在其他情况下我还需要更多呢?比快递版本不会这样做,我应该如何部署呢?

最后,http://www.microsoft.com/sqlserver/en/us/get-sql-server/how-to-buy.aspx展示了另外两个版本,Compact和Developer,我知道开发人员,但这个紧凑版是什么?更重要的是,为什么这些没有被联系或列出here

编辑2:其4Gb,限制,而不是10Gb。 10Gb在SQL Server 2008 R2 Express及更高版本中,在SQL Server 2008 Express中为4Gb marc_s:谢谢你!

4 个答案:

答案 0 :(得分:6)

如果使用SQL Server数据库在应用程序中保存数据,则需要

一个。客户端 - 服务器基础结构,其中客户端通过LAN连接到中央SQL Server

湾或使用客户端安装sql server edition(这是你想要的)。为此,您可以使用SQL Server Express版本或仅使用MSDE(桌面版)。

有关详细信息,请参阅这篇博客文章http://searchsqlserver.techtarget.com/tip/SQL-Server-2005-Express-vs-Desktop-Engine-MSDE或google for it,来自MS本身的大量有关MSDE的信息。

编辑:自2012年以来,没有更多的MSDE,但SQL Server 2012 Express带来了像MSDE这样的模式。见这里:http://www.microsoft.com/sqlserver/en/us/editions/2012-editions/express.aspx

正如您在此处看到的那样:http://www.microsoft.com/sqlserver/en/us/editions.aspx,您应该使用的功能不适用于桌面应用程序imho。

答案 1 :(得分:3)

好吧,让我们稍微回顾一下。您是否要求每个软件客户端拥有自己的本地数据库?如果是这种情况,有更简单的方法在客户端上存储数据(我建议将序列化作为一种​​方法存档)。

如果您的要求是让每个客户端连接到中央数据库,那么除了.net核心库之外,您不需要任何运行时组件。

答案 2 :(得分:2)

除了安装的.NET框架(无论如何都需要所有.NET可执行文件)之外,数据库访问不需要客户端运行时。

如果您希望数据库驻留在与客户端相同的计算机上,则可以选择自由选项。 SQL Server Express或SQLite。

答案 3 :(得分:1)

以下是Windows应用程序的两种方法:

  1. 桌面应用程序,将由每个客户端单独使用,而不将计算机指定为服务器。您只需要为您的客户安装SSMS和应用程序。更新/删除/插入操作将单独完成。

  2. 客户端 - 服务器方法,安装SSMS并将您的数据库附加到计算机上。此计算机将作为服务器为您的客户服务。然后在任何客户端计算机上安装exe文件,确保客户端使用IP连接到服务器。