想寫這篇文章緣起於公衆號文章裏的一條留言:linux
對於一個現代化的開發平臺,創建一種讓開發者建立,分享與使用可複用代碼的機制是十分必要的。這種「可複用代碼」被打包後的文件一般被稱做「包」(package),對於.NET(包括 .NET Core)平臺來講這個機制的實現就是NuGet平臺。NuGet包的本質是一個以nupkg爲後綴的zip壓縮文件(你能夠將後綴改成.zip後解壓查看裏面的內容),其中包含了編譯後的Dll文件以及其餘相關文件。web
.NET Core是一個開源的模塊化的Framework,無論是開發web或移動設備都在同一個Framework(.NET Core)下運行,並且 .NET Core也可在不一樣的操做系統上運行,包括Windows、linux、MacOS,實現了跨平臺跨設備。更棒的是.NET Core 在發佈程序時不用事先安裝Framework而是經過Nuget下載,這樣在初次部署時就不用安裝一個複雜而龐大Framework,而是按需下載。這種基於Nuget的按需加載鑄就了.NET Core 跨平臺。.Net Core 強化了 Nuget 的使用,全部的 .Net Core 組件均有 Nuget 管理,因此有必要探討一下 Nuget。框架
微軟的官方文檔《包、元包和框架 https://docs.microsoft.com/zh-cn/dotnet/core/packages》明確了.NET Core 是一種由 NuGet 包組成的平臺。運維