C# 多用户应用程序的组织

C# 多用户应用程序的组织,c#,wpf,sql-server,C#,Wpf,Sql Server,我有一个WPF C#多用户应用程序,它与Sql Server Express数据库交互。目前我面临以下问题: 如何组织应用程序和数据库,以便不同站点上的多个用户能够使用它,也许我应该将数据库文件放在服务器上,并使所有其他站点上的应用程序在与database交互时引用该服务器?如果是,我如何提供数据库文件的安全性。 在任何情况下,我都可以在服务器上安装我的应用程序,并将其作为服务器进行签名,同时在其他机器上安装该服务器? 如对此类情况下的一般策略有任何建议,将不胜感激 提前谢谢 对于多用户应用程序

我有一个WPF C#多用户应用程序,它与Sql Server Express数据库交互。目前我面临以下问题: 如何组织应用程序和数据库,以便不同站点上的多个用户能够使用它,也许我应该将数据库文件放在服务器上,并使所有其他站点上的应用程序在与database交互时引用该服务器?如果是,我如何提供数据库文件的安全性。 在任何情况下,我都可以在服务器上安装我的应用程序,并将其作为服务器进行签名,同时在其他机器上安装该服务器? 如对此类情况下的一般策略有任何建议,将不胜感激


提前谢谢

对于多用户应用程序,您肯定应该将数据库放到服务器上。由于该应用程序适用于多用户,因此用户打开应用程序时显示的第一个屏幕是登录屏幕(与web应用程序的情况类似)

安全性不是问题,一旦数据库放入文件系统,只有该计算机上的用户才能访问它。当然,包含数据库的计算机应该只有管理员作为用户。另一点是Windows可能运行IIS,不要将数据库文件放在IIS的公共根目录下,这样非用户就无法通过HTTP下载它们


假设用户在同一办公室工作。您可以将LAN中的任何计算机指定为服务器,并在其上安装数据库。同一LAN中的任何计算机都有LAN IP(例如192.168.1.100),您的应用程序可以连接到此IP进行数据库操作。

如果所有用户都是并发的,则您需要将SQL实例放在他们都有权访问的服务器上

您还需要了解很多类似的事情,比如如何管理事务,以及持久层的总体功能

这些话题中的每一个都可能产生更多的问题:)

这可能有助于对如何构建持久性层提供一些启发。。

是的,您当然可以将数据库放在服务器上,事实上,如果有多个用户,这是您唯一的选择。首先,您需要构建一个SQL Server,然后像现在一样在该服务器上创建数据库,然后更改应用程序中的连接字符串以指向该服务器。简言之,你需要了解很多领域,这个问题有点过于宽泛。你的建议是正确的,但有些过于简化的地方让我担心。首先(也是最不重要的),值得注意的是,如果可以使用Windows身份验证,则不需要登录屏幕。更重要的是,您的第二点是不正确的:根据访问规则和文件/共享安全性,用户可以从其他计算机访问文件,因此安全性仍然是一个非常重要的问题!您还过分简化了局域网连接的使用:许多办公室将DHCP用于非服务器机器,因此在“任何计算机”上运行服务器可能只在DHCP租约到期之前有效。谢谢您的回复。在这种情况下,我必须以两种方式部署我的应用程序:一种是安装在服务器机器上,其中sql server express和数据库的安装都将嵌入,另一种是安装在客户端机器上,只包含引用应用程序的数据?@khurshed_nosirov,是的,我相信有两部分:您的.net应用程序在每台客户机上运行。服务器保存着SQL server数据库。@Paul Dinh,客户端机器不需要安装SQL server express对吗?是的。客户机上不需要SQL Server。您需要的是“使用System.Data.SqlClient;”: