ASP.NET Core 和 Blazor 的一系列新更新,.NET Core是.NET Foundation的一部分

.NET Core 3.1 中还剔除了,2019 中创建针对 .NET,下面的 ASP.NET Core 模板现在只出现在,ASP.NET Core 和 Blazor 的一系列新更新,.NET Core 3.1 中的更改​​主要集中在 Blazor 和 Windows Desktop,.NET Core 3.1 发布了,.NET Core是.NET Foundation的一部分,Foundation是一个围绕.NET开发框架,.NET Core RC2 的延迟发布,.NET Core RC2 版本今天已经发布

图片 7

好信息是,微软提供了三个报表来验证正在发生的浮动,以便客商作出相应的调解。

图片 1图片 2

.NET Core 3.1 发表了,那是对八个多月前公布的 .NET Core 3.0
的一小部分修复和宏观,个中最重视的是 .NET Core 3.1
是一个漫漫辅助(LTS)版本,並且官方将会支撑四年。

1.2.2. NET Core 发展进程

** RC1 **

2015年111月 ASP.NET 5 改名 ASP.NET Core 1.0 ,所有名字改成如下图:

图片 3

1.0 RC2

.NET Core横跨各平台:,也等于说全数基于.NET Core
营造的选择模型(例如:ASP.NET Core, Console Apps 和 class
libraries)不仅能运转在Windows系统之上,同时也能够运作在OS X 和
Linux系统之上。

1.0

微软团队提供的下载中(
.NET Core Runtime, .NET Core SDK, .NET Core VS Tooling (富含 Web
开荒工具卡塔尔, .NET Core Windows Server Hosting, 以至改良的 NuGet ASP.NET
Core 1.0 和 Entity Framework Core 1.0 包。微软还发布了用来创立 .NET Core
项目标 Visual Studio 和 Visual Studio Code 扩充,以至 .NET
Documentation(

1.1

.NET Core 1.1 公布,这几个本子补助保藏期3个月,后续有转移。
11/16 .NET Core 1.1 RTM 版发布。对应发表 ASP.NET Core 1.1 、EF Core
1.1。Visual Studio for Mac 也一起公布。能够因而Visual Studio 二零一六,
Visual Studio 2017 RC, Visual Studio Code and Visual Studio for the Mac
创造 .NET Core 1.1 的运用。

2.0

受Visual Studio 2017 15.3 版本支持,并推举了新的 Razor Pages
顾客分界面设计轨范。对于ASP.NET
Core来讲,这么些本子主要简化了布置,升高了预加载页面质量.大家更爱护配套的.NET
Core 2.0平台带给的浮动:

  • 跌落入门及学习的拦Land Rover,.NET 斯坦dard
    2.0经过规范分享API,能够轻巧地跨.NET Framework,.NET
    Core和Xamarin分享代码。
  • .NET Framework 4.6.1扶持.NET Standard 2.0,.NET Standard 2.0
    加多了大多.NET Framework 4.6.1 协助的API,以致.NET Standard 2.0
    本人特有的API
  • .NET 斯坦dard 2.0 增加了 14,994 个.NET Framework 4.6.1曾经支撑的API
  • .NET Standard 2.0 独有 43 个 .NET Framework 4.6.1不协理的API
  • .NET Standard 2.0 将是.NET 斯坦dard 1.6的超集。 换句话说,.NET
    Standard 2.0和1.x不会产生突破性的扭转。
  • .NET Framework宽容格局: 允许.NET Standard项目援引.NET
    Framework库,利用.NET的历史遗产,便于开拓平台从.NET
    Framework迁移到.NET Core.

末尾得以掌握为.NET Core 2.0 将是相等于 .NET Framework
4.6.1,同一时候既有的.NET Framework代码能够很自在的移植到.NET Core平台

12. NuGet Package References

.NET Core is a platform of packages. You can see how these packages are
referenced in a set of simple .NET Core samples that we have published.
There are two metapackages that you will typically reference in your
project file, one or the other. One is for apps and libraries that will
only run on .NET Core and the other for libraries that you intend to run
on all .NET platforms.

.NET Core samples:

.NET Core 是阳台程序包,什么意思?解释在底下那句话,日常 .NET Core
应用程序中会富含两系列型的程序包,三个是独自在 .NET Core
上跑的,另叁个是你想跑在具备的 .NET
平台,那三种只可以在应用程序中配置一种,这段描述看得自己有个别懵逼。

Most of the time, you will reference the Microsoft.NETCore.App package.
This package represents the same set of libraries that are shipped with
the various .NET Core installers. The .NET Core tools understand this
reference and can use the locally installed copy of .NET Core instead of
relying on the versions from NuGet.

Microsoft.NETCore.App次第包,日常在 .NET Core
应用程序中都亟需展开援引的,.NET Core
会安装非常多不如的本子,它的功力便是,在应用程序中钦定使用某一种 .NET Core
版本。

  • The .NET Standard Library is a new concept that represents the APIs
    available in all .NET implementations, at least those that support
    it. The .NET Framework, .NET Core and Mono/Xamarin will or already
    do support the .NET Standard Library. The .NET Standard Library can
    be thought of as the next version of Portable Class Libraries, but
    the set of APIs available and the way you create the libraries are
    much different.
  • The set of APIs exposed by the .NET Standard Library is currently
    smaller than we intend. In the next few releases, we intend to
    expand this set of libraries considerably to provide much more
    compatibility with the .NET Framework. We’ll publish more on this
    plan soon.

.NET Standard Library
是八个新的定义,它的特色正是越来越小,而且规范更是统一,前面 .NET Framework
都会逐步使用这种职业开展发表。

ASP.NET Core 1.0 RC2 中project.json亲自过问配置:

{  "userSecretsId": "aspnet-WebApplication1-42c12a0f-14cf-4e10-b6ec-712743a0386b",  "dependencies": {    "Microsoft.NETCore.App": {      "version": "1.0.0-rc2-3002702",      "type": "platform"    },    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0-rc2-final",    "Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final",    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0-rc2-final",    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-final",    "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",    "Microsoft.AspNetCore.Razor.Tools": {      "version": "1.0.0-preview1-final",      "type": "build"    },    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",    "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",    "Microsoft.EntityFrameworkCore.Tools": {      "version": "1.0.0-preview1-final",      "type": "build"    },    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc2-final",    "Microsoft.Extensions.Logging": "1.0.0-rc2-final",    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc2-final",    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {      "version": "1.0.0-preview1-final",      "type": "build"    },    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {      "version": "1.0.0-preview1-final",      "type": "build"    }  },  "tools": {    "Microsoft.AspNetCore.Razor.Tools": {      "version": "1.0.0-preview1-final",      "imports": "portable-net45+win8+dnxcore50"    },    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {      "version": "1.0.0-preview1-final",      "imports": "portable-net45+win8+dnxcore50"    },    "Microsoft.EntityFrameworkCore.Tools": {      "version": "1.0.0-preview1-final",      "imports": [        "portable-net45+win8+dnxcore50",        "portable-net45+win8"      ]    },    "Microsoft.Extensions.SecretManager.Tools": {      "version": "1.0.0-preview1-final",      "imports": "portable-net45+win8+dnxcore50"    },    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {      "version": "1.0.0-preview1-final",      "imports": [        "portable-net45+win8+dnxcore50",        "portable-net45+win8"      ]    }  },  "frameworks": {    "netcoreapp1.0": {      "imports": [        "dotnet5.6",        "dnxcore50",        "portable-net45+win8"      ]    }  },  "buildOptions": {    "emitEntryPoint": true,    "preserveCompilationContext": true  },  "runtimeOptions": {    "gcServer": true  },  "publishOptions": {    "include": [      "wwwroot",      "Views",      "appsettings.json",      "web.config"    ]  },  "scripts": {    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]  }}

聊起底,微软引进新版了 Blazor WebAssembly,扩充了对 .NET Standard 2.1 和
iOS 13 的支撑:

calls-deadline-exceeded

C++/CLI

在 Visual Studio 2019 16.4 中追加了一个新功能,能够创制可与 .NET Core
3.0+ 一同使用的 C++/CLI 组件。

该零器件增添了多少个能够选取的模版:

  • CLR Class Library (.NET Core)
  • CLR Empty Project (.NET Core)

C++/CLI 仅帮助 Windows 平台,开采者供给设置“Desktop development with
C++”工作负荷和“ C++/CLI support”组件,技艺利用 C++/CLI。

同时,Visual Studio 2019
16.4 也宣布了,个中就包蕴了 .NET Core 3.1
更新,那是同步利用 .NET Core 3.1 与 Visual Studio 所必不可缺的更新。对于
Visual Studio 2019 顾客,官方提出间接更新到 16.4,实际不是单身下载 .NET
Core 3.1。

端详查看宣布文告:

Announcing .NET Core 3.1

(文/开源中国卡塔尔国    

1.4. 总结

.NET
Core平台自二〇一四年出生于今迈入异常的快,那不稀奇.在它出生前微软就储存的多年.NET
Framework经历.从以上咱们能观望微软的政策:

  • 首先步最重视的是落到实处跨平台
  • 其次步是使其抱有并超越当前.NET Framework的力量
  • 其三步是实现归拢各平台开拓和平运动行境遇,包含各端(服务器,手持设备,IOT等等卡塔尔

当前看率先步完毕度非常高,第二步成功了十分之七.第三步也直接在做.大家能从微软的前进门路中看看叁个美好的前途,即用.NET的语言给各个器具写叁遍程序就足以应付产品供给,那是多方面双赢的框框。大家也老实的希望.NET
Core有两个进一层光明的前程。


7. Support for RC1 and RC2 projects

图片 4

怎么从 RC1 升级到 RC2?在创立 ASP.NET Core
应用程序的时候,会在缓慢解决方案的 Solution Items
目录下,生成三个global.json文本,配置如下:

{  "projects": [ "src", "test" ],  "sdk": {    "version": "1.0.0-rc1-final"  }}

一经必要提高到 RC2,大家须要将 version
版本改革为1.0.0-preview1-002702,假诺不对 sdk
举办布置来讲,默许将会利用 RC2 版本的 NET CLI tools。

(文/cnBeta)    

@page
@attribute [Microsoft.AspNetCore.Authorization.Authorize]

<h1>Authorized users only!<h1>

<p>Hello @User.Identity.Name. You are authorized!</p>

.NET Core 3.1 中的修改​​主要汇聚在 Blazor 和 Windows Desktop,那是 .NET
Core 3.0 中的七个新增添性情,包罗对 C++/CLI 的支撑,那早已然是开辟 Windows 
的正规必要。

1.3. NET Core 或 .NET Framework ?

4. What does Preview mean?

Remember that .NET Core has two main parts:

  • The Runtime/Libraries – This is the CLR, libraries, compilers, etc.
  • The Tooling – This is all the support in the .NET Core command line
    tools, Visual Studio and Visual Studio Code that enable you to work
    with .NET Core projects.

上边这段无需翻译了,关于 .NET 跨平台的数不清定义,我们非常轻松搞混淆,比方.NET Core, .NET Framework 等等,.NET Core 富含CoreCL奥迪Q7,、CoreFx、编写翻译器、CLI、以至任何协助的工具,这里的工具并不是直接指的是
Visual Studio 或 Visual Studio Code,而是他们能让 .NET Core
应用程序运维的组件或工具。

We’re splitting the .NET Core “release train” so that those of you who
are waiting can go live on .NET Core 1.0 RC2 with confidence, while we
continue to deliver on our plans for the tooling:

  • The .NET Core 1.0 RC2 runtime is a true Release Candidate. It’s
    solid, stable, and it won’t change for RTM (except if something
    critical happens) and we feel good about it. It will have a
    “go-live” license, meaning you can get official support from
    Microsoft.
  • The tooling that supports .NET Core and ASP.NET Core, including the
    new command line tools and bits that plug into Visual Studio &
    Visual Studio Code, aren’t there yet. It’s going to change before it
    stabilizes. We’re going to call this tooling release Preview 1.

地点这段话包罗的剧情比很多,以前说了,.NET Core 其实是带有 Tooling
的,但这次 .NET Core RC2 的昭示,Tooling 对应的版本是 preview
1,所以就如标题那样:.NET Core RC2 and .NET Core SDK Preview 1,微软是把
.NET Core 和 Tooling 的版本发布是抽离的,即使版本不平等,但骨子里都以 .NET
Core,那或多或少便于混淆,要求确定下,总认为微软的这一次公布是一定要发表的,就像他用了一个splitting 词相像:细分发表,多个事物,三个版本

.NET Core 1.0 RC2
公布出去后,基本上就不会再张开改了,所以,大家今日就足以放心的在类型中使用它了,早先的
RC1 确实是太大的坑,在存活的 .NET Core 1.0 RC1 项目中,晋级到 .NET Core
1.0 RC2 版本,那个专门的职业量作者想是蛮大的。

上面那句话,再一次说了 Tooling 包蕴的事物,必要在乎的是,CLI 归属 .NET
Core,精确的来讲,CLI 归于 .NET Core 中的 Tooling,.NET Core 1.0 RC2
基本上不开展改了,具体指的是 CoreCLEnclave,、CoreFx、编写翻译器,但 Tooling
照旧会进展退换的,所以,CLI 只怕会开展修正,以后的本子命名字为 Tooling
Preview 1。

就算顾客仍需安装“C++ 桌面安插”和“C++ / CLI
帮衬”等构件技艺干活,以至七个新的模版 —— CLI 类库(.NET Core)和 CLLX570空项目(.NET Core)。

messages-sent

Windows Forms Controls Removal

此版本移除了以下 Windows Forms 控件:

  • DataGrid
  • ToolBar
  • ContextMenu
  • Menu
  • MainMenu
  • MenuItem

早在 二零零五 年,那么些控件就被 .NET Framework 2.0
中越来越强有力的控件所代替,暗中同意意况下 Visual Studio Designer
工具箱中都从没提供这么些控件,未来法定决定删除那一个控件,而只关怀新控件。

提出替代方案如下:

图片 5

微软感觉随着更加的康健 Windows Forms
设计器项目,那几个控件与创设今世采取不包容,何况恒久不该成为 Windows
Forms .NET Core 版本的一部分。那样主要的生成,目的是三翻五次校勘 Windows
Forms,以促成更加高的 DPI、可访谈性和可相信性,况且有助于中期更新的打开。

1.2. NET Core 后续发展路径图

1. We will continue to make changes and stabilize the tooling until it RTMs with VS “15”.

  • .NET Core and ASP.NET Core 1.0 RC2, Tooling Preview 1
  • .NET Core and ASP.NET Core 1.0 RTM, Tooling Preview 2

Tooling 是何等?这么些前面说,当 ASP.NET Core 1.0
正式版发表的时候,Tooling 的版本大约是 Preview 2,标题中的表达是在
ASP.NET Core 1.0 正式版发布之后,Tooling 还应该有局地改造,直到 Visual
Studio “15” 的 RTM 版本公布,今后 Visual Studio “15” 的本子是
Preview,相关介绍:Visual Studio “15” Preview Now Available,对于 Visual
Studio “15”,你可以把它看成 ASP.NET Core 1.0 是 ASP.NET
的崭新完成平等,与 Visual Studio “15” 并行的本子是 Visual Studio 2016Update 2,那三个 Visual Studio
完全差异,从您Computer上得以并且安装那多少个版本就足以看来,所以,Visual
Studio “15” 是 Tooling 的注重,也是微软下一步的根本。

除此以外,供给注意发表时间,.NET Core 和 ASP.NET Core 1.0
正式版最迟发布时间为二零一六年1八月份(应该会在微软的 dotnetConf
会议上揭橥),但并不包涵 Tooling 的科班版发布,当 .NET Core 和 ASP.NET
Core 1.0 正式稳固以往,下一步就是 Visual Studio “15”,蕴涵 Tooling
中的其余工具。

图片 6

详细情形请见发布表明:

1.1.3. 灵活布置

.NET
Core的这一功效可协助开拓人士灵活配置:作为应用程序(FDD-框架信任安插)的一片段,或当做全新的安装
。FDD允许你使用相当小的构造包最小化内部存储器和磁盘空间的使用,而SCD则足以完全控制项目构造(包涵.NET
Core库和运作时)。

图片 7

(题图 via
Neowin)

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder
                .ConfigureKestrel(o =>
                {
                    o.ListenUnixSocket("/var/listen.sock");
                })
                .UseStartup<Startup>();
        });

1.1. Net Core 2.0 特性

连带博文:

图片 8

@ref 扶持字段的自动生成

1.1.4. 模块化布局

此意义可扶持开辟职员依照项指标需要仅使用必须的软件包。模块化结构有援救升高其跨平台宽容性。由此,开拓职员今后得以设计轻易,高效和刚劲的应用程序。与在此早前的版本对照,新本子相对更轻,更加小,那推动加快开荒进程。对文件系统进行了极大转移,将推动搭建强壮的付出遭受。

闲话休说,在几天前晚上的时候,微软官方博客发布了几篇作品,小编以为除了蕴涵.NET Core RC2
的颁发消息以外,小说内容还是十二分有价值的,从有个别文字和某段话中,大家能够收获部分轻便被忽视的东西,所以,这几篇博文笔者又再一次认真读了下,希望把有个别有价值之处,分享给我们。

● 支持 .NET Standard 2.1;

● 公布时扶植静态资金财产;

● 支持 iOS 13;

● 修正连接器报错体验;

● Visual Studio 的 Attach to Process 调试。

1.3.1. 概述

.NET Framework支持Windows和Web应用程序。后天,您能够动用Windows
Forms,WPF和UWP在.NET Framework中创设Windows应用程序。ASP.NET
MVC用于在.NET Framework中创设Web应用程序。

.NET
Core是为有着操作系统(包罗Windows,Mac和Linux)营造应用程序的风行开源和跨平台框​​架。.NET
Core帮忙UWP和ASP.NET Core,UWP用于创设Windows
10对象Windows和活动应用程序,ASP.NET
Core用于构建基于浏览器的Web应用程序。通过下图您能见到.NET
Core和以前的.NET Framework的根本职能界别:

图片 9

同一的ASP.NET Core 与 古板的 ASP.NET 也可能有很大分别,如下图所示:

图片 10

11. .NET Core App Types

We’ve talked to many customers about how they want to deploy apps. We
heard two main models:

  • Deploy smaller apps that have a dependency on a centrally installed
    .NET Core version, perhaps used by multiple apps. We call this model
    “portable”.
  • Deploy larger self-contained apps that have no .NET Core
    dependencies. We call this model “self-contained”.

在 .NET Core RC1
版本的时候,应用程序文件常常都以和平运动行时一块打包的,放在宣布文件的packages目录下,即便那样有许多益处,譬如运营时和底工类库是单独的,何况在各类应用程序中都以与世隔膜的,隔开分离的补益正是能够独自开展保管,而且现身难点只在本应用程序中,但这么的情势就能够有个难点,应用程序的公布文件会非常大。

上边的布署形式,称之为“self-contained”,在 .NET Core RC2
版本中,除了这种布局情势,还提供了一种叫“portable”的方法,这种就我们此前安顿ASP.NET
应用程序同样了,只含有应用程序文件,运营时和功底类库都坐落于统一的地点,以供区别的应用程序使用,二种办法有好有坏,自身能够衡量使用。

不出所料的是,.NET Core 3.1 的更改日志一点都不大。独一新扩张的作用,即是永葆在
Visual Studio 2019 中创设针对 .NET
Core 的 C++ / CLI 组件。

对 @attribute 的 Razor Pages 支持

1.1.5. 命令行工具

与以前的本子对照,新本子更轻,越来越小,那推进增加花销功用。为了搭建强壮的开拓条件,文件系统作了十分的大变迁。能够在名称为DNVM或Dot
Net版本微处理机的命令行访谈每种也许的成品方案。该命令行能够低价地修改和配置.NET运转时。那是.NET实施际遇的补充。命令行的另叁个好处正是它与平台无关,开拓人员无需二回又叁随地上学工具链。一旦熟识其使用,就能够在任何此外扶持的平台或分界面上应用同一的章程。

.NET Core RC2 版本前几天早就发表,但从 RC1 到 RC2
发表间距了大概四个月的年月,那在微软的发表中依然少之甚少见的,二〇一五年6月份,微软发表了
.NET Core RC2 的推移发布,就算延迟公布,但以往 .NET
社区中没什么差异的声响:希望微软精雕细琢,把 .NET Core
专注做好,并不是急着发表出去,所以到方今是7个月的光阴,微软的确在真的成本精力的把
RC2 版本做好,手动点个!

● .NET Core 3.1
下载地址 |
改变日志

● ASP .NET
Core(GitHub)传送门

calls-unimplemented

1.2.1. 已知首要版本的文告时间表

版本  发布时间
1.0 RC1 2016年2月15日
1.0 RC2 2016年5月16日
1.0 2016年6月27日
1.1 2016年11月16日
2.0 2017年8月14日
2.1 2017第四季度
  • Beta6: 2015年7月27日
  • Beta7: 2015年9月2日
  • Beta8: 2015年10月15日
  • RC1: 2015年11月
  • RC2 (Tools Preview 1): 2016年5月17日
  • 1.0.0 (Tools Preview 2): 最迟2016年6月份

.NET Core 3.1 中还删除了 Windows
应用程序的某些窗体控件(已被功效更强硬的后继者取代非常长的一段时间),那只怕会破坏顾客的一点项目。

Visual Studio 中的 Service Reference 工具

1.1.2. 跨平台

而外使其改为开放源码外,微软一度开足马力地使其跨平台。开采人士将能够在Mac,Linux或Windows系统上支出应用程序。事实上,它还引进了非常为Mac和Linux客户提供的新的代码编辑器“Visual
Studio Code”。

缘何 .NET Core RC1 到 RC2
揭橥耗费时间如此长日子?以前的资源音信和文章已经介绍比比较多了,就相当的少说了,更正实乃大,其实您也能够从某种意义上作为是七个全新完成。

● 对 Razor 组件的有的类扶助;

● 将参数字传送递给一流组件;

● 新的机件标签帮手;

● 阻止 Blazor 应用中事件的私下认可操作;

● 截至 Blazor 应用中的事件传播;

● Blazor 应用程序开辟时期的报错详细的情况;

● 扶植 HttpSysServer 中的分享队列;

● 萨姆eSite Cookie 的首要改观。

图片 11

下月八日,微软发表.NET Core 2.0 正式版,它的透露意味着.NET
Core平台越发成熟,也预示其更加美好的前程。本文将剖析.NET Core
的表征以至现在向上大势,为开荒人士选拔在何种平台支付顺序提供参考。

13. .NET Core RC2 and .NET Core SDK Preview 1 Releases

发布包涵:

  • .NET Core RC2
  • ASP.NET Core RC2
  • .NET Core RC2 SDK Preview 1

下载安装地址: ,假诺设置了
Visual Studio 2014 Update 2,只须要设置三个东西:

  • Visual Studio official MSI Installer
  • NuGet Manager extension for Visual Studio