Visual Studio 2019 新功能介紹

最近安裝了 VS2019 community 版本後,單就幾項功能體驗看看,對於 solution filter 與 live share 這兩項容易上手的功能做介紹

solution filter

以簡單的三層式架構  controller, service, model 來看

但目前在 service 層來說不太可能對 db 不存取,所以在 service 層也許還會再架一層 repository 層

就會變成 controller, service, repository, model

也許我們會開一個 mvc 專案檔給 controller 使用,然後再開 service 再開一個方案檔

repository 再開一個方案檔, model 類的也開一個方案檔

如此一來就需在 github 上有 4 個 repo

當你在做一個大改動的時候,就有可能一次需要發 4 個 PR,長期下來是一件很累人的事情

也許有可能你會切成

controller, servie 包在同一個方案檔,repository, model 包在另一個方案檔,用來減少發 PR 的次數

也是有人為了偷懶,直接把這四層的關係全建在同一個方案檔也是也大有人在 XD

 

為了達到這樣的共用性, 長期下來在 service 或是 repository 層就會開始多了許多檔案

比方說,一開始在開發 HR 系統時,在 service 也許只會有 HR_service 的專案檔

當 sales 的 servie 進來時,你的 service 就會有 HR_service, Sales_service 這兩個專案檔

當公司再繼續成長時,也許你會再切成 HR_service, CustomerA_service, CustomerB_service....

久而久之專案檔就越積越大包

光是開啟一個方案檔,整台電腦就吃不消了

所以在 2019 我們可以使用只引入我們需要的部份即可,這個就是 solution filter 的功能

這個功能很簡單,他還是會去讀取 sln 的檔案,但只會引入部份的 csproj的專案檔進來

也許你的 sln 裡包含了 20 個 csprj,但你只需要 3 個 csproj

以筆電載入 vs2019 而言,這樣的速度絕對是天差地遠

如果電腦有裝 resharper 的話,這樣的改進更是有感

使用方法很簡單,照著 msdn 的官方文件已經寫的很清楚了

https://docs.microsoft.com/en-us/visualstudio/ide/filtered-solutions?view=vs-2019

這是一個 sln 的範例,假設全部的 csproj 全塞在一起,而我們又只需要這三個 csproj 的話,做出來的 slnf 就會長成這樣

會需要 sln 是因為之後也許你另加了新的專案,在載入 slnf 的時候,並不會出現新的專案檔,這時候就得手動加進去了

但要注意的是, slnf 要引入新的專案時

並不是用傳統的 reload project 就行了喔

而是還要再多加一個步驟  專案檔 右鍵  save as solution filter

這樣 slnf  才會有更動的記錄

否則下次再開 slnf 的時候,還是不會把新加入的 csproj 載入

 

{
  "solution": {
    "path": "ConsoleApp1.sln",
    "projects": [
      "ConsoleApp1\\ConsoleApp1.csproj",
      "Models\\Models.csproj",
      "Utility\\Utility.csproj"
    ]
  }
}

 

Live Share

這項功能是相當有趣的功能,如果你是請假在家工作,或是同事在異地工作者

你會愛死這項功能

接著你就會拿到一組的 URL,但前提是你需要在 Miscrosoft 註冊一組帳號並保持登入狀態才行

開啟 live share 後,你可以在右上角發現 sharing,針對要 live share 做控管,比如是 view only 還是 read/write 去設定

個人覺得是蠻有趣的功能,免除了以前遠端合作時都要裝 teamViwer 或是開 windows remote desktop 

 

參考資料

https://blog.darkthread.net/blog/vs2019-release/

https://docs.microsoft.com/en-us/visualstudio/ide/filtered-solutions?view=vs-2019

https://docs.microsoft.com/en-us/visualstudio/liveshare/reference/security