ASP.NET 5简介

ASP.NET 5简介

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

2015-05-13 09:14 by 汤姆大叔, 3379 阅读, 39 评论, 收藏编辑

ASP.NET 5简介

ASP.NET 5是一个跨时代的改写,所有的功能和模块都进行了独立拆分,做到了彻底解耦。为了这些改写,微软也是蛮 拼的,几乎把.NET Framwrok全部改写了一遍,形成了一个.NET Core的东西。 在.NET Core里一切都是可配置的,包括Session、MVC等功能,而一切可配置的功能都是可以在Nuget上进行下载。

目前ASP.NET 5依旧兼容老的.NET Framwrok,但要在进行跨平台的部署,还是只能使用新改版的.NET Core CLR。

目前的ASP.NET 5包括6个子项目DependencyInjection、EntityFramework、Identity、KRuntime、MVC、SignalR Server,具体每个项目的介绍如下:

  1. DependencyInjection - 基本的依赖注入管理并拥有默认实现
  2. EntityFramework - 数据访问ORM框架
  3. Identity - 用户认证系统
  4. KRuntime - 核心运行时、项目系统,加载器
  5. MVC - MVC框架,整合了MVC、Web API、Web Pages功能
  6. SignalR-Server - 实时交互式服务

ASP.NET 5所有子项目的开源代码都可以在https://github.com/aspnet/上找到。

ASP.NET 版本号解释

5

新版的ASP.NET称为ASP.NET 5,是一个使用MVC架构开发web应用程序的框架,它还提供了开发RESTful服务的功能。另外,在下个版本里,该框架还可以使用SignalR构建实时应用程序。注意,ASP.NET 5不再包含Web Form开发框架了。

5也是.NET framework的新版本的版本号,称之为Core50,也叫.NET Core。.NET Core是.NET的重构版本,只保留原有框架中的最小化的功能集,对于其它的特性和功能,可以通过nuget下载以插件的形式运行。这就意味着,我们可以将其用于各种云环境进行独立部署。另外,微软还会提供一个跨平台的.NET Core,以便可以让ASP.NET程序部署到Mac和Unix/Liunx服务器上。另外.NET Core框架还可以和程序一起进行打包部署,从而可以实现在同一台服务器上使用不同版本的.NET Core

另外,还要注意,.NET Core不包括Web Form、Windows Form、WPF、WCF、Silverlight、System.Drawing、Datatable等功能。也就是说,如果你的程序需要使用System.Drawing进行缩略图制作的话,那就没办法使用了。类似的工具集只能通过Nuget包进行下载了。可以通过工具查找当前程序和.NET Core的兼容性工具集。

4.5.2

4.5.2是当前.NET framework全功能版的版本号。你可以使用该版本的.NET来运行ASP.NET 5,甚至是4.5.1版本,使用该版本,可以使用整个.NET体系的所有功能,只不过就不能跨平台了。

4.6

4.6是.NET framework全功能版下一版的版本号,也是.NET Core的下一个版本号。你可以将ASP.NET 5应用程序运行在.NET 4.6上,但运行在.NET 4.6上的ASP.NET程序可能不兼容.NET Core。下一个版本的ASP.NET Web Forms也是4.6,其将包括一些增强功能,如异步模型绑定、HTTP2、并开始使用Roselyn编译器。现有的ASP.NET程序(Web Forms、MVC5和之前的版本、Web Pages)不需要任何修改都可以运行在.NET 4.6上。

6

ASP.NET 5中的MVC、Web API、Web Pages三个框架会合并成一个框架,统称为MVC6。该合并工作将删除三个框架中重复的功能,比如MVC和Web API中的两种Controller只保留一种。但是传统MVC的功能都会保留,比如模型绑定。不过,据说Web Pages在RTM的时候不会发布,而是会在RTM之后的第一次更新中进行发布。

MVC6会引入一些新功能,最引人注目的功能就是Tag Helpers和View Components。Tag Helpers是Html Helpers的一种替换,而View Components则引入里类似Web Forms中的WebControl的概念。

比如,原来的视图模型定义是这样的:

@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
    @Html.AntiForgeryToken()
    <h4>Create a new account.</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
        </div>
    </div>

在新版MVC6中,我们可以使用Tag Helper进行定义:

<form asp-controller="Account" asp-action="Register" method="post" class="form-horizontal" role="form">
    <h4>Create a new account.</h4>
    <hr />
    <div asp-validation-summary="ValidationSummary.ModelOnly" class="text-danger"></div>
    <div class="form-group">
        <label asp-for="UserName" class="col-md-2 control-label"></label>
        <div class="col-md-10">
            <input asp-for="UserName" class="form-control" />
            <span asp-validation-for="UserName" class="text-danger"></span>
        </div>
    </div>

这样的话,就极大地方便了前端开发人员了,因为可以看到正常的HTML结构了。

View Components则解决了Child Action的问题,比如很多时候,我们都是通过Html.Action来实现菜单、标签功能。如下是一个View Component的示例:

    public class GreetingViewComponent : ViewComponent
    {
        public IViewComponentResult Invoke()
        {
            var greeting = "Good Morning!";
            if (DateTime.Now.Hour > 12)
            {
                greeting = "Good Afternoon!";
            }
            if (DateTime.Now.Hour > 17)
            {
                greeting = "Good Evening!";
            }
            return View("Index", greeting);
        }
    }

该视图组件(view component)也需要响应的视图文件,示例如下:

@model string
<h3>@Model</h3>

调用代码则需要使用权限的Component.Invoke方法,示例如下:

<div>
    @Component.Invoke("Greeting")
</div>

另外还有一个Component.InvokeAsync方法,可以用于异步调用。关于视图组件的详细用法,请参考视图组件一章。

7

7是Entity Framework的下一个版本,虽然不属于ASP.NET 5的一部分,但有很大关系。EF7将和ASP.NET 5的RTM版本一起发布,虽然可能延期,但至少在那个时候会有一个可以在.NET Core上运行的基本ORM包,其不包括延迟加载、继承映射、并且只适应于SQL Server。如果不在跨平台上运行MVC6程序的话,你可以在.NET 4.5.2或4.6中继续使用EF6,

ASP.NET5和MVC6中的10大新变化

在新版ASP.NET5和MVC6中,有很多变化,有些是彻底的变化,比如在最底层支持依赖注入技术,为了方便了解,我们这里列出了最重要的10大变化,以便进行学习,具体如下:

  1. ASP.NET 5现在已经是跨平台了,可以在Mac和Linux上运行。
  2. 不再有Web Forms框架了。
  3. 只支持C#,不在支持VB.NET了。(貌似最近又听说最终版VB.NET又要支持了)
  4. 新的Tag语法,@Html.LabelFor或Html.TextBoxFor替换成新语法<label asp-for="Name"><input asp-for="Name" />,以便进行模型绑定。
  5. 新增视图组件(View Component),可以将局部内容定义为一个单独的组件进行调用,和Web Forms里的WebControl非常像。
  6. 拥抱前端技术,内置了Nodejs、NPM、Grunt、Bower技术。
  7. 模型整合,将MVC和WebAPI整合成一个框架。
  8. 支持AngularJS,帮内置了AngularJS的module、controller、directive、以及factory模板。
  9. 支持依赖注入技术,拥有原生的DI框架,并且也支持第三方容器。
  10. 支持xUnit.net,并抛弃了Visual Studio Unit Testing框架。

IDE

VS2015:VS2015就不用说了,依然高大上,目前不仅支持Nodejs、Python开发,还支持Android和iOS开发。
Visual Studio Code:为了能够在Mac或Linux操作系统上也能编写C#程序,微软又发布了一个 Visual Studio Code轻量级编辑器可以使用上述操作系统,依然是高大上啊,新功能和特性瞬间秒杀Sublime Text和Brackets,详细地址请访问:https://code.visualstudio.com/ 。

参考:http://stephenwalther.com/archive/2015/02/24/top-10-changes-in-asp-net-5-and-mvc-6

同步与推荐

本文已同步至目录索引:解读ASP.NET 5 & MVC6系列

时间: 2024-12-26 07:37:16

ASP.NET 5简介的相关文章

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

ASP.NET 5简介 ASP.NET 5是一个跨时代的改写,所有的功能和模块都进行了独立拆分,做到了彻底解耦.为了这些改写,微软也是蛮 拼的,几乎把.NET Framwrok全部改写了一遍,形成了一个.NET Core的东西. 在.NET Core里一切都是可配置的,包括Session.MVC等功能,而一切可配置的功能都是可以在Nuget上进行下载. 目前ASP.NET 5依旧兼容老的.NET Framwrok,但要在进行跨平台的部署,还是只能使用新改版的.NET Core CLR. 目前的A

ASP.NET 5 简介 MVC

---恢复内容开始--- ASP新手的我,第一次来到博客园,想要在这个地方记录我的编程历程,希望自学的路上,可以走的更远. 如果有其它人,看到此文章,希望可以多多指教. ASP.NET简介 视频教学地址 https://mva.microsoft.com/zh-cn/training-courses/aspnet-5--13786?l=PvSZtxoXB_5101937557 Aspnet核心源代码 http://www.github.com/aspnet/home http://www.git

Asp.net mvc 框架揭秘之Asp.net +Mvc简介

1.什么是MVC? 介绍MVC之前说一下自治视图(Autonomous View):将UI界面的呈现.交互动作的捕捉响应.逻辑处理流程.数据存储等糅合在一起(如WebForm),我们将这种设计模式成为自治视图 自治视图的弊端: 视图和逻辑糅合在一起,不利于逻辑的复用 不利于对UI组件的调试 MVC是基于关注点分离的方针的架构模式,它将一个人机交互用户的功能分为Model.View.Controller三部分,它们各自具有自己的职责: Model:是对用于状态和业务功能的封装,是同时包含行为和数据

(一)ASP.NET MVC简介

(1)什么是ASP.NET MVC? HttpHandler 是 ASP.NET 的底层机制,如果直接使用 HttpHandler 进行开发难度比较大,工作量大.因此提供了 ASP.NET MVC, ASP.NET WebForm 等高级封装的框架,简化开发,他们的底层仍然是实现了 HttpHandler, HttpRequest 等这些东西.比如 ASP.NET MVC 的核心仍然是实现了 IHttpHandler 接口的 MVCHandler. (2)ASP.NET WebForm 和 AS

ASP.NET MVC 简介

1. ASP.NET MVC 是什么? ASP.NET MVC是微软官方提供的以MVC模式为基础的ASP.NET Web应用程序(Web Application)框架,它由Castle的MonoRail而来,日前最新版本是ASP.NET MVC 4.0.是将一个Web应用分解为:Model.View和Controller.ASP.NET MVC框架提供了一个可以代替ASP.NET WebForm的基于MVC设计模式的应用. MVC的优点: (1).通过把项目分成Model.View和Contro

第一章ASP.NET SignalR简介

1.1概述: ASP.NET SignalR是微软新开发的类库,为的是帮助ASP.NET开发人员很方便地开发实时网络功能. SignalR允许服务器端和客户端之间进行双向通信.服务器端现在可以连接到客户端并且把内容瞬间推送出去,而不是一个客户端不断请求服务器端从而才能获取新数据(不是通过轮询去拉服务器端数据,而是服务器端主动推送数据到客户端).SignalR支持Web Sockets套接字,并且当使用旧版浏览器的时候会自动使用相关兼容的技术.SignalR包括它的API接口,用于连接管理的解耦(

ASP.NET MVC简介

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. MVC 是三种 ASP.NET 编程模式中的一种. Model(模型层)表示应用程序核心(比如数据库记录列表)

ASP.NET Razor简介

Razor 不是一种编程语言.它是服务器端的标记语言. 什么是 Razor? Razor 是一种标记语法,可以让您将基于服务器的代码(Visual Basic 和 C#)嵌入到网页中. 基于服务器的代码可以在网页传送给浏览器时,创建动态 Web 内容.当一个网页被请求时,服务器在返回页面给浏览器之前先执行页面中的基于服务器的代码.通过服务器的运行,代码能执行复杂的任务,比如进入数据库. Razor 是基于 ASP.NET 的,是为创建 Web 应用程序而设计的.它具有传统 ASP.NET 的功能

[Asp.net]缓存简介

写在前面 针对一些经常访问而很少改变的数据,使用缓存,可以提高性能.缓存是一种用空间换取时间的技术,说的直白点就是,第一次访问从数据库中读取数据,然后将这些数据存在一个地方,比如内存,硬盘中,再次访问的时候,不必再从数据库中读取,而是从内存或者硬盘中读取数据,可以提高访问速度. 缓存 缓存是一种利用空间换取时间的技术,通俗点也就是将得到的数据放在内存中或者硬盘中,在这段时间内服务器不去读取数据库,或真实的数据源,而是读取你存在内存中的数据. 作用:缓存可以有效的缓解数据库的压力. 一个例子 还是