ASP.NET MVC5(一):ASP.NET MVC概览
ASP.NET MVC概览
ASP.NET MVC是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架。
ASP.NET MVC模式简介
MVC将Web应用程序划分为三个主要的部分,以下是MSDN给出的定义:
- 模型(Model):模型对象是实现应用程序数据域逻辑的应用程序部件。 通常,模型对象会检索模型状态并将其存储在数据库中。 例如,Product 对象可能会从数据库中检索信息,操作该信息,然后将更新的信息写回到 SQL Server 数据库内的 Products 表中。
- 视图(View):视图是显示应用程序用户界面 (UI) 的组件。 通常,此 UI 是用模型数据创建的。 Products 表的编辑视图便是一个视图示例,该视图基于 Product 对象的当前状态显示文本框、下拉列表和复选框。
- 控制器(Controller):控制器是处理用户交互、使用模型并最终选择要呈现的视图来显示 UI 的组件。 在 MVC 应用程序中,视图仅显示信息;控制器则用于处理和响应用户输入和交互。 例如,控制器处理查询字符串值,并将这些值传递给模型,而模型可能会使用这些值来查询数据库。
ASP.NET MVC的发展历程
首先,我们以一张时间轴线图开始,了解一下ASP.NET MVC的发展历程。
- 2007年2月,Microsoft公司的Scott Guthrie在旅途中草拟了ASP.NET MVC的内核程序。经过9个预览版本,于2009年3月13日,正式发布ASP.NET MVC1官方版本。
- 时隔一年,ASP.NET MVC2于2010年3月发布,部分主要特征如下:
- 带有自定义模板的UI辅助程序
- 在客户端和服务员基于特性的模型验证
- 强类型的HTML辅助程序
- 改善的Visual Studio开发工具
- 支持将大型应用程序划分为域
- 支持异步控制器
- 使用Html.RenderAction支持渲染网页或网站的某一部分
- 新的辅助函数、使用工具和API增强
- 10个月后,ASP.NET MVC3正式推出,部分主要特征如下:
- 支持Razor视图引擎
- 支持.NET4数据注解
- 改进了模型验证
- 提供更强的控制和更大的灵活性,支持依赖项解析(Dependency Resolution)和全局操作过滤器(Global Action Filter)
- 丰富的JavaScript支持,其中包括非侵入式JavaScript、jQuery验证和JSON绑定
- 支持NuGet,可以用来发布软件,管理整个平台的依赖
- 12年9月,ASP.NET MVC4正式发布,新增功能主要包括:
- ASP.NET Web API
- 增强了默认的项目模板
- 添加使用jQuery Mobile的手机项目模板
- 支持显示模式(Display Mode)
- 支持异步控制器的任务
- 捆绑和微小(minification)
- 2013年10月,ASP.NET MVC5与Visual Studio 2013一起发布,下面列出了一些主要特征:
- One ASP.NET
- 新的Web项目体验
- ASP.NET Identity
- Bootstrap模板
- 特性路由
- ASP.NET基架
- 身份验证过滤器
- 过滤器重写
创建ASP.NET MVC5应用程序
本节主要讲解如何使用Visual Studio快速创建ASP.NET MVC5应用程序,所有截图均使用Visual Studio 2015,步骤如下:
- 选择File|New|Project选项。
- 在New Project对话框左侧的Installed|Templates|Visual C#列表下,选中Web选项,选择ASP.NET Web Application,将应用程序命名为MyFirstMvcProject,点击OK按钮。
- 在弹出的New ASP.NET Project对话框中,选中MVC模板,点击OK按钮。
- 至此,一个新的MVC项目已经创建完成,在应用程序根目录下包含Project_Readme.html文件,创建项目时将自动显示这个文件。
ASP.NET MVC应用程序结构
新的MVC项目创建完成后,会自动向这个项目中创建一些目录,下表介绍了这些目录的主要用途。
目录 | 用途 |
---|---|
App_Data | 用于存储想要读取/写入的数据文件 |
App_Start | 用于保存一些功能的配置代码 |
Content | 用于保存CSS、图像和其他站点内容 |
Controllers | 用于保存处理URL请求的控制器类 |
fonts | 用于保存Bootstrap模板系统包含的一些自定义Web字体 |
Models | 用于保存表示和操纵数据以及业务对象的类 |
Scripts | 用于保存JavaScript库文件和脚本 |
Views | 用于保存负责呈现输出结果的UI模板文件 |
ASP.NET MVC的约定
在默认情况下,ASP.NET MVC应用程序对约定的依赖性很强,这样就避免了开发人员配置和指定一些项,因为这些项可以根据约定来推断。这个概念通常被称为“习惯优于配置(convention over configration)”
ASP.NET MVC对于程序结构的约定如下:
1. 每个Controller类的名字以Controller结尾,保存在Controller目录中。
2. 应用程序的所有视图放在单独的Views目录下。
3. 控制器使用的视图是在Views主目录下的,与控制器名称相同的子目录中。
总结
本章为此系列的第一篇,主要介绍了ASP.NET MVC的总体结构、发展历程以及如何在Visual Studio中快速创建一个ASP.NET MVC应用程序。下一篇,将详细介绍控制器、视图以及模型等相关内容。
转载于:https://www.cnblogs.com/yujihaia/p/7367567.html
ASP.NET MVC5(一):ASP.NET MVC概览相关推荐
- asp.net mvc5 oracle,ASP.NET MVC5网站开发用户注册(四)
一.默认Web项目的更改 用户这部分还是自己做,所以删除自动生成的用户相关代码. 二.添加Member区域 在web项目上点右键 添加 区域Member. 添加Home控制器,选择MVC5控制器-空 ...
- 【MVC】ASP.NET MVC5 使用MiniProfiler 监控MVC性能
MiniProfiler ,一个简单而有效的迷你剖析器,可以有效的实时监控页面.通过直接引用.Ajax.Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL. ...
- [Asp.net MVC]Asp.net MVC5系列——添加数据
目录 概述 显示添加数据时所用表单 处理HTTP-POST 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列--第一个项目 [Asp.net MVC]Asp.net MVC5系列 ...
- [Asp.net MVC]Asp.net MVC5系列——第一个项目
目录 概述 创建第一个项目 添加控制器 总结 概述 本教程是个人一步一步学习的总结,希望能帮到正在进入ASP.Net MVC5方向的朋友,个人也是准备进入ASP.NET MVC5领域,虽然艰辛,但是乐 ...
- ASP.NET + MVC5 入门完整教程七 -—-- MVC基本工具(上)
这里主要介绍三类工具之一的 依赖项注入(DI)容器,其他两类 单元测试框架和模仿工具以后介绍. 1.准备示例项目 从创建一个简单的示例开始,名称为"EssentialTools" ...
- ASP.NET MVC5微信公众平台整合开发实战教程
<ASP.NET MVC5&微信公众平台整合开发实战(响应式布局.JQuery Mobile,Windows Azure.微信核心开发)> 课程讲师:57Code 课程分类:ASP ...
- ASP.NET MVC5+ 路由特性
概述 ASP.NET MVC 5支持一种新的路由协议,称为路由特性. MVC5也支持以前定义路由的方式,你可以在一个项目中混合使用这两种方式来定义路由. 案例 1.使用Visual Studio 20 ...
- ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework
文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-ef-6-get-started-model.html 上一节:ASP.NET MVC ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-前言与目录(持续更新中...)
开发工具:VS2015(2012以上)+SQL2008R2以上数据库 您可以有偿获取一份最新源码联系QQ:729994997 价格 666RMB 升级后界面效果如下: 日程管理 http:// ...
最新文章
- Redux 入门教程(二):中间件与异步操作
- Phabricator是什么,代码审查工具
- python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?
- VMware虚拟机不能上网的解决方法
- 《Two Dozen Short Lessons in Haskell》学习(十八) - 交互式键盘输入和屏幕输出
- C语言删掉无关变量无输出,C语言变量类型与输出控制用法实例教程
- [css] 你有用过table布局吗?说说你的感受
- 1 计算机网络体系结构与OSI参考模型
- ActiveMQ、RabbitMQ、RocketMQ、Kafka的介绍及优缺点说明
- 如何实现TextBox与DropDownList的级联
- 知乎高赞:985计算机视觉毕业后找不到工作怎么办?
- postgre数据库记录唯一键_详解sqlserver数据库的索引设计
- 如何使用QQ快速截屏
- java 图形编辑器_SVGX矢量化图形编辑器,100%JAVA实现的矢量化图形编辑器
- 从客户端(jianjie=psasdasdfas/p)中检测到有潜在危险的 Request.Form 值
- Java 给PDF文档设置背景颜色和背景图片
- C#中TreeView树配图片
- JNI系列(一)JNI简介
- 计算机创建管理员用户名和密码,如何给电脑设置管理员登录密码?
- 阿里P8架构师谈(1):双11秒杀系统如何设计
热门文章
- CSS3之Transition
- [资源分享] TensorFlow 官方中文版教程来了
- mysql主键外键_MySQL主键和外键使用及说明
- 泛型参数怎么new_泛型编程,你不知道?(基础篇)
- 关刀机器人_小学机器人活动总结
- 洛谷 P3244 / loj 2115 [HNOI2015] 落忆枫音 题解【拓扑排序】【组合】【逆元】
- 栈和队列的区别,栈和堆的区别
- OSError: [Errno 1] Operation not permitted 问题解决
- C++11: final与override
- 添加组合索引时,做相等运算字段应该放在最前面