mvc那些事】的更多相关文章

MVC的由来: 在MVC模式之前,View界面的呈现.用户交互操作的捕捉与相应.业务流程的执行以及数据的存储等都是在一起的,这种设计模式叫自治视图. 这重设计模式主要存在三大弊端: 重用性:业务逻辑与UI是不相关的,如果将业务逻辑与UI绑定在一起,业务逻辑将无法被重用. 稳定性:业务逻辑.UI逻辑.视图界面三者的稳定性不同,绑定在一起会由最差的部分影响到整体,即"短板理论".(就像一个坏木桶里的水,会从缺口的最低处先流出来) 可测试性:当UI与逻辑部分绑定在一起,极大的增加了测试难度.…
mvc的特点: 1.无控件,有HtmlHelper类,此类提供了各种生成html控件的方法.如果不能满足需要,就自定义扩展吧,比如说分页显示.HtmlHelper类提供了Partial(加载局部视图).Raw(加载html字符串)和Action方法. 2.所有的请求指向Controller中的action,而不是直接指向页面.除了上图中所列出来的请求方式外,还有Redirect(重定向),也可以请求Controller. 3.关注点分离.M代表着业务逻辑,V视图(页面不能含有业务逻辑,只含有简单…
刚开始,因为业务比较赶,我们也没有进行比较好的顶层设计,对代码的要求也是最低要求——完成功能开发就行了.这种短期设计也就造成了我们代码的扩展性几乎为零,稍微添加一点新功能,都要大动干戈.在后台系统架构从TCP转为HTTP时,这些缺点则被放大到极致……所以,我们只有重构了.近一个月来,我工作的重心便是好好规划和设计我们项目的代码结构,同时分享给我们的Android组并予以实行.因为研究了很多的架构,其中有Android相关的,也有非Android相关的,但凡稍稍对我设计架构有点点帮助的,我都翻了一…
兼容Mono的下一代云环境Web开发框架ASP.NET vNext 我们知道了ASP.NET vNext是一个全新的框架,是一个与时俱进的框架.这篇文章将深入讨论在整体架构更多的细节,文档参照 ASP.NET vNext Home,还有这篇文章 http://davidfowl.com/asp-net-vnext-architecture/. github库之间的依赖关系可以看下面这个图 : 这个图不是所有的依赖关系,从这里可以看出ASP.NET vNext的一个架构: KRuntime - 包…
上篇文章Asp.net MVC验证那些事(1)-- 介绍和验证规则使用中,介绍了Asp.net MVC中的验证功能以及如何使用.这里将对MVC中内置的验证规则进行总结. 一,查找所有验证规则 上篇文章中提到,所有的验证规则都是位于下面的命名空间下: using System.ComponentModel.DataAnnotations; 我们可以用ILSpy反编译工具,看看这个命名空间下都有些什么. 下面的图让我们一目了然,在这个命名空间下,.net为我们提供了那些验证规则. 不过,有三点需要注…
在项目的实际使用中,MVC默认提供的Validation Attribute往往不够用,难以应付现实中复杂多变的验证需求.比如, 在注册用户的过程中,往往需要用户勾选”免责声明”,这个checkbox往往是必填项,但是MVC中并没有提供对于checkbox必选的验证.这篇文章通过解决checkbox必选验证的问题,看看如何在MVC中定义自己的自定义验证属性. 阅读目录: 一. CheckBox必选验证的困局 二. 对于服务端ValidationAttribute的实现分析 三. 自定义Enfor…
废话就不多说,直接来操作,有些细节问题就不一一解说了(没有几天几夜都说不完),主意是想让大家看完知道大概这个框架是怎么搭建的就可以了 一. 新建一个解决方案,搭建三层架构,分别为: DAL层  .DLL层.  UI层和实体类库Model 三层架构就分别是:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).表现层(UI):就是展现给用户的界面,即用户在使用一个系统的时候的所见所得.业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理.数据访问层(DAL)…
一.为什么要进行单元测试? 大部分开发者都有个习惯(包括本人在内),常常不喜欢去做单元测试.因为我们对自己写的程序总是盲目自信,或者存在侥幸心理每次运行通过后就直接扔给测试组的妹子们了.结果妹子一测,大把大把的bug出现了,最后每每看到测试的妹子走过来,心里就只想说一句话:你是猴子请来的逗比吗?本来想节省时间,结果最后花在找BUG和修复BUG的这些时间加起来已经比开发这个模块所花的时间还要多了,最后更要命的是,坑爹的加班就在所难免了!如果一开始将bug遏制在萌芽状态,我们至于这么苦逼吗?SO,单…
C#编译器优化那点事   使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码开关即optimize开关,和debug开关一起,有以下几种组合. 在Visual Sutdio中新建一个C#项目时,项目的“调试”(Debug)配置的是/optimize-和/debug:full开关,而“发布”(Release)配置指定的是/optimize+和/debug:pdbonly开关…
Asp.net MVC验证那些事(1)-- 介绍和验证规则使用 -----原文地址链接 数据的有效性验证,是程序开发中必不可少的环节.这篇文章,我们将用一个实例来说明如何在MVC中使用Validation来保证无论是新增或者更新数据的时候,都必须符合我们定义的验证规则,否则就会提示错误. 一, DRY原则 DRY是Don’t repeat yourself的缩写,意思是不要写重复的代码.MVC中的Validation设计就是遵循了这个原则. 比如下面中的Movie类, 当用户在网页上填写Movi…