2019-1-17 前言

C#已更新为更快的速度。主要版本7.0是
2017年3月发布,次要版本7.1和7.2很快发布
在2017年8月和2017年12月。通过项目设置,您可以
与每个应用程序一起分发,是开源的,不可用
仅适用于Windows的桌面版本,但也适用于许多不同的版本
Windows设备,以及Linux和OS X.
对于创建Web应用程序,ASP.NET Core 1.0是完整的
重写ASP.NET。此版本并非完全落后
与旧版本兼容,需要对现有版本进行一些更改
ASP.NET MVC代码(使用ASP.NET Core MVC)。但是,它也有一个
与旧版本相比有很多优点,比如a
每个网络请求的开销都较低 - 这会带来更好的效果
性能 - 它也可以在Linux上运行。 ASP.NET Web窗体是
不是此版本的一部分,因为ASP.NET Web窗体未设计
为了最好的表现;它是专为开发人员友好而设计的
关于Windows Forms应用程序开发人员已知的模式。
当然,并非所有应用程序都可以轻松更改以便使用
.NET核心。这就是为什么庞大的框架得到改善的原因
即使这些改进没有以尽快的速度完成
作为.NET核心。完整.NET Framework的新版本是4.6。
完整的.NET提供了ASP.NET Web窗体的小更新
堆。
68
注意
模式匹配和元组在第13章中介绍,
“使用C#进行功能编程。”
.NET Core 2.0专注于使现有的更容易
使用.NET Framework编写的应用程序到.NET Core。类型
.NET Core尚未提供但仍在使用的
现在有许多.NET Framework应用程序和库
使用.NET Core。 .NET已添加了20,000多个API
核心2.0。例如,二进制序列化和DataSet又回来了,
你也可以在Linux上使用这些功能。另一个特点就是
帮助将遗留应用程序带入.NET Core是Windows
兼容包(Microsoft.Windows.Compatibility)。这个NuGet
package定义了WCF,注册表访问,加密,目录的API
服务,绘图等。看到
https://github.com/dotnet/designs/blob/master/accepted/compatpack/
compat-pack.md表示当前状态。
.NET标准是一个定义应该是哪些API的规范
可在任何支持该标准的平台上使用。越高了
标准版本,可用的API越多。 .NET Standard 2.0
将标准扩展了20,000多个API,并得到了支持
.NET Framework 4.6.1,.NET Core 2.0和通用Windows
平台(Windows应用程序)以build 16299开头(Fall Creators
更新Windows 10)。
注意
选择要使用的编译器版本。
C#7引入了许多新功能(这些功能在本文中列出
简介。)这些功能中最重要的来自
函数式编程:模式匹配和元组。
69
.NET标准将在第19章“库”中详细介绍
程序集,软件包和NuGet。“
要检查您的应用程序是否可以轻松移植到.NET Core,
您可以使用.NET可移植性分析器。您可以安装此工具
Visual Studio的扩展。它分析你的二进制文件。您可以
配置哪些版本的可移植性信息
您想要获得的框架,您可以选择可移植性
有关.NET Core,.NET Framework,.NET Standard,Mono的信息,
Silverlight,Windows,Xamarin等。结果可以是JSON,
HTML和Excel。
图1-1显示了选择.NET后的摘要报告
与.NET Framework 100%兼容的框架二进制文件,
.NET Core为96.67%,Windows应用程序为69.7%。图1-
图2显示了有问题的API的详细信息。

选择技术并继续前进
当你知道竞争技术的原因时
框架,选择用于编程的技术更容易
应用。 例如,如果您正在创建新的Windows
在Windows Forms上下注并不是一个好主意。 代替,
您应该使用基于XAML的技术,例如Universal
Windows平台(UWP)。 当然,还有很好的理由
使用其他技术。 您需要支持Windows 7客户端吗? 在
在这种情况下,UWP不是一个选项,但WPF是。 你仍然可以创建你的
WPF应用程序的方式可以轻松切换到其他应用程序
技术,如UWP和Xamarin。

如果您正在创建Web应用程序,可以安全地使用ASP.NET Core
使用ASP.NET Core MVC。使用ASP.NET排除此选择
Web表单。如果您正在访问数据库,则应使用实体
Framework Core,您应该选择Managed Extensibility
框架而不是System.AddIn。
旧版应用程序仍使用Windows窗体和ASP.NET Web
表格和其他一些旧技术。它没有意义
改变现有应用程序只是为了使用新技术。必有
做出改变是一个巨大的优势 - 例如,什么时候
维护代码已经是一场噩梦和大量的重构
需要更改为更快的发布周期
客户,或使用新技术时允许减少
编码更新时间。根据遗留应用程序的类型,
切换到新技术可能不值得。您可以
允许应用程序仍然基于旧技术,因为
仍然支持Windows窗体和ASP.NET Web窗体
选择技术并继续前进
当你知道竞争技术的原因时
框架,选择用于编程的技术更容易
应用。例如,如果您正在创建新的Windows
在Windows Forms上下注并不是一个好主意。代替,
您应该使用基于XAML的技术,例如Universal
Windows平台(UWP)。当然,还有很好的理由
使用其他技术。您需要支持Windows 7客户端吗?在
在这种情况下,UWP不是一个选项,但WPF是。你仍然可以创建你的
WPF应用程序的方式可以轻松切换到其他应用程序
技术,如UWP和Xamarin。
71
未来很多年。
本书的内容基于较新的技术展示
什么是创建新应用程序的最佳选择。如果你仍然需要
维护旧版应用程序,您可以参考旧版本
本书,涵盖ASP.NET Web窗体,WCF,Windows窗体,
System.AddIn,Workflow Foundation和其他传统技术
它仍然是.NET Framework的一部分,可用于.NET Framework。

.NET术语


目前的.NET技术是什么? 图1-3给出了总体情况
.NET Framework,.NET Core和Mono如何关联的图片
彼此。 所有.NET Framework应用程序,.NET Core应用程序和Xamarin
如果应用程序是使用.NET构建的,则可以使用相同的库
标准。 这些技术共享相同的编译器平台,
编程语言和运行时组件。 他们不分享
相同的运行时,但它们确实在运行时共享组件。
例如,实时使用(JIT)编译器RyuJIT
.NET Framework和.NET Core。

使用.NET Framework,您可以创建Windows窗体,WPF和
在Windows上运行的旧版ASP.NET应用程序。
使用.NET Core,您可以创建ASP.NET Core和控制台应用程序
在不同的平台上运行。 Universal也使用.NET Core
Windows平台(UWP),但这不会使UWP可用
Linux操作系统。 UWP还使用了Windows运行时,即
仅适用于Windows。
Xamarin提供Xamarin.IoS和Xamarin.Android,库
使您能够为iPhone和Android开发C#应用程序。同
Xamarin.Forms,你有一个库来共享它们之间的用户界面
两个移动平台。 Xamarin目前仍以此为基础
Mono框架,由Xamarin开发的.NET变体。在某些
一点,这可能会改为.NET Core。但是,重要的是
所有这些技术都可以使用为其创建的相同库
.NET标准。
在图1-3的下半部分,您可以看到还有一些共享
在.NET Framework,.NET Core和Mono之间进行。运行
组件,例如垃圾收集器和RyuJIT的代码
(这是一个新的JIT编译器,用于将IL代码编译为本机代码)
共享。垃圾收集器由CLR,CoreCLR和.NET使用
本土。 CLR和使用RyuJIT即时编译器
CoreCLR。 .NET编译器平台(也称为Roslyn)和
所有这些平台都使用编程语言。

扫描二维码关注公众号,回复: 4949167 查看本文章

.NET Framework


.NET Framework 4.7已经是.NET Framework
在过去的15年中不断增强。 许多技术
在历史部分讨论过的是基于此
框架。 此框架用于创建Windows窗体和
WPF应用程序。 .NET Framework 4.7仍然提供增强功能
Windows窗体,例如支持高DPI。
如果要继续使用ASP.NET Web窗体,ASP.NET
4.7使用.NET Framework 4.7是可行的方法。 否则,你需要

注意
为了使用.NET Core开发应用程序,Microsoft创建了新的
名为.NET Core Command line(CLI)的命令行实用程序。
重写一些代码以转移到.NET Core。 视质量而定
源代码和需要添加新功能,重写代码
可能是值得的。

.NET核心


.NET Core是所有新技术和新技术使用的新.NET
在本书中有一个重点。这个框架是开源的 - 你可以
在http://www.github.com/dotnet上找到它。运行时是CoreCLR
库;框架包含集合类,文件系统
访问,控制台,XML以及更多内容位于CoreFX存储库中。
与.NET Framework不同,它是您需要的特定版本
必须使用.NET Core 1.0在系统上安装该应用程序
包含运行时的框架随之提供
应用。以前有时候你可能有过
将ASP.NET Web应用程序部署到共享服务器的问题
因为提供程序安装了旧版本的.NET;那些时候
消失了。现在,您可以使用应用程序提供运行时
不依赖于服务器上安装的版本。
.NET Core采用模块化方法设计。框架分裂
到大量的NuGet包列表。这样你就不必处理了
使用所有包,使用元数据包引用
较小的包一起工作。 Metapackages甚至有所改善
使用.NET Core 2.0和ASP.NET Core 2.0。使用ASP.NET Core 2.0,
你只需要引用Microsoft.AspNetCore.All来获取所有内容
ASP.NET Core Web应用程序通常需要的包。
.NET Core可以快速更新。甚至更新运行时
不影响现有的应用程序,因为运行时可以
与应用程序一起安装。现在微软可以改进.NET Core,
包括运行时,更快的发布周期。

猜你喜欢

转载自www.cnblogs.com/blogs2014/p/10280357.html