本系列目录: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的两种开发方式的更多相关文章

  1. 21、ASP.NET MVC入门到精通——ASP.NET MVC4优化

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 删除无用的视图引擎 默认情况下,ASP.NET MVCE同时支持WebForm和Razor引擎,而我们通常在同一个项目中只用到了一种视图引擎 ...

  2. 26、ASP.NET MVC入门到精通——后台管理区域及分离、Js压缩、css、jquery扩展

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 有好一段时间没更新博文了,最近在忙两件事:1.看书,学习中...2.为公司年会节目做准备,由于许久没有练习双截棍了,难免生疏,所以现在临时抱 ...

  3. 25、ASP.NET MVC入门到精通——Spring.net-业务层仓储

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一节,我们已经把项目框架的雏形搭建好了,那么现在我来开始业务实现,在业务实现的过程当中,不断的来完善我们现有的框架. 1.假设我们来做一个 ...

  4. 1、ASP.NET MVC入门到精通——新语法

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在学习ASP.NET MVC之前,有必要先了解一下C#3.0所带来的新的语法特性,这一点尤为重要,因为在MVC项目中我们利用C#3.0的新特 ...

  5. 5、ASP.NET MVC入门到精通——NHibernate代码映射

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一篇NHibernate学习笔记—使用 NHibernate构建一个ASP.NET MVC应用程序 使用的是xml进行orm映射,那么这一 ...

  6. 7、ASP.NET MVC入门到精通——第一个ASP.NET MVC程序

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 开发流程 新建Controller 创建Action 根据Action创建View 在Action获取数据并生产ActionResult传递 ...

  7. 8、ASP.NET MVC入门到精通——View(视图)

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 View视图职责是向用户提供界面.负责根据提供的模型数据,生成准备提供给用户的格式界面. 支持多种视图引擎(Razor和ASPX视图引擎是官 ...

  8. 9、ASP.NET MVC入门到精通——Controller(控制器)

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 Controller主要负责响应用户的输入.主要关注的是应用程序流,输入数据的处理,以及对相关视图(View)输出数据的提供. 继承自:Sy ...

  9. 10、ASP.NET MVC入门到精通——Model(模型)和验证

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 模型就是处理业务,想要保存.创建.更新.删除的对象. 注解(通过特性实现) DisplayName Required StringLengt ...

随机推荐

  1. BCP 数据的导入和导出

    BCP 命令的参数很多,使用 -h 查看帮助信息,注意:参数是区分大小写的 使用BCP命令导出和导入数据常用的参数如下 bcp {[[database_name.][schema_name]].{ta ...

  2. Sql Server系列:自定义函数

    用户自定义函数可以像系统函数一样在查询或存储过程中调用,可以接受参数.执行操作并将操作结果以值的形式返回.返回值可以是单个标量或结果集. 1. 标量函数 标量函数返回一个确定类型的标量值,对于多语句的 ...

  3. Entity Framework Code First添加修改及删除单独实体

    对于一个单独实体的通常操作有3种:添加新的实体.修改实体以及删除实体. 1.添加新的实体 Entity Framework Code First添加新的实体通过调用DbSet.Add()方法来实现. ...

  4. c数组与字符串

    原文链接:http://www.orlion.ga/913/ 一.数组 定义数组: int count[9]; 赋值: int count[4] = { 3, 2, }; 未赋初值的元素用0初始化.如 ...

  5. Vue.js学习笔记(8)拖放

    小颖在目前负责的项目中,负责给同事提供所需组件,在这期间,我们家大颖姐姐让我 写个拖拽组件,一开始我是用click实现,先将你要拖拽的dom点一下,然后再点你要放的位置,这个dom再通过小颖写的方法, ...

  6. 前端学php之常量

    × 目录 [1]定义常量 [2]常量检测 [3]系统常量[4]魔术常量 前面的话 常量在javascript中并不存在,在php中却是与变量并列的重要内容.常量类似变量,但常量一旦被定义就无法更改或撤 ...

  7. 深入理解javascript对象系列第一篇——初识对象

    × 目录 [1]定义 [2]创建 [3]组成[4]引用[5]方法 前面的话 javascript中的难点是函数.对象和继承,前面已经介绍过函数系列.从本系列开始介绍对象部分,本文是该系列的第一篇——初 ...

  8. c语言表白程序代码

    双十一要到了,好激动啊!!! 是时候准备出手了! 花了一天的时间写的表白代码. 表示自己弱弱的.....   看了网上好多都是js写的,感觉碉堡了!js用的不熟,前端不好,java,Python写起来 ...

  9. 重置EntityFramework数据迁移到洁净状态

    前言 翻译一篇有关EF数据迁移的文章,以备日后所用,文章若有翻译不当的地方请指出,将就点看,废话少说,看话题.[注意]:文章非一字一句的翻译,就重要的问题进行解释并解决. 话题引入 无法确定这种场景是 ...

  10. 窥探Swift编程之错误处理与异常抛出

    在Swift 2.0版本中,Swift语言对其错误处理进行了新的设计,当然了,重新设计后的结果使得该错误处理系统用起来更爽.今天博客的主题就是系统的搞一下Swift中的错误处理,以及看一下Swift中 ...