我正在创建预订系统,接待员(在酒店中)可以使用预订系统向客户预订房间。我有一些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一起使用是对的吗?
答案 0 :(得分:1)
问题是为什么选择WCF?
所有用户都可以访问数据库吗?
如果用户有权访问数据库,那么您可以跳过WCF并直接与数据库对话。
但是,让我们回到你的问题和项目:
MVVM
只是一种可以与WPF
一起使用的模式,在您的WCF project
中无需担心。请阅读此MSDN article about MVVM
您应该将业务逻辑(Model)
保留在WCF
或Database
中,如果您使用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服务的。