.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執行時的薄層之上。
據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預覽版。
相關文章
- .Net Core實現區塊鏈初探區塊鏈
- Netty初探Netty
- 關於 .NET Core(.NET Core 指南)
- ExtJS初探:瞭解 Ext CoreJS
- netty系列之:netty初探Netty
- .NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0簡介ASP.NET
- .NET平臺系列9 .NET Core 3.0 / .NET Core 3.1 詳解
- 【asp.net core 系列】14 .net core 中的IOCASP.NET
- ASP.NET Core Web API 索引 (更新Redis in .NET Core)ASP.NETWebAPI索引Redis
- [.net core學習] .net core中的Rijndael取代方法
- ASP.NET Core ----ASP.NET Core中使用Code FirstASP.NET
- ASP.NET 6.0 Core 遷移 ASP.NET Core 7.0ASP.NET
- Dapper in .Net CoreAPP
- .Net Core 使用SessionSession
- .NET CORE命令列命令列
- .net core使用RabbitMQMQ
- 關於.NET Core
- .NET Core/.NET之Stream簡介
- .NET Core基礎學習——.NET Core SDK與命令列(CL命令列
- Kubernetes網路概念初探
- .NET初探原始碼生成(Source Generators)原始碼
- .NET下多執行緒初探執行緒
- .net core EF Core 檢視的應用
- ASP.NET Core系列(二):建立第一個.Net Core 專案ASP.NET
- 解讀釋出:.NET Core RC2 and .NET Core SDK Preview 1View
- .NET Core接入ElasticSearch 7.5Elasticsearch
- .NET Core 跨平臺
- GRPC與.net coreRPC
- .Net Core 路由處理路由
- .NET Core容器化(Docker)Docker
- TDD in .NET Core - 簡介
- .Net Core — 依賴注入依賴注入
- .Net Core Aop之IResourceFilterFilter
- .NET Core installation for DockerDocker
- .NET Core容器化@DockerDocker
- .Net Core中使用RabbitMQMQ
- .net core 原始碼分析原始碼
- .net core jwt 鑑權JWT