.NET Core初探

jopen 9年前發布 | 8K 次閱讀 .NET

        英文原文:A First Look to .NET Core

        微軟在 connect()大會上宣布 .NET Core 將開源。它將提供一個支持包括 Windows、Linux 和 Mac OSX 在內的所有平臺的單一代碼庫。近日,微軟項目經理 Immo Landwerth 給出了更多關于 .NET Core 是什么以及它將如何“為未來所有的 .NET 平臺奠定基礎”的信息。

        Immo 解釋說,.NET 實際上是一系列框架,每個框架針對一個特定平臺,而且歸不同的微軟團隊所有,這在 API 和實現方面都不可避免地產生了差異。.NET Core 是 .NET Framework 的一個新的分支,旨在為特定于平臺的擴展提供一個共同的基礎。每個擴展提供只能用于特定應用程序模型的 API,例如,面向 .NET 本地應用程序的 WinRT 互操作擴展或者面向 ASP.NET 5 應用程序的 MVC。這個共同的層稱為統一基類庫(BCL),它位于一個包含 .NET 運行時的薄層之上。

.NET Core初探

        據 Immo 介紹,基類庫在 .NET 已經提供的可移植類庫的 基礎上又邁進了一步。在 .NET 中,PCL 只定義 API 外觀,而實現仍然特定于每個平臺,這樣就產生了不同程度的實現不一致性。BCL 不僅提供一個跨所有支持平臺的共同的 API,而且實際上也以統一的方式實現:“BCL 大部分是純 MSIL 程序集,可以原樣共享。”有趣地是,微軟為那些只能用于特定平臺的 API 選擇的方法確保他們在所有平臺上都可以工作:

比起回過頭來努力在上層提供一個一致的 API 棧,要求每個擁有特定組件的團隊思考他們的 API 如何跨所有平臺工作要簡單許多。那是因為可移植性不是可以后續提供的東西。

        .NET Core 帶來的另外一項有趣的變化是使用 NuGet 作為基本的交付系統。.NET Core 將會作為一個細粒度的包的集合交付,每個包對應一個程序集。同時,微軟將提供 .NET Core 分發包。本質上,它只是經過微軟測試的、特定 .NET 版本的所有包的快照副本,用于那些不需要額外的自由進行 NuGet 包混搭的場景。

        Immo 介紹,NuGet 的使用以及向更加模塊化的設計轉變使“.NET Core 平臺有可能轉變成一種應用程序本地框架。”如此一來,每個應用程序將只需要部署框架中它需要的部分。這樣做的主要好處是,當應用程序需要升級 .NET Core 時,將不會破壞與其它現有應用程序的兼容性,而升級整臺機器共享的 .NET Framework 就會如此。

        最后,Immo 明確指出,在 Visual Studio 2015 發布之前,.NET Core 將是 .NET Framework 的一個純子集。不過將來,.NET Core 的發布周期將會比 .NET Framework 短,所以在有一些時間點上,一項功能將只在基于 .NET Core 的平臺上提供,直到 .NET Framework 平臺的版本趕上來。

        有一點必須注意,.NET Core 目前并不支持桌面應用程序,后者將仍然使用 .NET Framework,而且“沒有計劃提供一個跨平臺的 UI 框架。”在回復其博文的一條評論時,Immo 寫道,他們“絕對會在 .NET Core 中提供 Console API”。因此,開發人員將可以用它編寫控制臺應用程序,雖然他并沒有提供任何時間表。

        讀者可以在 NuGet 上瀏覽所有的.NET Core 包,它們用前綴“System.”或“Microsoft.”標識。源代碼在 GitHub 上提供。要試用 .NET Core,可以下載 Visual Studio 2015 預覽版

來自: InfoQ
                    <span id="shareA4" class="fl">                  
                        </span>
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!