如何通过网络访问WPF桌面应用程序

时间:2015-06-19 02:11:51

标签: c# wpf network-programming entity-framework-6 desktop-application

我正在设计一个使用Entity Framework连接到MS SQL Server数据库的WPF应用程序。

应用程序从Excel文件中读取数据并将记录保存到数据库中。现在,下一个要求是,应用程序应该可以同时访问多个用户(公司网络),以便所有用户都可以在数据库中查看数据并在需要时查询/更新数据。

我在想的是,我需要做的就是将数据库放在一台应该在公司内部网络上的中央机器上,我的应用程序应该连接到该数据库,并允许用户执行操作

我需要对此当前连接字符串进行哪些更改?

<connectionStrings>
    <add name="TPMSContext" connectionString="metadata=res://*/TPMSModel.csdl|res://*/TPMSModel.ssdl|res://*/TPMSModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=Test-DELL;initial catalog=TPMS;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

为了让我的应用程序同时为多个用户工作,我需要实现/记住哪些其他更改?

P.S:我的应用程序是&#34;任何CPU&#34;目标框架为4.5。现在它基于桌面,但在未来我们可能会基于网络,但是现在我们只是希望它是基于桌面的。请帮忙。

更新 This is the view of my solution explorer. TMPS is my Main application. TPMS.Data contains my business logic and methods that provides interaction with the database though Entity Framework. TPMS.Entities has the database tables as entity classes.

1 个答案:

答案 0 :(得分:1)

这种方法称为3层架构。您可以通过窗口上托管的WCF TCP / IP实现它。 您将在其他服务器计算机上托管数据库交互业务逻辑,客户端将在另一台计算机上使用这些API。

你需要流动:

  • 使用WCF创建服务(Window)。
  • 主持。
  • 生成代理(接口或合同)。
  • 将此代理分发给需要调用和使用此API的客户端应用程序。

您可以创建应用程序的体系结构,如下所示:

  • 部署在服务器上:

    a)数据库访问层(与数据库交互)。 b)业务逻辑层(它将是数据库访问层的方法)。 c)服务层(在此处创建WCF服务并调用业务逻辑方法)。 d)将这些主机托管到服务器机器中。

  • 客户端计算机 - a)使用。svcutil工具创建代理类 b)将此代理类用于客户端机器以使用服务(API)

参考:

Host a WCF Service