【问题标题】:Multiple Clients (WPF Application) with centralized Database server and Database (SQL server 2008)具有集中式数据库服务器和数据库 (SQL server 2008) 的多个客户端(WPF 应用程序)
【发布时间】:2015-05-18 12:04:19
【问题描述】:

我开发了一个 WPF 桌面应用程序,它将在多个客户端 PC 中使用,它们都有一个集中的数据库来执行 CRUD 操作,我们最多有 5-10 个并发用户,我开发了这个应用程序,我很漂亮做了很多工作,最近我想到将客户端-服务器集中式架构与 WPF 桌面应用程序一起使用是一种好习惯。我是 WPF 的新手,所以我不知道在这种情况下如何处理不同的请求。我的意思是在 ASP.net 中,IIS 为每个用户会话创建了不同的应用程序域。请告诉我我所做的是否正确,如果不正确,请解释原因并提出替代方案,谢谢

【问题讨论】:

    标签: c# sql-server wpf centralized


    【解决方案1】:

    您可能应该查看Windows Communication Foundation (WCF)。它将允许您创建一个标准化的 Web API 来进行开发。 WCF 可以托管在进程中(您编写的自定义服务器),也可以由 IIS 托管。

    调整现有程序以使用 WFC 可能是一个挑战,这取决于您已经如何构建它。通常,应用程序需要从一开始就为其设计。

    【讨论】:

    • 我知道 WCF 服务,但连接不是客户端和服务器使用相同本地网络的问题,我关心的是并发请求,如何处理从多个 WPF 应用程序到 Sql server 2008 数据库的请求。
    • 您目前使用什么方法从每个客户端(实体框架、ADO.net 等)访问数据库?
    • ADO.net,主要是 DataReaders、DataAdapters 和普通的 Sqlcommands,我必须提到,datareaders 不会长时间打开,它们只是获取一条记录,然后它们就被关闭了。
    • 据我所知,WPF 不会改变 SQL 的行为。对 sql server 的并发请求不应该有任何问题;它旨在处理这个问题。 sql server 收到的每个打开请求都会在服务器上创建一个会话。唯一可能遇到的问题是锁定问题,其中一个打开的事务锁定了一个表,而另一个客户端尝试读取或写入数据到同一个表。它将暂停直到锁被释放。可能会陷入僵局,即 2 个客户端相互等待对方。
    猜你喜欢
    • 1970-01-01
    • 2018-07-13
    • 2014-10-25
    • 2011-01-22
    • 1970-01-01
    • 2012-02-18
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多