使用Wpf和amp;时的问题创建应用程序时使用Wcf + MVVM(预订系统)

时间:2016-03-02 11:38:03

标签: .net wpf wcf mvvm

我正在创建预订系统,接待员(在酒店中)可以使用预订系统向客户预订房间。我有一些MVC和Web开发的经验,但这次我必须使用对我来说是全新的Wpf。

我正在考虑使用MVVM模式,但我有点困惑在哪里放置模型,视图模型等。 我正在考虑创建两个项目:

项目1:

是Wpf应用程序,前端部分。它应该在自己的计算机上运行。

项目2:

是Wcf服务应用程序,后端也应该在它自己的计算机上运行。

在将MVVM与这两个项目结合使用时,我感到很困惑。 我知道viewModel绑定到一个视图,但视图对viewModel或模型一无所知。

我想在Wpf应用程序项目中创建的内容:

  • 模特文件夹(不确定)

  • 一个ViewModel文件夹,其中包含创建视图所需的必要ViewModel(如可用房间列表或其他内容)。

这些viewModels正在调用Wcf服务以获取显示视图所需的内容。

Wcf应用

  • 一个模型文件夹,创建了所有模型(以房间模型为例)

  • 我在DAL文件夹中创建虚拟数据到数据库表格。

  • 服务文件夹(包含将处理来自Wpf项目的请求的服务)

我还担心的是,Wcf服务应用程序中的哪个类应该是请求接收者?让我们说我们在自己的计算机上运行这两个项目。

Wpf项目“localhost:3000”

Wcf项目“localhost:3001”

在我的Wpf viewModel类(或它的相关服务)中,向Wcf项目发出请求以从数据库中获得空间。 WCF应用程序是否具有api控制器来调用?

希望有人会读到这些并帮助我解决这些误解。

更新

从微软论坛得到一些答案,他们说我应该离开Wcf并坚持使用Web Api 2 ..将Web api与Wpf一起使用是对的吗?

1 个答案:

答案 0 :(得分:1)

问题是为什么选择WCF?

所有用户都可以访问数据库吗?

如果用户有权访问数据库,那么您可以跳过WCF并直接与数据库对话。

但是,让我们回到你的问题和项目:

MVVM只是一种可以与WPF一起使用的模式,在您的WCF project中无需担心。请阅读此MSDN article about MVVM

您应该将业务逻辑(Model)保留在WCFDatabase中,如果您使用EF,则会自动生成所有模型类。并且您只在EF中使用WCF project

您可以在WPF项目中创建视图和ViewModel。您的ViewModel是您的模型和视图的翻译。假设您有一个文本框,并且您希望将其绑定到人员FirstName和LastName,并且这些属性在您的模型中是分开的。然后,您可以使用ViewModel创建另一个名为FullName的Property,并为View提供这两个属性。

  

我还关心的是,什么类应该是请求   Wcf服务应用程序中的接收器?让我们说我们运行这两个   项目在自己的计算机上。

     

Wpf project" localhost:3000"

     

Wcf project" localhost:3001"

您的WPF没有任何地址。它只是一个正常的Windows application

您的WCF服务看起来像这样http://localhost:3001/YourService.svc

您可以通过在ServiceReference中添加WPF project来与之沟通。

  

在我的Wpf viewModel类(或它的相关服务)中   请求Wcf项目从数据库中获取空间。是WCF吗?   应用程序有api控制器来调用或?

您在API's内自行创建的Service

Here是如何创建WCF服务的。