6、ASP.NET MVC入门到精通——ASP.Net的两种开发方式
本系列目录:ASP.NET MVC4入门到精通系列目录汇总
目前,ASP.NET中两种主流的开发方式是:ASP.NET Webform和ASP.NET MVC。从下图可以看到ASP.NET WebForms和ASP.NET MVC是并行的,也就是说MVC不会取代WebForms(至少目前是这样)而是多了一个选择,Webform在短期之内不会消亡,尽管存在许多缺点,但过去许多老项目依旧是使用的WebForms进行开发的,虽然许多公司已经在积极的将WebForms项目迁移或升级到MVC项目,但WebFoms项目依然会存在很长一段时间。

WebForm的开发方式
• 服务器端控件
• 一般处理程序+Html静态页+Ajax
• 一般处理程序+Html模板
WebForm模型

MVC请求模型

DomainModel – 领域模型: 不仅仅是一个实体类,而是整个业务才处理流程的一个规则.
WebForm 优点
1、支持事件模型开发。得益于丰富的服务器端组件,webfrom开发可以迅速的搭建web应用
2、使用方便,入门容易
3、控件丰富
WebFrom 缺点
1、封装太强,很多底层东西让我们初学者不是很明白
2、入门容易,提升很难
3、复杂的生命周期模型学习起来并不容易
4、控制不灵活
5、ViewState处理
ASP.Net MVC的开发方式
• 2009年第一个开源项目版本发布
• 更加简洁,更加接近原始的“请求-处理-响应”
• 更加开发、更多的新的特点、社区活跃
• 不会取代WebForm
• 底层跟WebForm都是一样的。管道上不同的处理而已
• MVC只是表示层的一种新的方式
MVC是微软2009对外公布的第一个开源的表示层框架,这是微软的第一个开源项目
MVC目的不是取代WebFrom开发,只是web开发的另外一种选择
为什么要学习ASP.Net MVC?
MVC架构模式诞生30年后,因为其提供的良好的松耦合、易于扩展、高可维护性等优点,重新在开发社区火起来。作为微软全新的Web网站开发框架,ASP.NET MVC提供了全新的开发模式,完美支持经典的MVC架构模式。为.NET工程师提供了完全不同的开发体验。
越来越多的公司和开发者开始加入到MVC开发模式中来,使他进入了一个高速发展的状态,而现在MVC已经变成了ASP.NET下的一种常见的开发模式,它能让你学习一种完全不同的架构,所以这是我们有理由也有必要掌握的一项开发技能。
ASP.Net MVC学习路线
要有C#、ADO.Net、html、javascript、ASP.Net WebForm的基础
MVC简介
MVC 模式两种理解:一种是表现模式,另外一种是架构模式。这里我主要将其理解为表现模式。
它将应用程序分成三个主要组件即:视图(View)控制器(Controller)模型(Model)
M:Model 主要是存储或者是处理数据的组件Model其实是实现业务逻辑层对实体类相应 数据库操作,如:
CRUD(C:Create/R:Read/U:Update/D:Delete)。它包括数据、验证规则、数据访问和业务逻辑等应用程序信息。ViewModel:视图模型
V:View 是用户接口层组件。主要是将Model中的数据展示给用户。ASPX和ASCX文件被用来处理视图的职责。
C:Controller 处理用户交互,从model中获取数据并将数据传给指定的view

表现模式(UI/Presentation Pattern)三个角色
Model:用于存储数据的组件
View:根据Model数据进行,内容展示的组件
Controller:接受并处理用户指令(操作Model),选择一个View并输出内容
MVC是 模型(Model),视图(View)和控制(Controller)的缩写,其目的实现Web系统的职能分工。其中Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现; View层用于与用户的交互,通常用JSP来实现; Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
MVC请求模型

控制器(Controller)- 负责转发请求,对请求进行处理。
视图 (View) - 界面设计人员进行图形界面设计。
模型 (Model)-业务逻辑、数据、验证规则、数据访问等等

模型是一个概念,不要对应到多架构的某个层
View 和 Controller都可以直接请求Model,但是Model不依赖View和controller
Controller可以直接请求View来显示具体页面,View不依赖Controller
真正和用户打交道的是 控制器,视图/模型 只是被控制器调用并产生html代码而已。
MVC优点
1、很容易将复杂的应用分成M、V、C三个组件模型。通过model、view和controller有效的简化了复杂的架构,体现了很好的隔离原则
2、因为没有使用server-based forms 。所以我们程序员控 制的更加灵活,页面加干净
3、可以控制生成自定义的url。对于seo友好的url更是不在话下
4、强类型View实现,更安全、更可靠、更高效。
5、让web开发可以专注于某一层,有利于开发中的分工,更利于分工配合适用于大型架构开发
6、很多企业已经使用MVC作为项目开发框架,招聘明确要求熟悉MVC开发模式,我现在做的项目架构就是mvc+ef+wcf+…
7、松耦合、易于扩展和维护
8、有利于组件的重用
9、ASP.NET MVC更好的支持单元测试(Unit Test)
10、在团队开发模式下表现更出众
MVC 代码和页面彻底分离,WebForm:codebehind技术没有完全对代码和前台页面进行分离
MVC的约定
控制器的约定大于配置
1、Controller放到controllers文件夹中,并且命名方式以Controller结尾
2、每个Controller都对应View中的一个文件夹,文件夹的名称跟Controller名相同Controller中的方法名都对应一个View视图(非必须,但是建议这么做)而且View的名字跟Action的名字相同
3、控制器必须是非静态类,并且要实现IController接口
4、Controller类型可以放到其他项目中。
视图的相关约定
1、所有的视图必须放到Views目录下
2、不同控制器的视图用文件夹进行分割,每个控制器都对应一个视图目录
3、一般视图名字跟控制器的Action相对应(非必须)
4、多个控制器公共的视图放到Shared
个人的感觉:自从接触了MVC,就再也不想拖控件了...
6、ASP.NET MVC入门到精通——ASP.Net的两种开发方式的更多相关文章
- 21、ASP.NET MVC入门到精通——ASP.NET MVC4优化
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 删除无用的视图引擎 默认情况下,ASP.NET MVCE同时支持WebForm和Razor引擎,而我们通常在同一个项目中只用到了一种视图引擎 ...
- 26、ASP.NET MVC入门到精通——后台管理区域及分离、Js压缩、css、jquery扩展
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 有好一段时间没更新博文了,最近在忙两件事:1.看书,学习中...2.为公司年会节目做准备,由于许久没有练习双截棍了,难免生疏,所以现在临时抱 ...
- 25、ASP.NET MVC入门到精通——Spring.net-业务层仓储
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一节,我们已经把项目框架的雏形搭建好了,那么现在我来开始业务实现,在业务实现的过程当中,不断的来完善我们现有的框架. 1.假设我们来做一个 ...
- 1、ASP.NET MVC入门到精通——新语法
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在学习ASP.NET MVC之前,有必要先了解一下C#3.0所带来的新的语法特性,这一点尤为重要,因为在MVC项目中我们利用C#3.0的新特 ...
- 5、ASP.NET MVC入门到精通——NHibernate代码映射
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一篇NHibernate学习笔记—使用 NHibernate构建一个ASP.NET MVC应用程序 使用的是xml进行orm映射,那么这一 ...
- 7、ASP.NET MVC入门到精通——第一个ASP.NET MVC程序
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 开发流程 新建Controller 创建Action 根据Action创建View 在Action获取数据并生产ActionResult传递 ...
- 8、ASP.NET MVC入门到精通——View(视图)
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 View视图职责是向用户提供界面.负责根据提供的模型数据,生成准备提供给用户的格式界面. 支持多种视图引擎(Razor和ASPX视图引擎是官 ...
- 9、ASP.NET MVC入门到精通——Controller(控制器)
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 Controller主要负责响应用户的输入.主要关注的是应用程序流,输入数据的处理,以及对相关视图(View)输出数据的提供. 继承自:Sy ...
- 10、ASP.NET MVC入门到精通——Model(模型)和验证
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 模型就是处理业务,想要保存.创建.更新.删除的对象. 注解(通过特性实现) DisplayName Required StringLengt ...
随机推荐
- hibernate学习笔记之四 Hibernate的增删改查
采用JUnit测试,继承TestCase import java.util.Date; import junit.framework.TestCase; import org.hibernate.Se ...
- iOS开发之地图与定位
无论是QQ还是微信的移动客户端都少不了定位功能,之前在微信demo中没有添加定位功能,今天就写个定位的小demo来了解一下定位和地图的东西.地图和定位看上去是挺高大上一东西,其实用法比TableVie ...
- c# 实现简单udp数据的发送和接收
服务端代码 static void Main(string[] args) { UdpClient client = null; string receiveString = null; byte[] ...
- 1Z0-053 争议题目解析682
1Z0-053 争议题目解析682 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 682.Identify the scenarios in which the RMAN CROS ...
- STL模板中的map的使用与例题
最近的计分赛,记得自己的都只是过了两题.遇到了两次map,自己在寒假看了一点的map,只知道在字符串匹配的时候可以用的到.但是自己对map的使用还是不够熟练使用,这回在第一次和第二次的计分赛中都遇到可 ...
- centos7 mysql数据库安装和配置
一.系统环境 yum update升级以后的系统版本为 [root@yl-web yl]# cat /etc/redhat-release CentOS Linux release 7.1.1503 ...
- SQL Server中公用表表达式 CTE 递归的生成帮助数据,以及递归的典型应用
本文出处:http://www.cnblogs.com/wy123/p/5960825.html 我们在做开发的时候,有时候会需要一些帮助数据,必须需要连续的数字,连续间隔的时间点,连续的季度日期等等 ...
- Spring加载xsd引起的问题小记
前言 最近要把之前写好的监控系统加上报警功能,就是通过rpc调用发短信发邮件的服务发送报警信息.发短信发邮件的功能是通过dubbo管理提供的.自然使用这些服务就难免用到spring.而我这又是一个st ...
- Delphi TListView刷新闪烁问题
应用场景 TListView可以动态选择列并显示而且列宽度也要保存,加载数据ListView会出现N次闪烁 步骤一: 选择要显示列: 点击"确定"按钮,显示下图 步骤二: 界面会出 ...
- 【十大经典数据挖掘算法】kNN
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 引言 顶级数据挖掘会议ICDM ...