MVVM模型层-不依赖PCL等的框架-需要在模型中访问串行端口



我正在将我的第一个(复杂的(应用程序从WinForms移植到WPF。我仍处于研究阶段。主要任务之一是分离关注点(UI与逻辑(,因此我想使用MVVM框架。我想使用一个更完整的框架(Caliburn micro/MVM cross/Prism/…(

问题是该程序目前需要访问模型层的串行端口(最终将在未来被蓝牙取代(。据我所知,这个串行端口要求排除了使用任何依赖PCL或类似的东西。

更为复杂的是,View层最初需要包含WPF功能区(最终也会被替换(,我认为这会给一些框架带来一些小麻烦。

在未来,如果大部分代码库可以移植到其他操作系统(因此对MVVM交叉感兴趣(,那就太好了。

哪种框架最容易实现我的目标?还是我完全偏离了轨道,最好还是坚持使用一个简单的WPF应用程序,该应用程序有一个从UI项目调用的业务逻辑独立项目,并在不再需要com端口和功能区时转移到MVVM?

编辑(更新(:由于这篇文章(MSDN(,我现在对PCL及其局限性有了更多的了解。因此,如果我有一个接口和服务定位器,并且有一个单独的(特定于平台的(项目来实现串行端口,那么我似乎可以将串行端口与PCL类型的框架一起使用。

我认为你还没有完全步入正轨!你走对了。。。问题是。。。取决于=(。

如果你使用WPF或基于XAML的语言,你绝对应该利用MVVM模式!因为这是关于关注点、可测试性和软件结构的分离。在您选择一个框架之前,我强烈建议您深入研究模式(或指导(MVVM本身。一旦你有了清晰的理解,这个框架只是一种品味的选择。

回到你的问题上来。串行端口:在MVVM中,您可能会有一个IDeviceService,它可以实现串行端口,一个用于蓝牙,一个适用于RFID。您的应用程序只与IDeviceService对话,并且实现可以通过依赖项注入轻松交换(清楚地分离关注点(。

Ribbons:Ribbons只是视图,它是由视图模型备份的数据的表示。如果您决定使用另一个UI控件,也可以进行交换。如果需要编写新的视图模型,这当然取决于行为,但控件只是视图,不应该包含太多逻辑。

如果你决定跨操作系统,你可能会考虑在PCL的基础上构建一个框架http://msdn.microsoft.com/en-us/library/gg597391(v=vs.110(.aspx…

https://github.com/MvvmCross/MvvmCross最近,mvvmcross非常适合跨平台.Net MVVM的开发。。。

但毕竟,我建议尝试在较小的项目中习惯MVVM的概念,并熟悉它,之后,你可以选择使用任何框架,也可以扮演自己的角色=(。。。

HTH

最新更新