1.Net WebForm的开发模式
(1)处理流程:网站根目录->index.aspx文件->CodeBehind文件逻辑处理(访问数据库等)->由index.aspx页面呈现给客户
 
(2)开发方式
  • 服务器端控件
  • 一般处理程序+html静态页面+Ajax (所谓的前后端分离)
  • 一般处理程序+html模板引擎
 
2.Net MVC的开发模式
(1)处理流程:
客户端请求的URL->映射到响应的Controller去(处理业务逻辑)(从Model取数据)->控制器选择合适的View返回给客户
 
(2)M-V-C分别代表什么
M:Model主要是存储或者处理数据的组件 ;是实现业务逻辑层对实体类相应数据库操作,如增删改查。它包括数据,验证规则,数据访问和业务逻辑等信息(补充:ViewModel:视图模型)
 
V:View是用户接口层组件。主要是将Model中的数据展现给客户。aspx和ascx文件被用来处理视图的职责。
 
C:Controller处理用户交互,从Model中获取数据并将数据传给指定的View
 
 
3.WebForm和MVC比较
 
(1)WebForm
优点:
  • 有大量的微软封装的服务器控件支持,学习成本低,深入学习难度大
  • 基于事件驱动编程,click事件等,aspx和cs文件分离,即显示逻辑和处理逻辑分离
  • 控件以“隐藏域”形式存在当前表单页面,即ViewState
缺点:
  •  ViewState会增加页面负担,造成性能不是很高
  • 代码重用性不高,code-behind代码后值技术,
  • aspx页面和cs紧密耦合度太高,不利于单元测试
(2)MVC
优点:
  • 架构的设计降低了程序间的耦合性,方便单元测试
  • 不支持ViewState,提升程序性能
  • 可扩展性好,继承asp.net的特性,表单验证,缓存,会话等
  •  强类型View实现、Razor视图、Model绑定机制、Model的验证机制,更安全高效
 缺点:
需要有一定的学习成本,前端技术 
 
 
总结:快速开发中小型项目 用webform,比较关注代码性能和重用性,单元测试建议使用MVC
 
 
 
 

1.MVC基础-初识MVC,与WebForm比较的更多相关文章

  1. 【MVC】初识MVC

    一.MVC是什么?     MVC(Model-View-Controller),是视图-模型-控制器的框架,刚開始看见这些概念的时候,我以为是U-D-B呢?视图界面,模型是相应这数据库呢,而控制器是 ...

  2. 创建第一个MVC专案--初识MVC

    MVC1.0正式版2009就上市了,可自己今年才开始去接触,汗颜~ 自己在学的过程中也看过一些文章,很多都是大致介绍的没有连接数据库实现下操作,直至自己买了本后发现MVC有很强大的数据库操作类已封装好 ...

  3. MVC基础(很基础很基础~~~)

    最近工作比较不忙,准备学习一些东西,作为一个菜鸟,不断学习新东西(我不会的东西)充实自己真的很重要,所以整理一下基础的mvc知识,以备不时之需.呵呵~~ 首先感谢原文作者:QLeelulu的文章htt ...

  4. ASP.NET MVC 基础

    ASP.NET MVC oo1 Mvc准备工作课程安排:ORM->AspNet MVC开发环境:VS2012/VS2013SqlServer2008/2005主讲Asp.Net Mvc4 Raz ...

  5. 重温MVC基础入门

    重温MVC基础入门   简介 本文主要是作者回顾MVC基础的文章,整合个人认为基础且重点的信息,通过简单实践进行复习. 相关代码地址:https://github.com/OtherRuan/Revi ...

  6. MVC 基础知识

    一. MVC架构1.MVC模式是一种严格实现应用程序各部分隔离的架构模式.隔离:分离关注点,松耦合2.模型(Model) 代表着核心的业务逻辑和数据.模型封装了域实体的属性和行为3.视图(View) ...

  7. Webform和MVC,为什么MVC更好一些?

    前言 如果你看了最近微软的议程,你会发现他们现在的焦点除了MVC,还是MVC.问题在于为什么微软如此热衷于丢弃传统的APS.NET Webform而转向ASP.NET MVC?本文就主要来讨论这个问题 ...

  8. Spring MVC基础

    1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是一样的方法.框架只能在技术层 ...

  9. Spring MVC 基础

    Spring MVC 基础 1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是 ...

随机推荐

  1. Dart泛型

    /* 通俗理解:泛型就是解决 类 接口 方法的复用性.以及对不特定数据类型的支持(类型校验) */ //只能返回string类型的数据 // String getData(String value){ ...

  2. Python中产生随机数

    Python中产生随机数 一.Python自带的random库       1.参生n--m范围内的一个随机数:    random.randint(n,m) 2.产生0到1之间的浮点数:  rand ...

  3. 记一次腾讯云MySQL数据库数据回滚

    如题,因为操作人员的问题,需要对数据库数据进行回滚. 可以看到,设置了7天自动备份,且是物理冷备. 什么是物理冷备?科普一下: (1)热备:在数据库运行时,直接进行备份,对运行的数据库没有影响.(2) ...

  4. Python - Django - 在 CBV 中使用装饰器

    urls.py: from django.conf.urls import url from app02 import views urlpatterns = [ # app02 url(r'^app ...

  5. HR数据分析常用的50个公式

    HR数据分析常用的50个公式 HR经常需要和数据打交道,如入职率.离职率.加班费计算等.虽然日常工作中,单个数据的计算并不麻烦,但几十上百个累计在一起,确实很容易混淆,甚至计算失误.今天小编急HR之所 ...

  6. php程序无法记录log情况下可尝试下面方法记录log

    error_reporting(E_ERROR | E_PARSE); function shutdownCallback(){    $arrError = error_get_last(); // ...

  7. 关于css清除元素浮动的方法总结(overflow clear floatfix)

    在前两天的一个面试中考官问我web中清除浮动的一些css常用方法,我很轻松的答出了: 1.overflow:hidden 2.clear:both 3.floatfix类 然后问题就来了,考官接着问' ...

  8. sudo启动程序引发的进程个数不对

    这几天把自己负责的服务改成了多进程模型,然后使用sudo来启动进程,示例程序如下:   int main(void)   {   fork();   while(1);   }   编译: `gcc ...

  9. SpringBoot学习笔记:读取配置文件

    SpringBoot学习笔记:读取配置文件 配置文件 在以往的项目中,我们主要通过XML文件进行框架配置,业务的相关配置会放在属性文件中,然后通过一个属性读取的工具类来读取配置信息.在SpringBo ...

  10. python2:输出百分比

    pass_num=80execute_num=90pass_rate = "%.2f%%" % (float(pass_num)/float(executed_num)*100)p ...