哈囉大家好!
今天要來介紹一個免費、開源的套件管理工具-NuGet,是專門為.NET平台設計的管理工具。
透過NuGet, 開發者可以更輕鬆的在專案中加入、更新、移除或管理別人已經寫好的程式碼套件。
可以想像成像在玩樂高積木一樣,不需要自己親手建立各種積木、零件...等,可以直接從公用的箱子裡拿已經做好的小零件,用更快速有效率的方式完成自己的積木作品。
套件可以是各種功能,例如:處理資料庫的連線、處理JSON檔...等。
了解NuGet的功能和特色後,是不是覺得有點熟悉呢?
沒錯!NuGet就像npm和GitHub的混合版,結合了npm和GitHub的部分核心功能。
NuGet的NPM(Node Package Manager)特性:管理相依性
下載和安裝:
安裝JavaScript套件時,會執行npm install
指令,而NuGet也允許開發者透過指令來下載安裝C#套件(即.nupkg檔)。
處理相依性(Dependency):
安裝JavaScript套件時,npm會處理package.json
裡面的dependencies。當安裝C#套件時,NuGet會自動檢查這個套件依賴的其他套件,並且會一起下載安裝到專案中。
NuGet的GitHub特性:管理和分享套件
公開與私人倉庫(public/private repository)
(1)公開套件:NuGet主要的套件來源是官方的網站,就像是GitHub的public repo一樣,大家可以在上面發布或下載套件。
(2)私人套件:許多公司或組織會架設自己的NuGet Server,就像企業的GitHub Enterprise。可以將私人套件發布至伺服器中,只提供給特定的團隊或專案做使用。
版本控制(version control)
NuGet不會直接對程式碼進行版本控制,但它對套件版本的處理方式,讓開發者可以很容易的管理不同的套件版本,提高專案的維護性。
根據IDE的不同,使用NuGet套件的流程也會有點不一樣。這裡我示範的是在VSCode裡做使用!
安裝套件
首先,先在VSCode打開專案資料夾,在terminal執行安裝套件的指令:
(我建立一個新的C# Console app, 使用的套件是Newtonsoft.Json,專門用來處理Json資料的套件)
dotnet add package Newtonsoft.json
執行完指令後,NuGet會幫我們下載最新版本的套件,並且將套件的引用資訊加到專案檔(.csproj)中。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
</ItemGroup>
</Project>
使用套件
接下來要用Newtonsoft.json把物件轉換成json字串:
using Newtonsoft.Json;
public class Post
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
}
class Program
{
static void Main(string[] args)
{
var newPost = new Post
{
Id = 1,
Title = "Hello World",
Content = "This is my first post!"
};
string jsonStr = JsonConvert.SerializeObject(newPost, Formatting.Indented);
Console.WriteLine(jsonStr);
}
}
最後再執行dotnet run
指令,就可以在terminal看到json字串~
今天簡單介紹了NuGet這個.NET平台的套件管理工具,明天要來試試看ASP.NET Core框架搭配Entity Framework Core(EF Core)來操作資料庫~