那三层架构的文件结构也比不用三层的复杂,那为什么要用三层架构呢?
不能根据文件结构的复杂度来看整个项目,而是要看它的结构分工是否明确,低耦合~
这样,开发大型项目的时候能让你思路清晰,避免很多问题。
觉得它结果复杂是因为你太熟练webform了,对它的思想还不了解。
没错,
传统的ASP.NET WebForm模式利用ViewState保存表单的状态信息,由于B/S程序本身的限制,ViewState存储数据需要在隐藏表单域里面放置很大一段字符串,这会大大增加页面的字节数,导致网页加载变慢;
MVC只简单地处理“模板”,而无需构建复杂的控件树,因此,无论是在服务器处理的时间,和客户端的呈现速度都会有所提高;
同时,单元测试时Webform的测试是很困难的,使用MVC,可以将业务逻辑与页面分离开,可以不在ASP.NET进程中执行控制器,方便测试。
ASP.NET 的架构好在以下几点:
1,便于维护与扩展
2,代码的重用性
3,层次明确,分工也比较明确
重点是低耦合了。
3层嘛,我就把它当成是流水线作业了。
告诉你吧,按我的经验,Asp.net MVC比WebForm更适合做大型正规的Web程序,理由如下:
1. 它回归了Web的本质,不严格的说其实就是Http的两种请求:Get和Post,其Form和Html控件可以自由写,一个页面上可以写多个Form,我认为这是与WebForm最重要的不同,这样做的结果就是在大的复杂页面上,可以用Ajax单独提交某一个小Form,返回结果后局部刷新一个区域,效率非常之高。而WebForm就不行了,它一个页只能出现一个大Form,假如想提交某部分数据,那么JS将让你巨郁闷,如果想简单提交这个大Form,则效率又会很低。
2. 表面上看,Asp.net MVC似乎比WebForm更复杂,其实是因为还没有看透它。有句话叫书越读越薄,其实就是你在不断研究和思考中,迷雾在一点点拨开,在某一个时间点上,你会突然拨云见日,这时候你就会觉得它其实一点都不复杂。不就是有一个路由吗,可以把Url转到一个Controller的Action方法上吗,不就是在Action里处理完之后,根据不同情况把一些数据传给适当的View,View再把它显示出来吗。That's all。
3. Lebron说的相当对,就是低耦合的东东测试起来巨方便。虽说WebForm测试时,可以把操作录下来测,但大多数程序可能更喜欢直接面对代码的吧,反正我是这样。用MVC模式,单元测试写起来非常的方便。
4. MVC的开发思路更合理一些,当你开发时,你会从输入和输出的角度来思考问题,容易走面向接口编程的路线,而WebForm容易让你先想应该用哪个控件。哪种更合理呢?你应该有自己的答案了吧。
5. MVC也有它的缺点,就是写简单程序的时候,代码要比WebForm多,你应该看过微软的各种示例视频基本就是用WebForm拖点控件,写几行代码就把问题讲明白了对吧,WebForm确实在写小玩意儿的时候代码相当少。但是对于一个大型正规网站,多人协作开发上考虑,耦合度越低,分工就能越明确,并行化程度也能越高,效率当然就越高了。
mvc适合互联网项目还是企业项目,为什么?
1. 它回归了Web的本质,不严格的说其实就是Http的两种请求:Get和Post,其Form和Html控件可以自由写,一个页面上可以写多个Form,我认为这是与WebForm最重要的不同,这样做的结果就是在大的复杂页面上,可以用Ajax单独提交某一个小Form,返回结果后局部刷新一个区域,效率非常之高。而WebForm就不行了,它一个页只能出现一个大Form,假如想提交某部分数据,那么JS将让你巨郁闷,如果想简单提交这个大Form,则效率又会很低。
-------------------------------------------
难道Webform就不可以写多个form?
<form1 ></1form>
<form2 ></2form>
<form3 ></3form>
<form4 ></4form>
取值request.queryform[""];