理解 .NET 2015 已翻译 100%

oschina 投递于 2015/02/27 21:27 (共 13 段, 翻译完成于 02-28)
阅读 2287
收藏 2
2
加载中

去年跟着BUILD之后,我发了一篇文章Exciting Times for .NET 并从那以后我很荣幸地能够与.NET团队并肩作战,这其中就包括了运行时、框架、语言和编译器。虽然去年我的工作重心已经更多转移到了内部社区,但是就像为了同行去帮助运维内部会议一样,我也花了一些时间帮.NET基金会取得了一些进展并且了解了许多关于开源社区的东西且学习了我们.NET基金会的所有项目。哦对,开心的是我也结婚了,这是我人生中的一个转折点。我从一个社区“传教士”俨然成为一个“先驱”或者说是一座“桥梁”  。我真的挺喜欢 Alex Hillman的格言: Tummler.

既然我们正在走进BUILD, 我甚至更加对我们所做的进展感到激动,特别是关于.NET平台本身的,还有团队开源的方式。现在已经出现了许多关于.NET动向的追踪,因而我认为我已经写了一篇高级“架构性”博文来帮助人们理解各个组件以及该如何在哪儿参加这些项目(的开发当中)。换句话说,这将是一个开始学习.NET 2015的好地方。至少这是我想看到的! 

Parser7
翻译于 2015/02/28 13:36
1

.NET 2015 – 10,000 个脚视图

在一个非常高级的层面上,这是落于.NET 2015伞下的主要部件纲要。image

重要的是,我们需要注意这儿有三个主要的.NET核心的投资去向, 而这些足够影响着主要部件的开发。

  1. .NET Innovation(.NET创新) – 带来了平台推动与创新(译者注:这种创新跟Creation还不一样哦)。我们将使得每一层变得更加现代化(译者注:就是更加科学、实用、流行) ,这其中包括了语言、编译器、基类库、应用模型、运行时以及工具。

  2. Open Source (开源)– 将工程进程引入一个开放环境,在社区的帮助支持下开发,繁殖一个富有生命力的生态系统。

  3. Cross platform (跨平台)– 拓展.NET到Linux和Mac平台,因为我们的消费者逐渐地在多样的环境中工作着。

.NET 2015 的主要部件

Frameworks and Runtimes(框架和运行时)

.NET框架是一个托管的可执行环境,其为需要运行的应用提供了许多服务。它有两个主要部分:公共语言运行时(CLR),这是用于处理运行应用的可执行引擎;另者则是.NET框架类库,它提供了一份经过测试且可复用的代码来给开发者们在自己的软件中调用。

Parser7
翻译于 2015/02/28 13:56
1

.NET Framework 4.6 建立于4.5.2之上并添加的新的API,改进了事件追踪,还修复了N多BUG。 这是至今我们所知的最新版完整的 .NET 框架。.NET Framework 4.6 将直接包含于 Windows 10并被推送至老版本系统的Windows Update 中(Vista及以上). 看: .NET Framework 2015 Preview

.NET Core 5 是一个综合性目标, 模块化的框架可以被相当广阔的应用模型和平台所使用,同样开源,可被模块化同时本地化部署,并且在微软的促进下将支持 Windows, Linux 和 Mac OS X 系统。有这么一套包含了基类库 (corefx) 和运行时(coreclr)的重构集,(CORECLR)包含了一个全新的JIT编译器(“RyuJIT”), .NET 垃圾回收器,本机交互以及其他许多的.NET运行时组件。 今日,.NET Core 在Windows 上建立并运行。 接下来的几个月内,我们将正在通过加入一些具有平台特性的组件到 Linux 和 Mac 实现当中 。看: Introducing .NET Core and CoreCLR is now Open Source

如果你仅仅只看本文中的一个外链,请一定看这个Introducing .NET Core. Immo 将大量详述解释为什么我们需要它以及如何去适应。

Parser7
翻译于 2015/02/28 14:14
1

Compilers(编译器)

The .NET Compiler Platform(.NET平台编译器) ("Roslyn") 开放了 C#源码和富含许多分析API代码的Visual Basic 编译器。这样就能够通过使用相同于VS所使用的API来建立代码分析工具(译者注:这很酷啊!)。 Roslyn会生成平台独立的中间语言(IL) ,并在建立.NET 2015时就使用了, 其中就有Framework和Core. 发布版本中,一整个.NET 框架将使用Roslyn编译。关键语言VB 和C#创新的地方也不例外。 看: Roslyn on GitHub. F#语言和编译器同样有创新。看F# on GitHub.

“RyuJIT”在x64位的.NET上是新的默认(JIT)编译器。在运行时侯,JIT编译器使用IL语言首先为特定架构机器编译。 而对于桌面和服务器情景, RyuJIT 较之前的x64位JIT编译器大大修改以减少启动时间。同样包含了支持SIMD (单指令、多数据) ,这就允许对集合中的数值进行并行化数学运算。这对于一些依赖向量运算的应用而言可以极大地提高运算速度(译者注:比如像MATLAB这样的软件就是靠向量化编程)。看: The next-generation JIT compiler for .NET

Parser7
翻译于 2015/02/28 14:34
1

.NET Native(本机化) 将C#编译成机器码形式将使其性能堪比C++,这样开发者将得益于.NET 框架所带来强大的生产力、亲和性以及本机代码所带来的性能。举个例子说, apps 基于 .NET开发后将编译成中间语言(IL)。在运行时,(JIT) 编译器才将其转为机器码。 而对比而言, .NET Native 就是一个预编译器用于将app直接编译成机器码并只花费很小的CLR运行时间。通过在.NET Native上编译之后,受欢迎的微软应用商店上的app启动速度将快60% faster 以及少用了15-20% 的内存。普遍的微软apps将运行在.NET Native (ARM, x86, x64). 看: Compiling Apps with .NET Native

App Models(应用模型)

应用模型扩展了 .NET 框架 4.6 和 .NET 核心 5 的公用库。Windows Forms, WPF, ASP.NET Web Forms, MVC 5 等 这些如今你所熟知的应用模型将成为.NET Framework 4.6的一部分,还有一些新特性将与你见面哦, 这也得益于语言中的创新,还有Roslyn 编译器和RyuJIT。将在.NET 4.6整体上有很多改变。 看: ASP.NET Overview – What about Web Forms?, The Roadmap for WPF.NET Framework 2015 Preview

稍微透露下,将有新的应用模型是特地设计于运载在优化的.NET核心5上的。

Parser7
翻译于 2015/02/28 14:52
1

ASP.NET 5  是另一种专门用于建立现代网页应用的.NET应用模型。该模型重新建立了来提供一个优化的开发框架以支持可部署在云端或用于内部事务的应用。其由许多开销最小的组件组成, 因此可以在构建解决方案的时候更加弹性。 ASP.NET 5 可以在.NET Framework 4.6 或者.NET Core 5上面运行。 现今ASP.NET 5 通过Mono 运行时 在Linux 和Mac上跑。有朝一日.NET Core 支持了Linux 和Mac, 那么 ASP.NET 5 将很容易在那些平台的.NET Core 上跑。 看: ASP.NET 5 Overview Introducing ASP.NET 5

Universal Windows apps(统一微软应用) 是一种应用模型,其允许你在 Win Phone 和 Win app(8.1+) 之间共享代码 (8.1+) 并部署于微软商店。Universal Windows apps 将运行于.NET Native。 看: Building universal Windows apps for all Windows devicesGetting Started with .NET Native

Parser7
翻译于 2015/02/28 15:06
1

那么什么是.NET Core,我真的很罗嗦吗?

.NET Core 5 是一个综合性目标, 模块化的框架可以被相当广阔的应用模型和平台所使用因为其有这么一套包含了基类库 (corefx) 和运行时(coreclr)的重构集。the .NET Core 基类库(BCL)所用APIs 对于不同应用模型是同一的。APIs 并不是看起来一样的 – 而是他们共享了相同的实现而已。主要的APIs/程序及被大量分解为模块而且是平台独立的。

App-local (或者说也是同时的)部署也是.NET Core的关键特点。 你可以选择与你app相关的package来随着app部署。模块化的 packages 可通过 NuGet 来获得。 这意味着你的程序将被隔离运行并且不受机器上诸多.NET框架完整版本的影响。你的APP可以像x-copy命令那样华丽地部署,而无需操碎了心。

Parser7
翻译于 2015/02/28 15:23
1

同时,.NET Core 在微软的促进下将支持 Windows, Linux 和 Mac OS X 系统。今天,.NET Core 在Windows 上建立并运行,但我们将正在加入一些具有平台特性的组件到 Linux 和 Mac 实现当中。而且所有都是开源的。其中相当重要的是为基金会拿下跨平台和建立更强大生态系统做了保障。image

从编程到运行程序– .NET Core 开发

我认为去了解工作如何进行的一种心理上的的模型/流程这样的技术总是很受益的。如下是我关于开发基于.NET Core应用的简单示意图 , 描述了从编码/生成/调试 循环圈到应用部署和执行。。不同的应用模型上的部署和执行是不一样的。

image

Parser7
翻译于 2015/02/28 15:34
1

你写代码的的同时需要引用相当多的BCL和应用模型中你需要的模块。Roslyn 是这么一种编译器,可以处理你的代码并生成平台独立的中间语言(IL)。在编译流水线一旁,提供了丰富的API集让你对你的代码做足够彻底的种种分析。若你正在使用 Visual Studio, 将有数以吨计(就是很多的意思)的新IDE 特性等着你来更好地使用这些API以满足你的编程生产之旅。

如果你建立了universal Windows 应用, .NET Native 本机化工具链将负责剩下的事情。引用将在最短的运行时间内随着你的app建立同时被本地化部署到本机镜像中。若您正在建立 ASP.NET 5 应用, 引用和 CoreCLR 将被随着app本地化部署到服务器。JIT 编译随之发生于开始使用 RyuJIT。

Parser7
翻译于 2015/02/28 15:46
1

 补充说明,ASP.NET 5 允许你在代码中做些改变然后保存,接着刷新浏览器,而不需要明确地重建项目。Visual Studio 使用 Roslyn 以支持动态编译。你仍然可以拥有所有的结构体以及使用编译好的框架,但是开发体验上就像口译一样(很令人捉急)。

注意: 若你面向完整的 .NET Framework 4.6 开发,那么你将仍然可以享受语言的创新以及 Roslyn 编译器。应用部署并没有从其现在工作的方式中发生改变, 其仍然依赖于机器上安装的完整版本的框架,但是JIT 编译通过优化过的 JIT 编译器--RyuJIT。

Parser7
翻译于 2015/02/28 15:58
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(3)

Parser7
Parser7

引用来自“mytaia”的评论

从4升到5还真是困难,算算4出来到现在也将近5年了
大版本更新必定伤筋动骨。
mytaia
mytaia
从4升到5还真是困难,算算4出来到现在也将近5年了
花儿笑弯了腰
花儿笑弯了腰
沙发?
返回顶部
顶部