图片 6

特性介绍和使用指南,3预览版和开源Windows桌面框架新功能抢先看

EF Core 3.1的获取方式

.NET Core应用现在使用可执行文件进行构建。对于使用全局安装的.NET
Core版本的应用而言,这是一项新功能。到目前为止,只有自包含的应用具有可执行文件。对于这些可执行文件,开发者可以期待它们与其他本地可执行文件具有相同的特性,例如:

.NET Core 2.0和1.0/1.1之间的关系

三个版本是独立的,且可可以共存,并分别使用对应的运行时,项目不会自动升级,除非设置了对应的版本。

开发环境下,安装了多个SDK版本,默认使用最新的版本,在安装完.NET Core 2.0
SDK之后,用于所有新创建的项目,指定为1.0和1.1版本的项目仍然使用对应版本运行时。

在项目中添加global.json配置文件,可以指定使用特定的SDK版本。

值得一提的是,官方表示,EF Core“ 5.0” 版本(即 3.1
之后的版本)的规划工作已经开始,并正在取得良好进展。

WPF和Windows Forms

项目和类库升级

可以将现有程序升级到 .NET Core 2.0。在Visual Studio中,更改目标框架为
.NET Core 2.0。

如果使用Visual Studio
Code或者其他代码编辑器,手动编辑项目文件将目标框架改为netcoreapp2.0

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>

从 3.0 开始到 3.1 继续,.NET Core SDK 中不再包含 dotnet ef
命令行工具。在执行 EF Core
迁移或脚手架命令之前,您必须将此软件包作为全局或本地工具安装。要将 3.1.0
工具的最终版本安装为全局工具,请使用以下命令:

创建清单之后,可以使用以下命令向其中添加本地工具:

IDE生产力增强

Visual Studio 2017
15.3提供多项生产力增强功能,帮助更快写出更好的代码。现在支持通过EditorConfig设置.NET命名规范和格式化规则,这样允许您的团队执行和配置几乎所有代码的编码约定。(团队开发统一代码规范的痛点得到解决!赞!)

代码导航改进:添加GoToAll(Ctrl+T)支持camelCase匹配(大写简称匹配),只需要输入缩写,可以导航到任意文件、类型、成员定义,比如:bh将会搜索到BusHelper.cs

在下图中还可以看到建议的变量名,变量名遵循编辑器配置中的代码规范:

图片 1

新增部分重构功能:

  • 解决合并冲突(Resolve merge conflict)
  • 添加参数(根据调用方法推断)
  • 生成重载(overrides)
  • Add named argument
  • Add null-check for parameters
  • Insert digit-separators into literals
  • Change base for numeric * literals (e.g., hex to binary)
  • Convert if-to-switch
  • Remove unused variable

EF 6.4的新增功能

您可以双击可执行文件。

项目系统优化

对项目文件.csproj进行优化,移除部分不需要的元素。从下图可以看到项目的依赖项进行分类,结构更加清晰。

图片 2

另一个针对.NET Core项目系统的增强是项目编译更加高效。

dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 3.1.0

IT之家1月2日消息在微软Connect(); 2018大会上,微软宣布推出.NET Core
3预览版,使用Visual Studio 2019预览版、Visual Studio for Mac以及Visual
Studio Code均可开发.NET Core 3应用程序。.NET Core
3的面世,是一次重大更新。

Linux和Windows ARM32构建现在可用(预览版)

.NET Core开发团队正在为.NET Core
2.0+开发ARM32构建支持。

这些构建非常适合在树莓派使用。这些构建还没有正式发布,现在只是预览版。提供为.NET
Core 2.0 生成ARM32
Runtime(没有SDK)。因此,需要在另一个操作系统上构建应用程序,然后复制到树莓Pi(或类似的设备)上运行。

下面是两个非常棒的 .NET Core ARM32开发实例:

  • .NET Core on Raspberry
    Pi
  • .NET Core Docker
    Samples

详细信息:

对于将全局工具添加到工具清单文件中以及克隆包含全局工具的存储库,本地工具提供了不同的体验。如果您克隆包含本地工具的repo,则只需运行以下命令:

写给自己的话

写文章真是一件耗费脑力和体力的事情,对这篇文章的整理和编辑持续两天才完成,计算下大概耗时4小时,感觉写代码爽多了,可能还没适应写东西,但是我会坚持更新完这个系列。希望更多人第一时间了解.NET
Core!

(文/开源中国)    

.NET Framework 4.8

Visual Basic 支持

除了支持C#和F#,15.3现在还支持使用Visual Basic来开发.NET
Core应用程序。

目前,Entity Framework Core
3.1 和 Entity
Framework
6.4 已正式发布。

开源的WPF、Windows Forms和WinUI

Visual Studio 2017 15.3 更新

可以将新版本的 dotnet ef 与使用 EF Core
运行时的较旧版本的项目一起使用。但是,该工具的较旧版本不适用于 EF Core
3.1。

dotnettoolinstall

快速使用 .NET Core 2.0

首先请安装.NET Core SDK
2.0。(SDK中已经包含Runtime)

安装完成之后就可以使用命令行或Visual Studio创建.NET Core 2.0应用程序了。

创建新项目是极其简单的操作,在Visual Studio
2017可以使用提供的项目模板,也可以使用命令dotnet new执行命令创建:

C:\samples>dotnet new console -o console-app
C:\samples>cd console-app
C:\samples\console-app>dotnet run
Hello World!
dotnet tool install --global dotnet-ef --version 3.1.0

调用本地工具时,dotnet会在目录结构中搜索清单。当找到工具清单文件后,就在其中搜索所请求的工具。如果找到了该工具,它将包含在NuGet全局包位置中查找该工具所需要的信息。

版本支持和生命周期

.NET Core 2.0可以应用于生产环境。

微软有两个支持级别:长期支持(Long Term Support-LTS)和当前版本(Current
release)。LTS版本有三年的支持,而当前版本更短,通常在一年左右,甚至可能更短。当前版本又被称为“快速跟踪支持”。.NET
Core 1.0 and 1.1 是LTS版。

.NET Core
2.0是当前版本支持,正在等待质量和可靠性的反馈,然后会转到LTS支持。一般来说,在发布LTS版时,要确保该版本处于只需要为它提供安全修复的阶段,一旦你部署了一个带有LTS版本的应用程序,就不应该更新它,至少不会因为平台而更新。

Red Hat完全支持.NET
Core,会很快发布相应的版本,可以查看这个网站RedHatLoves.NET查看。

还记得这些图片吗?微软高调示爱Linux

图片 3

图片 4

图片 5

当然,爱是相互的,微软用了三年时间终于也收获了被爱的感觉,技术的最终方向是:融合,感动O(∩_∩)O~!

图片 6

  • 据悉,EF Core 3.1 的主要目标是完善在 EF Core 3.0
    中提供的功能和方案。EF Core 3.1
    将是一个长期支持(LTS)版本,至少支持 3 年。EF Core 3.1 重新引入了对
    .NET Standard 2.0 的支持,而不是像 EF Core 3.0 那样要求 .NET
    Standard 2.1 。这意味着 EF Core 3.1 将在支持该标准的 .NET Framework
    版本上运行。
  • 此外,该版本还修复了 150
    多个问题,但没有要宣布的主要新功能。

应用现在默认具有可执行文件

前言

这一篇会比较长,介绍了.NET Core
2.0新特性、工具支持及系统生态,现状及未来计划,可以作为一门技术的概述来读,也可以作为学习路径、提纲来用。

对于.NET Core
2.0的发布介绍,围绕2.0的架构体系,我想通过一个系列来全面介绍:

  1. .Net Core 2.0 生态(1).NET Standard 2.0
    特性介绍和使用指南(已发布)
  2. .Net Core 2.0 生态(2).NET Core 2.0
    特性介绍和使用指南(已发布)
  3. .Net Core 2.0 生态(3)ASP.NET Core 2.0
    特性介绍和使用指南(已发布)
  4. .Net Core 2.0 生态(4)Entity Framework Core 2.0
    特性介绍和使用指南(已发布)

.NET Core 2.0发布最终版,基于.NET Core
2.0开发的项目可以放心用于生产环境。.NET Core
2.0开发不受开发工具影响,安装SDK之后便可以使用命令行工具,Visual Studio
Code或者你喜欢的文本编辑器编写代码发布项目,当然对于重量级IDE需要更新到最新版:Visual
Studio 2017
15.3、Visual
Studio for Mac 7.1。

注意:VS 2017 15.3并没有包含SDK,需另外单独安装.NET Core 2.0 SDK。

个人更喜欢使用轻量级编辑器Visual Studio Code,对我而言更新Visual
Studio 2017 15.3是一项不小的工程,但是这个最新版本提供的单元测试Live
Unit Testing功能,是其他IDE不能相比的,这会成为TDD开发者的最爱!

.NET Core
2.0进行了多项重要改进,这使得.NET
Core 2.0更加具备作为平台的能力。本文总结了.NET Core
2.0最新特性,详细改进细节,可以参考GitHub Issues:dotnet/core
#812。

EF Core 3.1 作为一组 NuGet 软件包专门分发。例如,要将 SQL Server
提供程序添加到您的项目中,可以使用 dotnet 工具使用以下命令:

恢复之后,可以使用以下命令调用本地工具:

SDK并行支持

最新版本的VS,可以识别最新的.NET Core
SDK,并且应用相关的工具。15.3版本中Visual Studio对.NET Core
SDK提供并行支持,即在创建新项目时,默认使用安装的最高.NET Core
SDK版本,同时允许您在需要时通过使用global.json来指定和使用旧版本。

这样可以使用VS构建针对不同.NET Core版本的应用。

  • 与 EF Core 类似,EF 6.4 的主要目标是完善在 EF 6.3
    中提供的功能和方案。为此,该团队修复了 EF 6.3
    中发现的重要问题,以创建更稳定的发行版。

dotnet
build现在可以在构建操作期间把应用的NuGet依赖项从NuGet缓存中复制到构建输出文件夹中。在此版本之前,这些依赖项仅作为dotnet
publish的一部分进行复制。此更改能够通过xcopy命令将构建输出复制到不同的计算机中。

将Linux作为单个操作系统更容易实现

.NET Core
2.0将Linux作为单个操作系统来对待。(Linux的版本很多,这项支持意味着在我们眼中不同的版本都是Linux,无视差异,提高Linux系统上的兼容性。)现在有一个单独的Linux构建(基于芯片架构的构建),它适用于测试过的所有Linux发行版。到目前为止,支持仅限于基于glibc的发行版,特别是基于Debian和Red
hat的Linux发行版。

计划还将支持更多其他的Linux发行版。

Windows和macOS也有类似的改进。您现在可以将项目发布为以下的“运行时”:

  • linux-x64, linux-arm
  • win-x64, win-x86
  • osx-x64

将面向较早版本的 ASP.NET Core 的应用程序升级到 3.1 时,您可能还必须添加
EF Core 程序包作为显式依赖项。

System.Text.Json.Utf8JsonReader是一款高性能、低分配、仅前向的读取器,用于UTF-8编码的JSON文本,从ReadOnlySpan中读取。Utf8JsonReader是一种基础性的低级类型,可用于构建自定义解析器和反序列化器。使用新的Utf8JsonReader读取JSON有效负载比使用Json.NET中的读取器快2倍。

最后

2.0 是.NET
Core一个重要的里程碑版本,让人感到非常兴奋!2.0不仅是目前所有.Net框架中最快的版本,同时.NET
Standard 2.0也实现了承诺:让.NET无处不在。结合Visual Studio家族,.NET
Core为开发人员在Windows、MacOS以及Linux系统提供最高效的开放平台。