zoukankan      html  css  js  c++  java
  • MVVM解决方案的一般结构

      解决方案的结构一般是三个解决方案文件夹,分别是:

      Models

      ViewModels

      Views

    当然需要的话可以扩充,如Services、UnitTest等等。

      然后每个解决方案文件夹里面包含各自的项目,项目里面的命名空间名自动跟随项目名,而不跟随解决方案文件夹名,而且用解决方案文件夹的好处就是解决方案不提供物理管理,只提供逻辑关联,所以在项目文件夹里是找不到解决方案文件夹的;解决方案文件夹可以右键直接编译,不同于普通的物理文件夹,普通的物理文件夹只能创建在项目下面,里面不可以再添加项目文件,而且不可以右键编译,这是他们两个的区别所在。

      Models里包含的是数据以及数据是怎么来的,包括访问数据库,xml等等,这里面都是类库,不涉及任何UI的东东。

      Views里面包含的是所有的UI,这里面都是界面,包括字体、Style、图片、动画、窗体、用户控件等,数据要怎么展示给用户,都在这里面,并且这里面只包含“纯UI”的代码,不涉及任何处理数据的代码。Views里面的每个工程的结构一般为:

      Fonts

      Images

      Styles

      UserControls

      Windows

      App.xaml

      ViewModels里包含的是所有的逻辑,Models里的数据怎么组织、处理、调用、供给界面展示,都在这一层,如我之前所说,ViewModel其实意为“Model for View”,View里的UI全部、或者部分,直接、或者间接地把它的DataContext指向这里,所以这里的数据、方法、属性、命令、事件一般是为Views里的某个UI定制的,也可以是为某“一群”UI定制,这个看具体的需要,如果很多地方用到同一个逻辑,不妨抽象出一个公用的ViewModel,如a界面的ComBox要一个部门的列表作为数据源,b界面也有一个ComBox需要同样的部门列表,c界面也需要,那就把这个逻辑抽象出来公用。

      为何要分出这么多项目,其实源自于CS程序的软肋。CS的东东,交付用户了,很开心,出Bug了,修改,然后重新发布到用户手里,重装,这是个很费事的过程,不像BS的,完全没有这困扰。把逻辑从UI的项目里抽出来,到最后就是一堆exe和dll,只要不涉及本质性的改动,哪个出问题了改哪个,到时候直接替换。

      另外,每个项目的生成路径最后都指定到根目录下的Debug文件夹,方便打包和资源的归总。并且使用SVN的话,每个项目下的Debug文件夹是不用提交到服务器的,这个东东每次都会自动生成的。

  • 相关阅读:
    Directory文档目录操作
    文件序列化和反序列化
    COOKIE
    转载深入ASP.NET MVC之二:路由模块如何工作
    Running 32Bit RDP on 64 Bit Windows OS
    MS CRM Isv Web.config设置
    QualifyLead PlugIn(转)
    MS CRM帮助访问不正确,
    (转)CrmTrace encountered an error. Additional Info:Error in GetFileName MS CRM
    MS CRM 2011储存电子邮件凭证
  • 原文地址:https://www.cnblogs.com/zoexia/p/3416168.html
Copyright © 2011-2022 走看看