最简单的部署(非Web)-SQL Server或MS Access MDB



我使用C#(Visual Studio)Winforms创建了一个程序。我大约是60%,并且已经连接到.MDB文件(MS Access)。没有问题,都很好。

我被一个编程"专家"/朋友说服了我应该真正使用SQL Server Express,并且更适合我的应用程序,因此我花了大约6个小时将程序切换到SQL Server(例如,将变量重写用于重写变量参数并更改一些SQL特定代码)。

我已经努力了,现在大约... 85%的人完成了部署,我真的认为我犯了一个错误,部署比基本的.mdb要复杂得多。文件。

以下是有关该程序的一些细节:

  • 该计划将在澳大利亚的药房运行。由于我不想处理的特定在线上载医疗信息,它不能基于网络,因此我希望它在每个药房内的本地计算机上运行。

  • 每个"服务器"可能会在连接

  • 的其他一台和7个其他计算机之间
  • 该程序不会经常使用。每年可能添加的700至7000个记录之间!(因此大小很少是问题)。

  • 发生了一些"更新" SQL,但实际上不是新记录的群体。

  • 所有计算机都在运行Windows

  • 需要由药房工作人员安装,而不是IT专家。

  • 设置和安装很容易是这里的优先级。

现在,这并不是一个很好的借口,但是还有许多其他药房应用程序依靠基本的.mdb文件,而这些公司比我的公司大得多。

我的直觉是:

  • .MDB只是一个文件,只需安装MS访问运行时,就可以使用
  • SQL Server更为复杂,需要正确设置服务器,并且可能对使用我的程序
  • 的巨大威慑作用

我希望其他人将来可以阅读此书,并在将来对.mdb和SQL Server之间的选择获得自己的想法!

ps:.MDB的部署:在服务器计算机上创建共享文件夹。有人告诉我这将很复杂。这是正确的吗?

如果您的加载很轻,并且总体上只能说5个用户(这听起来大约是您的示例案例的90%)。另外,您无需安装访问运行时,因为实际上您不是使用访问权限,而是使用JET(现在称为ACE)数据库引擎。换句话说,鉴于您的程序是用C#编写的,然后您不必安装访问,而仅安装ACE数据库引擎(假设ACCDB文件格式)。

,您很容易将ACE数据库引擎作为应用程序安装的一部分。我还应该指出,SQL Server只是将其写入计划Jane Windows文件,并且还会遭受损坏。对MDB文件损坏的Bing搜索可产生约70,000次命中。搜索SQL文件腐败导致高达6900万次命中!

因此,鉴于这样的轻度工作负载,然后使用喷气机或ACE数据库引擎是您到目前为止提供的合理选择。您的想法是,您必须使用SQL或基于服务器的数据库引擎是基于您概述的典型使用方案的超越愚蠢的建议。

我还应该指出,您明确指出,典型的安装不会运行专用的服务器。换句话说,运行SQL Server的站也将用作一般工作站。这也表明某些站点的计算机相当有限。在此类有限的工作站上安装SQL Server通常会导致更多的支持问题,然后您使用基于服务器的数据库系统获得。这确实是正确的马路的问题。您不会使用巨大的柴油运输卡车来提供一只披萨。

在此类机器上安装SQL Server可能会引起更多的问题,而不是使用基于文件的数据库引擎(例如ACE/JET)。

但是,鉴于您已经更改了代码以使用SQL Server,因此有一些SQL Server的静音安装选项。

但是,SQL Server只需安装在其中一个工作站上。因此,当要安装软件时,您可能必须将其分为两个部分。这肯定会"增加"软件的设置复杂性。因此,现在"客户"必须决定并找出要"设置"作为数据库服务器的站点。实际上,由于这种选择,您将有代价高昂的人类时间支持电话。

所以有几件事:

在此处忽略有关使用基于文件数据库的不符合性的建议。我有多个运行5个工作站的客户端,并使用文件共享数据库已有10多年的历史,而从来没有一个问题。正如我指出的对SQL Server损坏的简单搜索可在Internet上产生100至1000倍的命中。

因此,SQL Server作为设置的一部分将大大增加您的支持成本和设置成本。此外,此类安装通常需要您在该工作站上运行SQL Server上的正确端口(默认的Express Install没有启用TC/IP供该工作站以外使用)。

还请记住,典型的药房等只有大约2-5个工作站,而且很少有域名。无论"域"问题是什么,这确实意味着您使用的是SQL登录,而不是Windows身份验证。因此,现在这意味着您还必须在SQL Server上设置用户 登录(同样,不太困难,但是这些问题只是必须处理的问题,必须完成的问题是一种"用户"友好的方式 - 否则,您为简单的计划安装咀嚼有价值的人类支持美元)。

如果您的典型设置是10个电台,并且您期望您到目前为止提供的"更高"的工作量和数据量,那么我毫无疑问地建议您花费额外的R& d,额外的设置成本和额外的支持成本并采用SQL Server。

然而,到目前为止,使用了智能且经过深思熟虑的选择,在文件共享模式下使用JET(现在是ACE)数据库引擎是一个很好的选择。

正如我指出的那样,您不需要在这些机器上安装访问权限,我建议您不。您只需要数据库引擎,并且有一个安装设计,该安装旨在与Visual Studio等一起使用。可以在此处找到:

https://www.microsoft.com/en-us/download/details.aspx?id=13255

因此,您不需要安装访问权限 - 您不使用访问权限,而是使用默认数据库引擎,该引擎是带有访问的默认数据库引擎,它是一个独立的系统,并在该行业中下载了20多年。

文件共享系统的主要引人入胜的优势是零设置麻烦,而不必设置 安装 安装 维护SQL Server在其中一个工作站上。

如果您在任何给定位置连接到数据库的多台计算机,我肯定会选择SQL Server。

MS Access在处理/与多个客户端合作的记录非常差,并且很容易提交腐败和其他混乱的问题 - 这是一个基于文件的解决方案 - 而不是真实的数据库。最初部署可能更容易,但从长远来看,这将是维护/支持的噩梦。

如果您使用功能强大的安装程序软件,则很可能在后台安装SQL Server默默地表示使用默认值,并提供"专家模式",如果有人真正想更改这些设置中的任何一个。使用SQL Server Express作为Windows Installer中的依赖性查看,以及用于SQL Server Express

的Google或bing的"静音安装"

最新更新