参考资料《ASP.NET MVC5 高级编程》第5版

第1章 入门

1.1 ASP.NET MVC 简介

ASP.NET MVC是一种构建Web 应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET 框架。

在分离应用程序的关注点方面(例如,从显示逻辑中分离出数据访问逻辑),MVC是一种强大而简洁的方式。

MVC 将应用程序的用户界面(User InterFace,UI)分为三个主要部分:

  • 模型:一组类,描述了要处理的数据以及修改和操作数据的业务规则。
  • 视图:定义应用程序用户界面的显示方式。
  • 控制器:一组类用来处理来自用户,整个应用程序流以及特定应用程序逻辑的通信。

在ASP.NET MVC 中,MVC 三个主要部分的定义大致如下:

  • 模型:通常封装存储在数据库中的数据,以及操作这些数据和执行特定域业务逻辑的代码。
  • 视图:动态生成HTML 页面的模版
  • 控制器:一个协调视图与模型之间的特殊类。它响应用户输入,与模型进行对话,并决定呈现哪个视图(如果有的话)。在ASP.NET MVC 中,这个类通常以后缀名Controller 表示。

ASP.NET MVC 的上下文是问题域和宿主系统。

ASP.NET MVC 发展历程

  • 2009年3月,ASP.NET MVC 1发布
  • 2010年3月,ASP.NET MVC 2发布,新的API功能有:支持将大型应用程序划分为域
  • ASP.NET MVC 3的主要特征有:支持Razor 视图,支持.NET4 数据注解,支持全局操作过滤器(Global Action Filter)

1.1.1 ASP.NET MVC4 概述

设计ASP.NET MVC的目的是用来创建网站,因此,整个平台的设计目标很明确:响应浏览器的请求,并返回HTML

ASP.NET MVC 4的主要功能包括 Web API

1.Web API 功能:
  • 路由: 它按照约定将HTTP 动词映射到控制器操作。这样可以使代码便于阅读,同实鼓励了RESTful 服务设计。
  • 模型绑定和验证:与MVC 简化映射输入值(表单域,cookies,URL 参数)到模型值的过程是一样的,Web API 自动把请求值映射到模型。绑定系统具有的良好的扩展性。
  • 过滤器:向操作添加行为。
  • 基架:可以快速添加一个基于实体类框架模型的Web API 控制器。
  • 简单的单无测试:这一点与MVC 很像,Web API 建立在依赖注入和避免全局状态使用的概念之上。

一些新的概念和模型:

  • HTTP 编程模型:提供了一个强类型的HTTP 对象模型、HTTP 状态码和容易访问的Headers 等。
  • 基于HTTP 动词的动作调度
  • 内容协商
  • 基于代码的配置
2.显示模式

显示根据浏览器发出的请求,使用约定的方法来选择不同的视图

3.捆绑代码和微小框架

通过合并脚本引用将若干个请求合并成一个请求,从而减少发送到站点的请求数量。

同时也采取各种技术来压缩包大小,比如缩短变量名、删除空格和注释等

1.2 ASP.NET MVC5 概述

ASP.NET MVC5 主要特性:

  • One ASP.NET
  • ASP.NET Identity
  • 特性路由
  • 过滤器:向操作添加行为。
  • ASP.NET基架
  • 身份证过滤器
  • 过滤器重写

参考资料《ASP.NET MVC5 高级编程》

ASP.NET MVC5 入门的更多相关文章

  1. Asp.Net MVC5入门学习系列③

    原文:Asp.Net MVC5入门学习系列③ 添加一个视图(View) 接着上篇的入门系列,上面解说添加一个简单Controller(控制器),这里我们简单的在来添加一个View(视图)来展示我们Co ...

  2. Asp.Net MVC5入门学习系列②

    原文:Asp.Net MVC5入门学习系列② 添加一个Controller(控制器) 因为我们用的是Asp.Net MVC,MVC最终还是一套框架,所以我们还是需要遵循它才能玩下去,或者说是更好的利用 ...

  3. Asp.Net MVC5入门学习系列①

    原文:Asp.Net MVC5入门学习系列① 现在直接开始MVC5的学习系列,学习资源来自Micrsoft. 开始使用Asp.Net MVC 5 打开Visual Studio 2013,然后新建一个 ...

  4. Asp.Net MVC5入门学习系列⑦

    原文:Asp.Net MVC5入门学习系列⑦ 接着上篇结尾所说,如果开发中刚才遇到Model需要添加或者减少字段/属性的话,但是刚好你也利用EF的Code frist通过Model生存的数据库,这时改 ...

  5. Asp.Net MVC5入门学习系列⑤

    原文:Asp.Net MVC5入门学习系列⑤ 检查VS生产的编辑方法和编辑窗体 前面我们一步使用强类型,然后创建Controller(控制器)的时候,VS默认已经给我们把CURD都简单的实现了.这篇的 ...

  6. Asp.Net MVC5入门学习系列⑥

    原文:Asp.Net MVC5入门学习系列⑥ 接着上次的篇幅,我们这篇手动来写一个查询的流程代码! 搜索/查询 流程功能的实现 那现在要做搜索(查询)功能我们第一步应该做什么呢!第一次是不是我们应该去 ...

  7. Asp.Net MVC5入门学习系列④

    原文:Asp.Net MVC5入门学习系列④ 添加Model且简单的使用EF 对于EF(EntityFramework)不了解的朋友可以去百度文科或者在园子里搜一些简资源看下,假如和我一样知道EF的概 ...

  8. ASP.NET MVC5入门1之项目创建

    本博文参考ASP.NET MVC5入门指南,下载链接: ASP.NET_MVC5_入门指南 1.创建项目 文件 --> 新建 --> 项目 Visual C# --> Web --& ...

  9. ASP.NET + MVC5 入门完整教程八 -—-- 一个完整的应用程序(上)

    https://blog.csdn.net/qq_21419015/article/details/80509513 SportsStore 1.开始创建Visual Studio 解决方案和项目这里 ...

  10. ASP.NET + MVC5 入门完整教程七 -—-- MVC基本工具(上)

    https://blog.csdn.net/qq_21419015/article/details/80474956 这里主要介绍三类工具之一的 依赖项注入(DI)容器,其他两类 单元测试框架和模仿工 ...

随机推荐

  1. 庭审精彩语录整理 z

    公诉人:用百度搜索淫秽关键字+快播,搜索结果得出超过4200万结果,可见快播在传播淫秽视频方面的巨大影响.王欣:这个没有任何意义,您可以用百度搜索淫秽关键字+QQ看有多少结果. 新浪科技讯 1月8日下 ...

  2. SPR EAD NET 6

    SPR EAD_NET6 下载地址 http://www.gcpowertools.com.cn/downloads/trial/Spread.NET/EN_SPREAD_NET6_SETUP_RA_ ...

  3. 容易导致outofmemoryException内存泄漏异常的编码问题

    1.System.Drawing方面的类使用问题 System.Drawing用到了很多系统的资源和非托管代码,所以使用的时候要特别小心,注意内存泄漏(Memory Leak) 2.new byte[ ...

  4. Jenkins参数化构建

    背景:每次构建项目时都需要去修改一下配置,然后保存,再去立即构建.这样修改容易修改出错误,影响到执行脚本,且每次都要去修改配置,不容易修改,操作也比较麻烦.所以决定将Jenkins修改为参数化构建.下 ...

  5. textarea文本换行和页面显示换行符

    在textarea里写的文本有换行,但是显示到页面后就不会自动换行,通过对数据分析发现textarea里的换行符是\n\r,然而HTML中的换行为<\br>解决办法有两种: 第一种:把文本 ...

  6. Html5中的跨页面消息传输

    1.如果要接受从其他的窗口那里发过来的消息,就必须对窗口对象的message事件进行监控. window.addEventListener("message",function() ...

  7. Delphi中自画TStatusBar面板中的文字颜色背景以及图片

    转自 http://www.delphitop.com/html/kongjian/351.html 首先定义:procedure TStatusForm.FormCreate(Sender: TOb ...

  8. MySQL游标学习总结

    游标的概念 在数据库中,游标是一个十分重要的概念.游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制.游标总是与一条 ...

  9. 剑指Offer:面试题16——反转链表(java实现)

    问题描述 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点.链表结点如下: public class ListNode { int val; ListNode next = n ...

  10. 多媒体编程基础之RGB和YUV

    一.概念 1.什么是RGB? 对一种颜色进行编码的方法统称为“颜色空间”或“色域”.用最简单的话说,世界上任何一种颜色的“颜色空间”都可定义成一个固定的数字或变量.RGB(红.绿.蓝)只是众多颜色空间 ...