从我的软件访问联机SQL Server数据库
我一直在使用SQL Server数据库开发该软件。现在我正处于为其他人提供此软件的阶段,但我不知道如何管理数据库。问题是,在安装我的软件时,在用户计算机上同时安装SQL Server确实很不方便(可能会发生许多意想不到的事情) 因此,我想我会用SQL Server支付网络托管费用,但事实是:从我的软件访问联机SQL Server数据库,sql,sql-server,database,Sql,Sql Server,Database,我一直在使用SQL Server数据库开发该软件。现在我正处于为其他人提供此软件的阶段,但我不知道如何管理数据库。问题是,在安装我的软件时,在用户计算机上同时安装SQL Server确实很不方便(可能会发生许多意想不到的事情) 因此,我想我会用SQL Server支付网络托管费用,但事实是: 价格昂贵(仅适用于表很少的数据库) 大多数web主机不提供对SQL Server数据库的远程访问(因此我无法从软件连接到那里) 所以我的问题是,你会怎么做?我自己的虚拟服务器?(甚至更贵),或者您会在用户计
所以我的问题是,你会怎么做?我自己的虚拟服务器?(甚至更贵),或者您会在用户计算机上安装SQL Server?或者,您知道在哪里可以只使用SQL Server托管以降低成本吗?我不建议使用远程SQL Server。SQL连接在很大程度上依赖于网络连接,而Internet对此还不够“稳定”。还有一些性能问题会使您的应用程序完全无用 您没有提到的一件重要事情是,不同的用户是共享相同的数据还是拥有自己的数据。如果每个用户都将使用自己的数据,则可以安装“本地”SQL Server版本(SQL Compact Edition,以下是参考) 如果多个用户共享相同的数据,您不应该只依赖数据库。一种可能的方法是让应用服务器实现业务逻辑,而桌面应用程序保持actiong作为“哑”客户机。这对性能和减少数据传输问题有很大帮助。您可以为您的应用服务器实现Web服务。这是一个很好的解决方案,因为数据通过HTTP/HTTPS从应用程序服务器传输到客户机,这使您不再需要处理端口和其他通信问题。另一种方法是使用Microsoft通信框架(WCF)
祝你好运如果你的软件是一个独立的应用程序,也许考虑将MSSQL替换为嵌入式数据库,这样你就可以用你的应用程序进行分发。其中有一些是基于C的,例如Java应用程序的Derby()或SQLite()(还有其他的)。当然,它可能适合您,也可能不适合您,这取决于您的数据库需求、许可、所需的代码重构等。