(转) 一步一步学习ASP.NET 5 (四)- ASP.NET MVC 6四大特性
转发:微软MVP 卢建晖 的文章,希望对大家有帮助。原文:http://blog.csdn.net/kinfey/article/details/44459625
编者语 : 昨晚写好的文章居然csdn不审核,这个也难怪人,但自己比较忙没办法。分享继续,今天谈ASP.NET MVC 6.
我蛮喜欢Ruby On Rails 这种约定胜于配置的框架,在.NET 有ASP.NET MVC 和Java有Play! Framework . ASP.NET MVC 版本基本上每年一更新,从不让你失望。我们现在来看看ASP.NET MVC 6的变化,上一篇已经把基本的配置和改变说了(一步一步学习ASP.NET 5 (三)- 认识新的Web结构),今天看看MVC 6的几个特性。
1. 统一的MVC和WebAPI Controller
在过去版本中,你需要定义WebAPI时必须继承自基于System.Web.Http.ApiController ,而如果是一般的页面Controller就需要继承自 System.Web.MVC.Controller 。而在新的ASP.NET MVC 6中,微软统一了MVC和WebAPI,他们都继承自Microsoft.AspNet.Mvc.Controller。
ASP.NET MVC 6 Controller中,每个Action返回的都是一个IActionResult的接口,它会依据情况去返回页面还是数据。在MVC 6中特别的地方是WebAPI和页面Controller可以使用相同的路由规则。你也可以通过公共方法或者通过属性标签去设定路由规则。
2. Tag Helper (https://github.com/DamianEdwards/TagHelperStarterWeb)
开发ASP.NET MVC你会对那些神奇的Tag helper有深刻印象。下面这段代码很熟悉吧
虽然方便不过大大破坏了html的可读性。新的版本,有了更佳的可读性,更贴近html.
3. View Commpents
这是全新的子视图,取代了原有的SubController。(这个功能个人比较少用),我i的理解是更好地利用好页面部件。他能真正做到局部响应。(大家可以参考这里 : http://www.asp.net/vnext/overview/aspnet-vnext/vc)
4.依赖注入
ASP.NET 5 已经带了依赖注入,你不需要再使用第三方的IoC方式了(话需如此,你也可以通过第三方的方式去完成不过现阶段都很麻烦)。依赖注入基于Microsoft.Framework.DependencyInjection 。你需要在Startup.cs中的ConfigureServices方法中配置。
ASP.NET MVC 6 在原有的基础上改进了功能,优化了前端页面Razor的结构,对于开发和维护更方便快捷。个人就比较喜欢统一了WebAPI 和普通页面Controller,和添加了依赖注入的功能。你呢?
补充一句,由于工作较忙,文章会在周日继续,希望大家会想我
(转) 一步一步学习ASP.NET 5 (四)- ASP.NET MVC 6四大特性的更多相关文章
- (转) 一步一步学习ASP.NET 5 (二)- 通过命令行和sublime创建项目
转发:微软MVP 卢建晖 的文章,希望对大家有帮助. 注:昨天转发之后很多朋友指出了vNext的命名问题,原文作者已经做出了修改,后面的标题都适用 asp.net 5这个名称. 编者语 : 昨天发了第 ...
- 3、带你一步一步学习ASP.NET Core中的配置之Configuration
如果你是刚接触ASP.NET Core的学习的话,你会注意到:在ASP.NET Core项目中,看不到.NET Fraemwork时代中的web.config文件和app.config文件了.那么你肯 ...
- .NET跨平台:在Mac上跟着错误信息一步一步手写ASP.NET 5程序
今天坐高铁时尝试了一种学习ASP.NET 5的笨方法,从空文件夹开始,根据运行dnx . kestrel命令的错误信息,一步一步写代码,直至将一个最简单的ASP.NET程序运行起来. 尝试的具体步骤如 ...
- 一步一步学习SignalR进行实时通信_1_简单介绍
一步一步学习SignalR进行实时通信\_1_简单介绍 SignalR 一步一步学习SignalR进行实时通信_1_简单介绍 前言 SignalR介绍 支持的平台 相关说明 OWIN 结束语 参考文献 ...
- 一步一步学习SignalR进行实时通信_8_案例2
原文:一步一步学习SignalR进行实时通信_8_案例2 一步一步学习SignalR进行实时通信\_8_案例2 SignalR 一步一步学习SignalR进行实时通信_8_案例2 前言 配置Hub 建 ...
- 一步一步学习SignalR进行实时通信_9_托管在非Web应用程序
原文:一步一步学习SignalR进行实时通信_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信\_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信_9_托管在非We ...
- 一步一步学习SignalR进行实时通信_7_非代理
原文:一步一步学习SignalR进行实时通信_7_非代理 一步一步学习SignalR进行实时通信\_7_非代理 SignalR 一步一步学习SignalR进行实时通信_7_非代理 前言 代理与非代理 ...
- ASP.NET MVC 3 Model【通过一简单实例一步一步的介绍】
今天主要讲Model的两个方面: 1. ASP.Net MVC 3 Model 简介 通过一简单的事例一步一步的介绍 2. ASP.Net MVC 3 Model 的一些验证 MVC 中 Model ...
- 一步一步学习SignalR进行实时通信_5_Hub
原文:一步一步学习SignalR进行实时通信_5_Hub 一步一步学习SignalR进行实时通信\_5_Hub SignalR 一步一步学习SignalR进行实时通信_5_Hub 前言 Hub命名规则 ...
随机推荐
- 基于<MediaElement>的WPF视频播放器(可拖拽进度条播放)【1】
一.前言 前两天上峰要求做一个软件使用向导,使用WPF制作.这不,这两天从一张白纸开始学起,做一个播放演示视频的使用向导.以下是粗设计的原型代码: 二.效果图 三.代码 前台代码: < ...
- Hello, Android 快速入门
Hello, Android Android 开发与 Xamarin 简介 在这两节指南中,我们将 (使用 Xamarin Studio或 Visual Studio)建立我们的第一个 Xamarin ...
- Microsoft.Practices.Unity入门
Unity是微软Patterns & Practices团队所开发的一个轻量级的,并且可扩展的依赖注入(Dependency Injection)容器,它支持常用的三种依赖注入方式:构造器注入 ...
- C# 操作鼠标移动到指定的屏幕位置方法
/// <summary> /// 引用user32.dll动态链接库(windows api), /// 使用库中定义 API:SetCursorPos /// </summary ...
- Linux环境下安装Tigase XMPP Server
Tigase是一种XMPP服务器,可以作为采用XMPP协议的各种IM(Instant Messeging)工具(如Pandion.Spark等)的服务器. 在Linux环境下安装Tigase的步骤如下 ...
- SharedPreferences写入和读出数据
Android中有很多方法存储数据,如SharedPreferences.SQLite数据库等.简单数据的存储适用SharedPreferences. 本文使用SharedPreferences写入和 ...
- Scalaz(54)- scalaz-stream: 函数式多线程编程模式-Free Streaming Programming Model
长久以来,函数式编程模式都被认为是一种学术研究用或教学实验用的编程模式.直到近几年由于大数据和多核CPU的兴起造成了函数式编程模式在一些实际大型应用中的出现,这才逐渐改变了人们对函数式编程无用论的观点 ...
- InstantClick – 快速响应!让你的网站与众不同
尽管网络带宽不断增加,但网站并没有更快很多.这是因为最大的瓶颈在于页面加载的延迟.InstantClick 是一个很小的 JavaScript 库,大大加速你的网站响应速度. 在访问者点击一个链接之前 ...
- Headroom.js – 快速响应用户的页面滚动操作
Headroom.js 是一个轻量级,高性能的JS插件(无依赖性!),允许你响应用户的滚动行为.Headroom.js 使您能够在适当的时候把元素融入视图,而其它时候让内容成为焦点.Headroom. ...
- 众人口中的JAVASCRIPT
目前所说的JAVASCRIPT=ECMAscript+DOM+BOM DOM全称:Document Object Model,造作网页内容的标准. BOM全称:Browse Object Model, ...