咱們寫扣的人,大概只有學生時代會自己手刻玩具來用,目的多半是為了交作業或者第一份工作的面試要 demo。有了第一份工作之後,我相信 90% 以上的人都用現成的框架或套件,原因就是這些框架跟套件,幫我們規範了大部分情況都是用的軟體架構、還提供了許多正確、效能又好、使用又方便的函式庫。
現在有非常多的程式語言與框架都能寫 API server,每個語言都有它的特色跟優缺點,在這麼多的語言裡,筆者選用 .NET 5 的原因如下:
.NET 是微軟推出的開發框架,早期微軟提出的 .NET Framework 功能非常強大,包山包海,想得到的、想不到的功能通通都有,什麼事情都能做。但這個強大的 .NET Framework 卻有兩美中不足的地方:
隨著時間推移,軟體的開發已經越來越開放、越來越有彈性,不能跨平台、使用第三方套件就遜掉了。微軟當然也看到這個趨勢,他們在 2016 年推出 .NET Core,從此 .NET 程式不再是 Windows 限定,同一份 code 可以在 Windows/Linux/Mac 上面執行。而且 .NET Core 一改以前的做法,讓我們可以自由地選用不同的套件,也能獨立管理各個套件的版本。
有趣的是,由於早期只有 .NET Framework,非常非常多的舊系統都用它開發,加上 .NET Framework 4.x 功能強大又完整,大概可以再戰 20 年(X)。.NET Core 為了避免版本號讓開發者混淆,直接從 3.x 跳到 5.x,並嘗試拿掉「Core」這個字,所以才會從 .NET Core 1.x, Core 2.x, Core 3.x 直接變成 .NET 5。不過 Core 這個字早已深植人心,所以很多人一時改不了口,甚至連官網的文件下拉選單都是 Core 5.0 XD