图片 14

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

● 对 Razor 组件的部分类支持;

● 将参数传递给顶级组件;

● 新的组件标签助手;

● 阻止 Blazor 应用中事件的默认操作;

● 停止 Blazor 应用中的事件传播;

● Blazor 应用程序开发期间的报错详情;

● 支持 HttpSysServer 中的共享队列;

● SameSite Cookie 的重大更改。

图片 1

.NET Core 3.1 发布了,这是对两个多月前发布的 .NET Core 3.0
的一小部分修复和完善,其中最重要的是 .NET Core 3.1
是一个长期支持(LTS)版本,并且官方将会支持三年。

1.1.1. NET Core平台是开源的

.NET Core是.NET Foundation的一部分,如下图:

图片 2

.NET
Foundation是一个围绕.NET开发框架,并不断创新的社区。微软的另一大进步就是使ASP.NET
Core开源。由于它是一个开源平台,您可以更好地控制使用和修改它,并且其代码的透明度可以为您自己的基于.NET
Core的项目提供信息和灵感。此外,您和您的伙伴可以更快地更正错误和规避安全风险,使.NET
Core更安全。.NET
Core更稳定,因为该平台工具的代码将始终保持公开。整个框架源和包可以在GitHub站点上找到。

2. How We Got Here

  • The ASP.NET team started two and a half years ago, building a new
    version of ASP.NET that was modular, cross platform, and
    high-performance. This new version of ASP.NET was built on a new
    .NET Execution Environment that was optimized for modern
    cloud-focused workloads (websites, microservices, etc.). We shipped
    an RC1 of those bits in November.
  • After shipping ASP.NET Core 1.0 RC1, it was very important to
    broaden .NET Core to also support building native console
    applications. So we started the process of reworking the tool chain
    so it could be used to build .NET console, class libraries and
    server applications. This process has proved to be harder than we
    anticipated and led to us removing dates for RC2/RTM from our
    schedule in February.

上面是两段话,我都贴出来了,我个人觉得很有价值,你可以从中揣摩微软的心思和了解
ASP.NET 跨平台的历史。

首先,第一段话的意思:ASP.NET 团队在两年半之前就开始开发 ASP.NET
的跨平台实现了,那时候被叫做 ASP.NET vNext,然后对应一个专门的运行时
XRE,然后被改名为 KRE,后来在 ASP.NET 5 RC1 的时候,又被改名为
DNX,需要注意的时候,DNX 运行时只适用于当时的 ASP.NET 5
RC1,并不适用于其它的微软产品,所以,我们在当时的 Visual Studio 2015
中,看到创建 ASP.NET 5 的模版是独立出来的,叫 ASP.NET 5 Web Application
和 ASP.NET 5 Class Library,ASP.NET 5 RC1 的发布时间时2015年11月份。

上面都是前提介绍,重点在于第二段话,在 ASP.NET 5 RC1
发布之后,微软意识到 .NET Core 支持构建 Native Console Application
是非常重要(注意是 .NET Core,并不是 DNX),那时候的 .NET Core 是独立于
ASP.NET 5 RC1 的,也就是 ASP.NET 5 RC1 的运行时并不是使用的 .NET
Core,后来微软开始重写工具链,以支持构建 .NET console、Class Libraries
和 Server Applications,也就是把 .NET Core 和 DNX
统一起来,准确来说,就是把 DNX 归到 .NET Core
中,并且对应的相应工具也要进行调整,比如那时候 ASP.NET 5 RC1
对应的工具是 dnvm 和 dnpm,现在来看,都归到统一的 CLI 中了,并且 ASP.NET
5 的名称也不太准确,会让人误以为是 ASP.NET 4.6 的进阶版,但其实是
ASP.NET 的全新实现,所以,这个名称需要改,最后确定改为 ASP.NET Core。

原本 ASP.NET Core RC2/RTM
的发布是在2016年的2月份,但微软在开发上面任务的时候,发现工作难度和工作量实在太大,所以就推迟了
ASP.NET Core RC2/RTM
的发布,每件东西的改变,都有着背后的历史,事出总有因,了解完这些背后的东西,我们就会更加体谅微软了,并且,改变是进步的体现,需要点个赞👍!

另外,RC1 升级到 RC2 相关文章:

  • Migrating from DNX to .NET Core
  • Migrating from ASP.NET 5 RC1 to ASP.NET Core 1.0 RC2
  • Migrating your Entity Framework Code from RC1 to RC2

图片 3

图片 4图片 5

Windows Forms Controls Removal

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

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

早在 2005 年,这些控件就被 .NET Framework 2.0
中更强大的控件所取代,默认情况下 Visual Studio Designer
工具箱中都没有提供这些控件,现在官方决定删除这些控件,而只关注新控件。

建议替代方案如下:

图片 6

微软认为随着进一步完善 Windows Forms
设计器项目,这些控件与创建现代应用不匹配,并且永远不应该成为 Windows
Forms .NET Core 版本的一部分。这样重大的变化,目标是继续改进 Windows
Forms,以实现更高的 DPI、可访问性和可靠性,并且利于后期更新的进行。

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 的变更日志很小。唯一新增的功能,就是支持在
Visual Studio 2019 中创建针对 .NET
Core 的 C++ / CLI 组件。

messages-sent

.NET Core 3.1 中的更改​​主要集中在 Blazor 和 Windows Desktop,这是 .NET
Core 3.0 中的两个新增特性,包括对 C++/CLI 的支持,这已经是开发 Windows 
的常规需求。

1.1.4. 模块化架构

此功能可帮助开发人员根据项目的要求仅使用必需的软件包。模块化架构有助于升级其跨平台兼容性。因此,开发人员现在可以设计轻便,高效和强大的应用程序。与以前的版本相比,新版本相对更轻,更小,这有助于加快开发过程。对文件系统进行了较大改变,将有助于搭建健壮的开发环境。

  • .NET Core RC2 – Improvements, Schedule, and Roadmap(2016年5月6日)
  • Announcing ASP.NET Core RC2(2016年5月17日)
  • Announcing Updated Web Development Tools for ASP.NET Core
    RC2(2016年5月17日)
  • Announcing .NET Core RC2 and .NET Core SDK Preview
    1(2016年5月17日)
  • Announcing Entity Framework Core RC2(2016年5月17日)

图片 7

项目模板更新

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。

详情查看发布公告:

https://devblogs.microsoft.com/dotnet/announcing-net-core-3-1

(文/开源中国)    

1.1.6. 云支持

ASP.NET Core
是率先开发出保持云集成的功能。因为它支持基于云的配置,所以云端初始化设置允许开发人员将其应用程序方便发布到云端。

8. .NET Core Templates

图片 8

Visual Studio 2015 Update 2 中 .NET Core 项目模版如上图,.NET Core 和
.NET Framework 的 Web Application
依旧是分隔的,下面还有兼容版本的模版,“a .NET Core compatible class
library that compiles to a NuGet package.”这句话不是太懂。

ASP.NET Core Web Application(.NET Framework) 模版的意思是,Windows 下的
.NET Core Web Application 项目,也就是只适用于 Windows 平台。

左边 .NET Core 包含三个模版:

  • Class Library(.NET Core)
  • Console Application(.NET Core)
  • ASP.NET Core Web Application(.NET Core)

(文/cnBeta)    

在 Visual Studio 中添加了支持,使管理对其他协议缓冲区文档和 OpenAPI
文档的引用变得更容易。

    1. NET Core 2.0 是您的最好选择吗?
    • 1.1. Net Core 2.0 特性
      • 1.1.1. NET Core平台是开源的
      • 1.1.2. 跨平台
      • 1.1.3. 灵活部署
      • 1.1.4. 模块化架构
      • 1.1.5. 命令行工具
      • 1.1.6. 云支持
    • 1.2. NET Core 后续发展路线图
      • 1.2.1. 已知主要版本的发布时间表
      • 1.2.2. NET Core 发展历程
    • 1.3. NET Core 或 .NET Framework ?
      • 1.3.1. 概述
      • 1.3.2. 选择.NET Core 还是.NET Framework
    • 1.4. 总结

言归正传,在昨天凌晨的时候,微软官方博客发布了几篇文章,我觉得除了包含
.NET Core RC2
的发布消息以外,文章内容还是非常有价值的,从某些文字和某段话中,我们可以得到一些容易被忽略的东西,所以,这几篇博文我又重新认真读了下,希望把有些有价值的地方,分享给大家。

好消息是,微软提供了一个表格来说明正在发生的变化,以便用户作出相应的调整。

“Blazor(服务器端)”模板现在被称为“Blazor Server App”,使用 blaszorserver
从命令行创建一个 Blazor Server 应用程序。“Blazor”模板现在被称为“Blazor
WebAssembly App”,使用 blaszorwasm 从命令行创建一个 Blazor WebAssembly
应用程序。若要创建 ASP.NET Core 承载的 Blazor WebAssembly 应用程序,请在
Visual Studio 中选择“ASP.NET Core hosted”选项。

1.2.2. NET Core 发展历程

** RC1 **

2016年1月 ASP.NET 5 改名 ASP.NET Core 1.0 ,所有名字变动如下图:

图片 9

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 发布,这个版本支持有效期三个月,后续有变动。
11/16 .NET Core 1.1 RTM 版发布。对应发布 ASP.NET Core 1.1 、EF Core
1.1。Visual Studio for Mac 也一同发布。可以通过Visual Studio 2015,
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平台带来的变化:

  • 降低入门及学习的障碍,.NET Standard
    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 Standard 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 Standard 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平台

相关博文:

● 支持 .NET Standard 2.1;

● 发布时支持静态资产;

● 支持 iOS 13;

● 改进连接器报错体验;

● Visual Studio 的 Attach to Process 调试。

@ref 支持字段的自动生成

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的主要功能区别:

图片 10

同样的ASP.NET Core 与 传统的 ASP.NET 也有较大区别,如下图所示:

图片 11

.NET Core RC2 版本今天已经发布,但从 RC1 到 RC2
发布间隔了大概半年的时间,这在微软的发布中还是很少见的,2016年2月份,微软宣布了
.NET Core RC2 的延迟发布,虽然延迟发布,但之后 .NET
社区中都是一致的声音:希望微软精耕细作,把 .NET Core
专心做好,而不是急着发布出来,所以到现在是四个月的时间,微软确实在真正耗费精力的把
RC2 版本做好,手动点个👍!

尽管用户仍需安装“C++ 桌面部署”和“C++ / CLI
支持”等组件才能工作,以及两个新的模板 —— CLI 类库(.NET Core)和 CLR
空项目(.NET Core)。

新引入的 Grpc.AspNetCore.Server 和 Grpc.Net.Client
提供程序现在发出以下事件计数器:

1.1.5. 命令行工具

与以前的版本相比,新版本更轻,更小,这有助于提高开发效率。为了搭建健壮的开发环境,文件系统作了较大变化。可以在名为DNVM或Dot
Net版本管理器的命令行访问每个可能的产品方案。该命令行可以方便地更新和配置.NET运行时。这是.NET执行环境的补充。命令行的另一个好处就是它与平台无关,开发人员不需要一次又一次地学习工具链。一旦熟悉其使用,就可以在任何其他支持的平台或界面上使用相同的方式。

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
应用程序一样了,只包含应用程序文件,运行时和基础类库都放在统一的地方,以供不同的应用程序使用,两种方式有好有坏,自己可以权衡使用。

(题图 via
Neowin)

图片 12图片 13

1.1. Net Core 2.0 特性

6. Tooling Preview Support for .NET CLI

That’s exactly what we’ve done and packaged support for these tasks in
Visual Studio to make use of the dotnet tool.

在 ASP.NET Core RC2 版本中,我们可以在命令行中使用 CLI
进行还原程序包、构建和运行等任务,Visual Studio 现在也集成了 CLI
工具,我们可以很方便的在 Visual Studio 中使用 CLI。

图片 14

.NET Core 3.1 中还剔除了 Windows
应用程序的某些窗体控件(已被功能更强大的后继者取代相当长的一段时间),这可能会破坏用户的某些项目。

图片 15图片 16

1.2. 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%" ]  }}

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

● ASP .NET
Core(GitHub)传送门

图片 17

1.1.2. 跨平台

除了使其成为开放源码外,微软已经不遗余力地使其跨平台。开发人员将能够在Mac,Linux或Windows系统上开发应用程序。事实上,它还引入了专门为Mac和Linux用户提供的新的代码编辑器“Visual
Studio Code”。

先看一下 .NET Core(包含 ASP.NET Core)的路线图:

最后,微软引入新版了 Blazor WebAssembly,增加了对 .NET Standard 2.1 和
iOS 13 的支持:

图片 18

1.1.3. 灵活部署

.NET
Core的这一功能可帮助开发人员灵活部署:作为应用程序(FDD-框架依赖部署)的一部分,或作为全新的安装
。FDD允许您使用较小的部署包最小化内存和磁盘空间的使用,而SCD则可以完全控制项目部署(包括.NET
Core库和运行时)。

9. About Entity Framework Core RC2

For this reason, EF6.x will still be the most suitable choice for many
applications.

哈哈,上面这句话是亮点,所以,对于 Entity Framework Core RC2
来说,还是有一些问题的,我们在开发新项目的时候,如果需要保证项目的稳定性,尽量还是使用
EF 6.x 版本,那什么时候要用 Entity Framework Core RC2 呢?答案如下:

  • New applications that do not require features that are not yet
    implemented in EF Core
  • Applications that target .NET Core, such as Universal Windows
    Platform and ASP.NET Core applications

总的来说,如果项目中使用的是 EF 6.x 版本,那最好不要升级到 EF Core RC2
版本,因为中间的差异还是蛮大的,当然,如果项目很小,也是可以升级的,另外,新的项目如果是
.NET Core,最好还是使用 EF Core RC2,EF Core RC2 支持以下构建方式:

  • Full .NET (Console, WPF, WinForms, and ASP.NET 4)
  • Universal Windows Platform
  • ASP.NET Core
  • OSX
  • Linux

EF Core RC2 支持的数据库:

  • Microsoft SQL Server
  • SQLite
  • Postgres
  • SQL Server Compact Edition
  • InMemory (for testing purposes)

EF Core RTM 版本需要进行的工作:

  • Bug fixing
  • Performance tuning
  • Documentation

EF Core RC2
因为我还没用过,具体的特性还不清楚,但对于现在的版本,还是有一些问题的,简单的新项目可以暂时使用,大型项目就算了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章