代码改变世界

随笔分类 - [04]ASP.NET MVC

解读ASP.NET 5 & MVC6系列(17):MVC中的其他新特性

2015-06-03 09:22 by 汤姆大叔, 19502 阅读, 收藏, 编辑
摘要: #(GlobalImport全局导入功能)默认新建立的MVC程序中,在Views目录下,新增加了一个`_GlobalImport.cshtml`文件和`_ViewStart.cshtml`平级,该文件的功能类似于之前Views目录下的web.config文件,之前我们在该文件中经常设置全局导入的命名... 阅读全文

解读ASP.NET 5 & MVC6系列(16):自定义View视图文件查找逻辑

2015-06-02 09:07 by 汤姆大叔, 12038 阅读, 收藏, 编辑
摘要: 之前MVC5和之前的版本中,我们要想对View文件的路径进行控制的话,则必须要对`IViewEngine`接口的`FindPartialView`或`FindView`方法进行重写,所有的视图引擎都继承于该`IViewEngine`接口,比如默认的`RazorViewEngine`。但新版本MVC6... 阅读全文

解读ASP.NET 5 & MVC6系列(15):MvcOptions配置

2015-06-01 08:58 by 汤姆大叔, 8327 阅读, 收藏, 编辑
摘要: #程序模型处理 IApplicationModelConvention在`MvcOptions`的实例对象上,有一个`ApplicationModelConventions`属性(类型是:`List`),该属性`IApplicationModelConvention`类型的接口集合,用于处理应用模型... 阅读全文

解读ASP.NET 5 & MVC6系列(14):View Component

2015-05-29 09:18 by 汤姆大叔, 11900 阅读, 收藏, 编辑
摘要: 在之前的MVC中,我们经常需要类似一种小部件的功能,通常我们都是使用Partial View来实现,因为MVC中没有类似Web Forms中的WebControl的功能。但在MVC6中,这一功能得到了极大的改善。新版MVC6中,提供了一种叫做View Component的功能。你可以将View Co... 阅读全文

解读ASP.NET 5 & MVC6系列(13):TagHelper

2015-05-28 09:22 by 汤姆大叔, 14684 阅读, 收藏, 编辑
摘要: 在新版的MVC6中,微软提供了强大的TagHelper功能,以便让我们摆脱如下的臃肿代码:```csharp@Html.LabelFor(model => model.FullName)@Html.EditFor(model => model.FullName)@Html.ValidationMes... 阅读全文

解读ASP.NET 5 & MVC6系列(12):基于Lamda表达式的强类型Routing实现

2015-05-27 09:05 by 汤姆大叔, 8168 阅读, 收藏, 编辑
摘要: 前面的深入理解Routing章节,我们讲到了在MVC中,除了使用默认的ASP.NET 5的路由注册方式,还可以使用基于Attribute的特性(Route和HttpXXX系列方法)来定义。本章,我们将讲述一种基于Lambda表达式的强类型类型。这种方式的基本使用示例如下:```csharpservi... 阅读全文

解读ASP.NET 5 & MVC6系列(11):Routing路由

2015-05-26 09:07 by 汤姆大叔, 19679 阅读, 收藏, 编辑
摘要: #新版Routing功能介绍在ASP.NET 5和MVC6中,Routing功能被全部重写了,虽然用法有些类似,但和之前的Routing原理完全不太一样了,该Routing框架不仅可以支持MVC和Web API,还支持一般的ASP.NET5程序。新版的改变有如下几个部分。首先,Routing系统是基... 阅读全文

解读ASP.NET 5 & MVC6系列(10):Controller与Action

2015-05-25 09:11 by 汤姆大叔, 15420 阅读, 收藏, 编辑
摘要: 我们知道在MVC5和之前的版本,两个框架的生命周期是不一样的,在新版MVC6中,MVC Controller/Web API Controller已经合二为一了,本章我们主要讲解Controller和Action的定义与使用,以及在MVC框架中,如何根据路由查询相应的Controller和Actio... 阅读全文

解读ASP.NET 5 & MVC6系列(9):日志框架

2015-05-22 09:00 by 汤姆大叔, 18763 阅读, 收藏, 编辑
摘要: #框架介绍在之前的.NET中,微软还没有提供过像样的日志框架,目前能用的一些框架比如Log4Net、NLog、CommonLogging使用起来多多少少都有些费劲,和java的SLF4J根本无法相比。但在新版的ASP.NET5中,可谓是牛气冲天,微软提供的Microsoft.Framework.Lo... 阅读全文

解读ASP.NET 5 & MVC6系列(8):Session与Caching

2015-05-21 09:08 by 汤姆大叔, 24507 阅读, 收藏, 编辑
摘要: 在之前的版本中,Session存在于System.Web中,新版ASP.NET 5中由于不在依赖于System.Web.dll库了,所以相应的,Session也就成了ASP.NET 5中一个可配置的模块(middleware)了。#配置启用SessionASP.NET 5中的Session模块存在于... 阅读全文

解读ASP.NET 5 & MVC6系列(7):依赖注入

2015-05-20 09:10 by 汤姆大叔, 43126 阅读, 收藏, 编辑
摘要: 在前面的章节(Middleware章节)中,我们提到了依赖注入功能(Dependency Injection),ASP.NET 5正式将依赖注入进行了全功能的实现,以便开发人员能够开发更具弹性的组件程序,MVC6也利用了依赖注入的功能重新对Controller和View的服务注入功能进行了重新设计;... 阅读全文

解读ASP.NET 5 & MVC6系列(6):Middleware详解

2015-05-19 09:16 by 汤姆大叔, 16610 阅读, 收藏, 编辑
摘要: 在第1章项目结构分析中,我们提到`Startup.cs`作为整个程序的入口点,等同于传统的`Global.asax`文件,即:用于初始化系统级的信息(例如,MVC中的路由配置)。本章我们就来一一分析,在这里如何初始化这些系统级的信息。#新旧版本之间的Pipeline区别ASP.NET 5和之前版本的... 阅读全文

解读ASP.NET 5 & MVC6系列(5):Configuration配置信息管理

2015-05-18 07:44 by 汤姆大叔, 18963 阅读, 收藏, 编辑
摘要: 在前面的章节中,我们知道新版的MVC程序抛弃了原来的web.config文件机制,取而代替的是config.json,今天我们就来深入研究一下配置文件的相关内容。#基本用法新版的配置信息机制在Microsoft.Framework.ConfigurationModel命名空间下进行了重写,重写以后不... 阅读全文

解读ASP.NET 5 & MVC6系列(4):核心技术与环境配置

2015-05-17 19:21 by 汤姆大叔, 21176 阅读, 收藏, 编辑
摘要: asp.net 5是下一代的asp.net,该版本进行了全部重写以适用于跨平台,新新版本中,微软引入了如下工具与命令:DNVM、DNX、DNU。**DNVM**(.NET Version Manager):由于要实现跨平台的目录,微软提供了DNVM功能,DNVM是ASP.NET最底层的内容,他是一组... 阅读全文

解读ASP.NET 5 & MVC6系列(3):项目发布与部署

2015-05-15 09:14 by 汤姆大叔, 26398 阅读, 收藏, 编辑
摘要: 本章我们将讲解ASP.NET5项目发布部署相关的内容,示例项目以我们前一章创建的BookStore项目为例。#发布前的设置由于新版ASP.NET5支持多版本DNX运行环境的发布和部署,所以在部署之前,我们需要设定部署的目标DNX(即之前的KRE)。步骤:右键BookStore项目->属性->Appl... 阅读全文

解读ASP.NET 5 & MVC6系列(2):初识项目

2015-05-14 09:08 by 汤姆大叔, 36943 阅读, 收藏, 编辑
摘要: #初识项目打开VS2015,创建Web项目,选择ASP.NET Web Application,在弹出的窗口里选择ASP.NET 5 Website模板创建项目,图示如下:![](http://images.cnitblog.com/blog2015/349491/201505/1409071357... 阅读全文

解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介

2015-05-13 09:14 by 汤姆大叔, 53525 阅读, 收藏, 编辑
摘要: #ASP.NET 5简介ASP.NET 5是一个跨时代的改写,所有的功能和模块都进行了独立拆分,做到了彻底解耦。为了这些改写,微软也是蛮 拼的,几乎把.NET Framwrok全部改写了一遍,形成了一个.NET Core的东西。 在.NET Core里一切都是可配置的,包括Session、MVC等功... 阅读全文

解读ASP.NET 5 & MVC6系列

2015-05-13 07:37 by 汤姆大叔, 71655 阅读, 收藏, 编辑
摘要: 本系列的大部分内容来自于微软源码的阅读和网络,大部分测试代码都是基于VS RC版本进行测试的。[解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介][1][解读ASP.NET 5 & MVC6系列(2):初识项目][2][解读ASP.NET 5 & MVC6系列(3):项目发布与... 阅读全文

MVC之前的那点事儿系列(10):MVC为什么不再需要注册通配符(*.*)了?

2014-06-11 08:43 by 汤姆大叔, 6611 阅读, 收藏, 编辑
摘要: 文章内容很多教程里都提到了,在部署MVC程序的时候要配置通配符映射(或者是*.mvc)到aspnet_ISPAI.dll上,在.NET4.0之前确实应该这么多,但是.NET4.0之后已经不要再费事了,因为它默认就支持了。你可以会问,没有映射配置,请求这么可能会走到aspnet_ISPAI.dll上呢... 阅读全文

MVC之前的那点事儿系列(9):MVC如何在Pipeline中接管请求的?

2014-06-10 09:13 by 汤姆大叔, 4596 阅读, 收藏, 编辑
摘要: 文章内容上个章节我们讲到了,可以在HttpModules初始化之前动态添加Route的方式来自定义自己的HttpHandler,最终接管请求的,那MVC是这么实现的么?本章节我们就来分析一下相关的MVC源码来验证一下我们的这个问题。先创建一个MVC3的Web Application,选择默认的模板以... 阅读全文