Ado*_*rez 1 wpf mvvm n-tier-architecture
我目前正在使用MVVM设计模式开发Enterprise WPF LOB Desktop应用程序。我当前在开发机器中的解决方案结构如下:
我目前不使用WCF,因为目前所有内容都驻留在同一台计算机上,但数据库位于其自己的服务器中。但是,将来我们计划将代码库分为3层。
我的问题是,一位同事坚持认为,我们应按以下步骤在3台单独的服务器/机器中拆分应用程序:
我无法想象的视图模型从分开居住(不同的服务器)查看,他声称,应该是可能的。
编辑:我的同事声称,在服务器端具有视图模型将简化将来的任何部署,并使它更易于维护,因为更改只会在服务器端进行。但是,我已经使用ClickOnce部署了.NET应用程序,但这并不是什么大问题。
根据我的阅读,您可以在用户计算机上安装一个包含View和ViewModel的WPF客户端应用程序,然后通过诸如WCF的通信层在较低层公开服务。
该答案在另一篇文章中指出: “在MVVM中,UI层分为两层:负责应用逻辑的ViewModel和仅负责演示的View。” 基于此,我的基本问题是,View和ViewModel UI层可以位于单独的层(服务器)中吗?如果是这样,建议吗?以及如何实现?
谢谢!
最终View Model,它称为Object计算机内存中保留的实例。就像其他任何实例化类一样。其目的是连接视图和模型,访问各种BL方法等。
即使将View模型的实例从某个服务器传递到客户端是可行的(假设您在服务器上对它进行二进制序列化,然后在另一端进行反序列化)-否则会产生巨大的开销(在网络和在CPU)上,我看不出它如何将有可能使事情变得更容易,在我想明白相反如何这将让事情变得更容易维护。
视图和视图模型都应该在客户端。例如
Presentation Tier - The client WPF application (View + View Models)
Logic Tier server - Model + Business Logic Layer + Data Access Layer
Data Tier server - The database server
Run Code Online (Sandbox Code Playgroud)
考虑到这种分离,他是正确的,即在BL或DAL中所做的更改将不需要创建客户端的新版本(只要您不破坏任何接口,不更改模型等)。
| 归档时间: |
|
| 查看次数: |
6260 次 |
| 最近记录: |