启动WPF MVVM.使用框架?

Jie*_*eng 8 .net wpf frameworks mvvm

我在这里看了一些像堆栈溢出这样的问题mix10构建你自己的mvvm框架

我想知道作为一个初学者,从头开始更好(但我从vid听到,不推荐)或使用框架

哪个更适合作为初学者框架学习?我发现在阅读了不少文章甚至教程视频后,我仍然很丢失.我可能会在这里和那里得到零件,但仍然没有.

caliburn微小的框架易于学习?或者来自微软的东西,比如MVVM工具包或Unity/Prism(什么是所有这些MS框架顺便打赌)?MVVM Light?

Edu*_*eni 11

IMO,没有必要使用框架.MVVM只是一种做事方式.

首先,您只需要一个RelayCommand类,因此您可以将命令绑定到viewModel.您可以从Josh Smith MVVM Foundation下载它

然后,当你更高级时,你可以添加其他类,如:

  • ObservableObject:这是ViewModel类型的基类,或者必须提供属性更改通知的任何类型.它实现INotifyPropertyChanged 并在调试版本中验证通过PropertyChanged事件传递的所有属性名称是否 为有效属性.这个类曾经被调用过ViewModelBase.

  • Messenger:Messenger类是一种在不需要彼此了解的各种ViewModel对象之间传递消息的轻量级方法.这是基于MediatorMarlon Grech和Josh Smith创建的 实现,如Marlon的博客所示.


Pyg*_*gmy 10

我的0.02美元:

我几周前开始使用WPF/Mvvm模式,我可以肯定推荐的一条路线是首先启动一个测试项目,阅读很多关于mvvm的信息,并尝试自己实现它(即使只是通过使用部件其他人的东西).实现一些东西,阅读更多内容,返回并更改内容,然后阅读更多内容.

在前两周这样做,你会知道它实际上是什么,你会看到一些问题,并找到一些解决方案,等等.基本上,这将获得你的手指mvvm的想法,并给你一些实践经验.

然后,如果你愿意,你可以丢弃你的测试项目,决定是否真正开始编写自己的东西或使用现有的工具包,并且可能对现有工具包的工作方式有更多的了解和理解.

我最终没有使用现有的工具包,而是我自己非常简单的实现,因为我的项目并不需要太多的复杂性,但我确实对我在互联网上讨论过的一些实现有了更多的了解.

编辑:当我谈到"两个星期"时,我指的是"两周的业余时间",大概是25个小时;-)

  • 这正是我建议不要从框架开始的原因.由于其庞大的规模和功能列表,这些框架可能非常过度镶嵌.如果您没有使用MVVM的经验,您可能无法理解99%的这些功能.如果您自己开始编写一个非常简单的MVVM实现,您将遇到某些问题,并且您将了解处理它们的不同方法.通过这种方式,您将在一段时间后了解框架将不再是黑魔法 - 然后您可以考虑继续构建自己的系统或切换到现有框架. (2认同)