【发布时间】:2015-08-18 05:43:32
【问题描述】:
这些天我正在使用 .NET 平台的 WPF 和 MVVM 相关功能和工具开发一个新的 c# 项目。我对这种类型的应用程序开发完全陌生。在我开始学习 ICommand 和 INotifyPropertyChanged 之类的东西后,我注意到当我深入研究这些类和命名空间 System.Windows.Input 时,我实际上正在远离可移植性。
在我坚持使用MVVM 之前,我曾经为我的应用程序的业务层创建一个可移植的类库。
来自PresentationCore.dll 的这些MVVM 类是否在Xamarin android、iOS 和mac 等其他平台上得到很好的支持?如果我在可移植类库中使用ICommand、CommandManager 和其他类,我是否也可以在其他提到的平台中使用实现的库?
放弃便携性是什么意思?
例如,假设我们要开发一个可以移植到 windows 和 android 平台的应用程序。当我实现ICommand 时,我只能使用带有WPF 控件的命令,尽管我可以轻松地在xamarin android 应用程序中的按钮的单击事件处理程序中调用该方法。所以在这个例子中,ICommand 在 Xamarin android 应用程序中是无用的。
您能否指导我在可移植类库中对MVVM 进行编程时应该考虑什么? MVVM 和 PCL 有什么共同点?当他们的概念和功能相互不安时?
【问题讨论】:
-
首先,见MVVMCross。
-
视图通常不可移植,因为它们高度依赖于表示框架。恕我直言,因为视图模型应该以易于从视图中消费的方式公开数据和行为,所以视图模型也不可移植。但是,您可以将视图模型中的共享逻辑提取到 PCL,然后视图模型将只是非常薄的框架特定层。其中它会影响您的 MVVM 架构
标签: c# .net wpf mvvm portable-class-library