JetBrain的Rider開發Web API的心得
JetBrain的Rider主要是以開發.NET為主的IDE,可以在Windows、Mac或者Linux上開發.NET,而我這篇文章主要寫Windows和Mac上開發Web API作為文章的範疇。
當然最多人可能會寫的Console程式,我在這邊就不多說,因為整合的相當良好。不管是在Windows和Mac上,Console程式開發都不會有任何問題。
Web API是什麼
Web API我是拿來當作Angular的網站後台使用,所有調用資料庫或者處理一些複雜運算與加密運算和使用者驗證,都是透過Web API。
我使用的版本是.NET 7.0,也就是已經是跨平台和Open Source的.NET版本。
Web API我寫的完全是無狀態的RESTful Web API,因為是要容器化以後到Cloud Run上面去跑的。
優點
Rider在於程式碼的即時錯誤偵錯,以及自動完成算是一流的,如果配上GitHub Copilot真的省下80%的時間。
Rider本身也有終端機視窗可以讓人直接下一些指令,不過在Web API上需要下的指令只有gcloud run deploy之類的指令,發布API給Cloud Build做成容器,然後放到Cloud Run上面。
Git的功能也有內建,但我仍然用GitHub Desktop比較習慣。
整體而言是一個完整較為中型的.NET IDE,但大的程度又沒有Visual Studio來得大(不是指Visual Studio Code,是微軟要付費的Visual Studio Professional等版本)。
Nuget的部分用圖形介面點一點就可以加相依性,然後使用別人的程式庫,也可以很清楚的看到現在專案有什麼相依性,甚至管理版本。
缺點
在Web API的部分缺點是我曾經開發過一個專案,在於相依性的Package上出問題導致每次gcloud run deploy的時候都要刪掉一些資料夾,不然自動產生的資料夾會導致Cloud Build錯誤。
但這只出現在有一次大的Rider版本更新的時候才會這樣,之後就再也沒出現過這個問題。
Rider是開發C#程式的精簡選擇,如果不想用微軟的Visual Studio我真的想不出他有怎樣的缺點。
因為圖形介面的部分他好像也可以即時觀看(這個已經不是本篇文章的範疇,因為我不寫WinForm、WPF或MAUI的程式)。
Web API因為較為單純,都是抽象的呼叫和JSON的傳入傳出,加上Postman的協助,我目前沒有遇到任何的錯誤,大概要說就是比較吃硬體。
因為會直接做一個Web Server,如果要跟Angular一起用,等於要開兩個Web Server,如果電腦再裝MS SQL Server Express,等於系統資源吃很多。
尤其如果程式需要跑到3個C# Web API(驗證線上狀態、WAF和主要的資料庫操作API)和一個Angular伺服器,那就是跑四個Web Server,很吃效能,但這種狀態只有在產品要終結的本地測試才會用到一下下,其他時間一定是盡量分開測試,或者三個API其中兩個放到Cloud Run節省本機運算的負擔。
為什麼需要把C#程式拆成三份,因為Cloud Run的容器使用資源大小可以調整,藉此節省成本比如驗證線上狀態和WAF可以使用256 MB RAM和1 vCPU當容器大小,主要的資料庫操作會比較吃RAM和vCPU的話就512 MB RAM和1~2 vCPU。C#大概沒辦法用128 MB RAM,因為會出現記憶體不足錯誤。
結論
Rider是一個Visual Studio以外做.NET的很好選擇,不管是開發Web API,還是Console程式。
至於MAUI的部分因為最近還沒有用到,所以我不敢妄加評論,但我想以JetBrain的開發工具品質,搞不好可以做出比Visual Studio更好的MAUI開發工具。
如果加上一些插件可以很容易的部署程式,如gcloud、docker等,這些都很容易地在終端機視窗中可以使用。
再加上AI助手的話又如虎添翼一樣的威猛,本身的自動完成已經很強了,生成式AI協助的話又更強了。