国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

理解.NET2015

2019-11-14 16:08:56
字體:
供稿:網(wǎng)友

  去年跟著BUILD之后,我發(fā)了一篇文章Exciting Times for .NET 并從那以后我已經(jīng)很榮幸地能夠與.NET團隊并肩作戰(zhàn),這其中包括了運行時、框架、語言和編譯器。雖然去年我的重心已經(jīng)更多轉(zhuǎn)移到了內(nèi)部社區(qū),但是就像為了同行而幫助運維內(nèi)部會議一樣,我也花費了一些時間幫助.NET基金會取得了一些進展并且了解了許多關(guān)于開源社區(qū)的東西以及學習了所有我們.NET基金會的項目。好,開心的是我也結(jié)婚了,這是我人生中的一個轉(zhuǎn)折點。我從一個社區(qū)“傳教士”儼然成為一個“先驅(qū)”或者說是一個“橋梁”  。我真的挺喜歡 Alex Hillman的格言: Tummler.

  既然我們正在走進BUILD, 我甚至更加激動于我們所做的進展,特別是關(guān)于.NET平臺本身的,還有團隊開源的方式。現(xiàn)在已經(jīng)有了許多關(guān)于.NET動向的尋覓,因而我認為我已經(jīng)寫了一篇高級“架構(gòu)性”博文來幫助人們理解各個部件以及該如何在哪兒參加這些項目(的開發(fā)當中)。換句話說,這將是一個開始學習.NET 2015的好地方。至少這是我想看到的! 

  .NET 2015 – 10,000 個腳視圖

  在一個非常高級的層面上,這是落于.NET 2015傘下的主要部件綱要。

  重要的是,我們需要注意這兒有三個主要的.NET核心的投資去向, 而這些足夠影響著主要部件的開發(fā)。

  1. .NET Innovation(.NET創(chuàng)新) – 帶來了平臺推動與創(chuàng)新(譯者注:這種創(chuàng)新跟Creation還不一樣哦)。我們將使得每一層變得更加現(xiàn)代化(譯者注:就是更加科學、實用、流行) ,這其中包括了語言、編譯器、基類庫、應(yīng)用模型、運行時以及工具。

  2. Open Source (開源)– 將工程進程引入一個開放環(huán)境,在社區(qū)的幫助支持下開發(fā),繁殖一個富有生命力的生態(tài)系統(tǒng)。

  3. Cross platform (跨平臺)– 拓展.NET到linux和Mac平臺,因為我們的消費者逐漸地在多樣的環(huán)境中工作著。

  .NET 2015 的主要部件

  Frameworks and Runtimes(框架和運行時)

  .NET框架是一個托管的可執(zhí)行環(huán)境,其為需要運行的應(yīng)用提供了許多服務(wù)。它有兩個主要部分:公共語言運行時(CLR),這是用于處理運行應(yīng)用的可執(zhí)行引擎;另者則是.NET框架類庫,它提供了一份經(jīng)過測試且可復(fù)用的代碼來給開發(fā)者們在自己的軟件中調(diào)用。

  .NET Framework 4.6 建立于4.5.2之上并添加的新的API,改進了事件追蹤,還修復(fù)了N多BUG。 這是至今我們所知的最新版完整的 .NET 框架。.NET Framework 4.6 將直接包含于 Windows 10并被推送至老版本系統(tǒng)的Windows Update 中(Vista及以上). 看: .NET Framework 2015 PReview

  .NET Core 5 是一個綜合性目標, 模塊化的框架可以被相當廣闊的應(yīng)用模型和平臺所使用,同樣開源,可被模塊化同時本地化部署,并且在微軟的促進下將支持 Windows, Linux 和 Mac OS X 系統(tǒng)。有這么一套包含了基類庫 (corefx) 和運行時(coreclr)的重構(gòu)集,(CORECLR)包含了一個全新的JIT編譯器(“RyuJIT”), .NET 垃圾回收器,本機交互以及其他許多的.NET運行時組件。 今日,.NET Core 在Windows 上建立并運行。 接下來的幾個月內(nèi),我們將正在通過加入一些具有平臺特性的組件到 Linux 和 Mac 實現(xiàn)當中 。看: Introducing .NET Core and CoreCLR is now Open Source。

  如果你僅僅只看本文中的一個外鏈,請一定看這個Introducing .NET Core. Immo 將大量詳述解釋為什么我們需要它以及如何去適應(yīng)。

  Compilers(編譯器)

  The .NET Compiler Platform(.NET平臺編譯器) ("Roslyn") 開放了 C#源碼和富含許多分析API代碼的Visual Basic 編譯器。這樣就能夠通過使用相同于VS所使用的API來建立代碼分析工具(譯者注:這很酷啊!)。 Roslyn會生成平臺獨立的中間語言(IL) ,并在建立.NET 2015時就使用了, 其中就有Framework和Core. 發(fā)布版本中,一整個.NET 框架將使用Roslyn編譯。關(guān)鍵語言VB 和C#創(chuàng)新的地方也不例外。 看: Roslyn on GitHub. F#語言和編譯器同樣有創(chuàng)新。看F# on GitHub.

  “RyuJIT”在x64位的.NET上是新的默認(JIT)編譯器。在運行時侯,JIT編譯器使用IL語言首先為特定架構(gòu)機器編譯。 而對于桌面和服務(wù)器情景, RyuJIT 較之前的x64位JIT編譯器大大修改以減少啟動時間。同樣包含了支持SIMD (單指令、多數(shù)據(jù)) ,這就允許對集合中的數(shù)值進行并行化數(shù)學運算。這對于一些依賴向量運算的應(yīng)用而言可以極大地提高運算速度(譯者注:比如像MATLAB這樣的軟件就是靠向量化編程)。看:The next-generation JIT compiler for .NET

  .NET Native(本機化) 將C#編譯成機器碼形式將使其性能堪比C++,這樣開發(fā)者將得益于.NET 框架所帶來強大的生產(chǎn)力、親和性以及本機代碼所帶來的性能。舉個例子說, apps 基于 .NET開發(fā)后將編譯成中間語言(IL)。在運行時,(JIT) 編譯器才將其轉(zhuǎn)為機器碼。 而對比而言, .NET Native 就是一個預(yù)編譯器用于將app直接編譯成機器碼并只花費很小的CLR運行時間。通過在.NET Native上編譯之后,受歡迎的微軟應(yīng)用商店上的app啟動速度將快60% faster 以及少用了15-20% 的內(nèi)存。普遍的微軟apps將運行在.NET Native (ARM, x86, x64). 看: Compiling Apps with .NET Native

  App Models(應(yīng)用模型)

  應(yīng)用模型擴展了 .NET 框架 4.6 和 .NET 核心 5 的公用庫。Windows Forms, WPF, asp.net Web Forms, MVC 5 等 這些如今你所熟知的應(yīng)用模型將成為.NET Framework 4.6的一部分,還有一些新特性將與你見面哦, 這也得益于語言中的創(chuàng)新,還有Roslyn 編譯器和RyuJIT。將在.NET 4.6整體上有很多改變。 看: ASP.NET Overview – What about Web Forms?, The Roadmap for WPF 和.NET Framework 2015 Preview

  稍微透露下,將有新的應(yīng)用模型是特地設(shè)計于運載在優(yōu)化的.NET核心5上的。

  ASP.NET 5  是另一種專門用于建立現(xiàn)代網(wǎng)頁應(yīng)用的.NET應(yīng)用模型。該模型重新建立了來提供一個優(yōu)化的開發(fā)框架以支持可部署在云端或用于內(nèi)部事務(wù)的應(yīng)用。其由許多開銷最小的組件組成, 因此可以在構(gòu)建解決方案的時候更加彈性。 ASP.NET 5 可以在.NET Framework 4.6 或者.NET Core 5上面運行。 現(xiàn)今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(統(tǒng)一微軟應(yīng)用) 是一種應(yīng)用模型,其允許你在 Win Phone 和 Win app(8.1+) 之間共享代碼 (8.1+) 并部署于微軟商店。Universal Windows apps 將運行于.NET Native。 看: Building universal Windows apps for all Windows devices和Getting Started with .NET Native

  那么什么是.NET Core,我真的很羅嗦嗎?

  .NET Core 5 是一個綜合性目標, 模塊化的框架可以被相當廣闊的應(yīng)用模型和平臺所使用因為其有這么一套包含了基類庫 (corefx) 和運行時(coreclr)的重構(gòu)集。the .NET Core 基類庫(BCL)所用APIs 對于不同應(yīng)用模型是同一的。APIs 并不是看起來一樣的 – 而是他們共享了相同的實現(xiàn)而已。主要的APIs/程序及被大量分解為模塊而且是平臺獨立的。

  App-local (或者說也是同時的)部署也是.NET Core的關(guān)鍵特點。 你可以選擇與你app相關(guān)的package來隨著app部署。模塊化的 packages 可通過 NuGet 來獲得。 這意味著你的程序?qū)⒈桓綦x運行并且不受機器上諸多.NET框架完整版本的影響。你的APP可以像x-copy命令那樣華麗地部署,而無需操碎了心。

  同時,.NET Core 在微軟的促進下將支持 Windows, Linux 和 Mac OS X 系統(tǒng)。今天,.NET Core 在Windows 上建立并運行,但我們將正在加入一些具有平臺特性的組件到 Linux 和 Mac 實現(xiàn)當中。而且所有都是開源的。其中相當重要的是為基金會拿下跨平臺和建立更強大生態(tài)系統(tǒng)做了保障。

image

  從編程到運行程序– .NET Core 開發(fā)

  我認為去了解工作如何進行的一種心理上的的模型/流程這樣的技術(shù)總是很受益的。如下是我關(guān)于開發(fā)基于.NET Core應(yīng)用的簡單示意圖 , 描述了從編碼/生成/調(diào)試 循環(huán)圈到應(yīng)用部署和執(zhí)行。。不同的應(yīng)用模型上的部署和執(zhí)行是不一樣的。

  你寫代碼的的同時需要引用相當多的BCL和應(yīng)用模型中你需要的模塊。Roslyn 是這么一種編譯器,可以處理你的代碼并生成平臺獨立的中間語言(IL)。在編譯流水線一旁,提供了豐富的API集讓你對你的代碼做足夠徹底的種種分析。若你正在使用 Visual Studio, 將有數(shù)以噸計(就是很多的意思)的新IDE 特性等著你來更好地使用這些API以滿足你的編程生產(chǎn)之旅。

  如果你建立了universal Windows 應(yīng)用, .NET Native 本機化工具鏈將負責剩下的事情。引用將在最短的運行時間內(nèi)隨著你的app建立同時被本地化部署到本機鏡像中。若您正在建立 ASP.NET 5 應(yīng)用, 引用和 CoreCLR 將被隨著app本地化部署到服務(wù)器。JIT 編譯隨之發(fā)生于開始使用 RyuJIT。

  補充說明,ASP.NET 5 允許你在代碼中做些改變?nèi)缓蟊4妫又⑿聻g覽器,而不需要明確地重建項目。Visual Studio 使用 Roslyn 以支持動態(tài)編譯。你仍然可以擁有所有的結(jié)構(gòu)體以及使用編譯好的框架,但是開發(fā)體驗上就像口譯一樣(很令人捉急)。

  注意: 若你面向完整的 .NET Framework 4.6 開發(fā),那么你將仍然可以享受語言的創(chuàng)新以及 Roslyn 編譯器。應(yīng)用部署并沒有從其現(xiàn)在工作的方式中發(fā)生改變, 其仍然依賴于機器上安裝的完整版本的框架,但是JIT 編譯通過優(yōu)化過的 JIT 編譯器--RyuJIT。

  現(xiàn)在開放了啥?

許多 .NET 2015的部件是開源的并由 .NET 基金會指導著工作. 在這些項目上,我們正在積極地與社區(qū)進行開放相關(guān)的工作。

  您可以看.NET基金會支持的所有工程的repos 和 activity ---GitHub: http://dotnet.github.io/

  這兒是一些對應(yīng)的開始的好地方。查看這些非常詳細的Readme和contribution所能提供的向?qū)А?/p>

  • ASP.NET 5: https://github.com/aspnet/Home

  • .NET Core CLR: https://github.com/dotnet/coreclr

  • .NET Core Framework: https://github.com/dotnet/corefx

  • Roslyn: https://github.com/dotnet/roslyn

  值得注意的是,完整的 .NET 框架是 “開源的”。也即是說, 我們并沒有正在貢獻什么,并且在 OSI 認可的 License 的保護下并沒有的完整地放出來,但是,你可以在這兒探索源代碼(老外說話真累...):http://referencesource.microsoft.com/

  開放中的工程學

  OSS(開源軟件) 對于微軟而言并非新奇之物,但是對于.NET運行時和庫來說是全新的概念。這是一個非常大的工程啊,要15年之久,以至于相當多的人在內(nèi)部已經(jīng)工作了那么久,其中不僅是移植代碼,還有開放中的道道工序。這是很耗時的。這也就是為什么團隊從一小部分基類庫開始的原因了,同時這一路上發(fā)布了越來越多的東西,當然也學到不少東西。 那些學習以及最佳實現(xiàn)已經(jīng)在整個團隊泛起了漣漪。 在貢獻榜中我們不得不學會謙虛:overwhelming support and contributions so far。

  您可能會思考 “現(xiàn)今我沒有足夠的時間建立我自己的APP,更不用提為CLR碼代碼了!” 說得好啊,我和你想到一塊兒了!你可以選擇你想要的方式來參與其中。你沒必要寫代碼以成為貢獻者。(但你可以) 提出一個問題, 去評價一個提議, 回答一個問題。或者僅僅是在這上面瞧一瞧看一看。

  您可能還會想“我不想失去我過去所習慣的簡潔性、高質(zhì)量、支持性(這些特點)”別急!我們?nèi)匀粸榱讼嗤凹墑e的質(zhì)量和服務(wù)而獻身。不妨簡單想想,所有我們做所的工作只是把工程都置于開放之中。(但是)每一件我們以前在內(nèi)部為了建立高質(zhì)量軟件所做的是仍然在同樣的地方、環(huán)境條件下進行,只不過現(xiàn)在我們都是公開進行的。

  我真的對團隊的新文化以及.NET的未來感到很激動啊。

  享受吧!

  [更新 2/26/2015] – 我已經(jīng)注意到 dotNetConf 2015 正在來臨,于此你可以了解更多。這是由來自社區(qū)和產(chǎn)品團隊的演講者發(fā)起的免費虛擬會議。可在三月18、19號在線流媒體收看(譯者注:注意時差)。

  原文地址:http://blogs.msdn.com/b/bethmassi/archive/2015/02/25/understanding-net-2015.aspx


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳西县| 色达县| 辰溪县| 新乐市| 洪湖市| 盐津县| 黑山县| 布拖县| 鹿泉市| 始兴县| 灵石县| 曲靖市| 朝阳市| 扬州市| 秦皇岛市| 全州县| 镇沅| 贺兰县| 宜兰市| 大悟县| 当阳市| 胶南市| 鄂伦春自治旗| 新乡市| 郎溪县| 丹东市| 双桥区| 平顶山市| 宿州市| 南部县| 勃利县| 鸡东县| 南木林县| 广昌县| 襄城县| 芦溪县| 绥化市| 名山县| 铜鼓县| 日土县| 瓦房店市|