现在刚开始学习SilverLight的MVVM模式,有很多东西还不是很清楚,前面有很多大牛总结了一些经验,在这里记录一下,方便自己现在学习和以后回过头来总结
摘至(孙长宇个人技术博客 http://www.cnblogs.com/tiscs/archive/2011/12/16/mvvm-and-me.html)
1 不要在View的Code-Behind中添加任何代码,除非这段代码没有任何复用性且只与当前页面交互逻辑有关;
2 ViewModel的设计要面向业务,面向数据会增加系统实现的复杂性,面向视图会降低ViewModel的可复用性;
3 ViewModel中不能掺杂任何与界面交互逻辑相关的东西(比如说IsExpanded,ShowDialogCommand之流);
4 Action/Behavior做为团队整体的积累,很重要,要保证质量,积累下来的东西要保证是可复用的;
5 ViewModel和View同时面向需求去设计,这样就能保证最终提供给View的ViewModel能够实现需求,不要让ViewModel为了View去做改变,一切看需求;
6 功能性的东西,可以封装到Command中,由ViewModel组装相应的Commands来实现某种功能;
7 ViewModel和Command粒度的划分要根据系统复杂度确定,简单的系统,粒度太细会增加复杂程度;
8 对于老系统改造来说,底层和数据层都要有大的改变,这是必然的;Silverlight使用同步方式与服务器交互是一种错误;
9 团队中所有成员对MVVM的认知要基本一致,否则会做出来的东西,你自己看吧,你自己都不认识;
10 严格的代码审查是很有必要的,毕竟这是一种尚未成熟的模式的实践,团队成员对模式的理解稍有偏差就会对代码产生非差大的影响;