很多時候,方案會由多個專案組成,希望可以共用組態檔,以免重工;可以利用內建的機制快速達到想要的效果(若專案很大,還是建議可以試試自訂 section 的方式),這邊針對
這問題挺特別的,來紀錄一下;
由於主機是雲端VM,依照之前的經驗SQL 需要開通 1433 port,確實也開通了,但是怎麼連外面就是連不到(內網可以),後來發現需要設定幾個地方
第一確認SQL 組態管理員是否有走 1433 port,預設是動態埠號,需要確認與調整
第二是 SSMS 的伺服器名稱要設定 1433 port
使用Nuget 安裝 Docfx,經過測試需要選擇 docfx.console,我使用穩定版的;
由於docfx 是開放的,可以到官網取得相關說明;安裝好之後觀察方案總管,多出了一些檔案,其中 docfx.json 為設定相關參數;
打開專案資料夾,可以看到有一個 _site 的資料夾,裡面就是組成說明文件的相關檔案,可以架起來變成站台,其中 api / toc.html 可以看到 lib 的說明,但若是直接使用檔案總管開啟的話,部分左上方目錄會無法正常顯示,由於JavaScript受跨網域存取限制,建議使用IIS 建置站台即可正常
怎麼將程式碼註解產生為說明文件呢?在「專案」屬性「建置」頁面勾選xml 文件建置選項,編譯後即可產生對應文件
另外,因為我們設定了產生文件,所以每次編譯都會變得比較久(如下圖),但其實僅需
首先,同樣來到專案屬性的「建置」頁籤,在 release 組態下,加入條件式編譯符號,這邊使用 「DOCFX」;接著打開專案檔(.csproj),加入相關設定,這樣就可以避免開發的時候編譯太久
參考:
序列化真的很常遇到,但有時會遇到介接的資料很難看,全大寫會全小寫,或是其他奇怪的命名,真的很難閱讀,但又希望可以正常的反序列化為我們自訂的物件,並且遵循我們定義的屬性名稱。
準備一份 json 如下圖
此時使用「將 json 貼上為類別」,就會直接建置好物件,測試反序列化確實也可以正常運作
但我們希望改造成自己喜歡的命名方式,還可以維持正常的運作;該怎麼做呢?只需要在屬性上方,掛上 attribute 即可,如下圖所示
其中屬性名稱已經可以調整成自己喜歡的格式,並且還可以維持正常運作
之前一直想自己架設 nuget,測試後終於有些心得,並且紀錄一下過程;
首先來建置 nuget 專案
使用VS2017 新增空白專案,甚麼都不用選,注意 targetFramework 為4.6.1版本(如下圖)
接著再安裝 nuget server 套件,這邊當時的版本是 3.1.2
安裝好之後,專案結構會變如下所示
緊接著 Ctrl + F5 跑一下站台,既然出錯了,但是錯誤訊息有明顯提示,調整為一個區段即可(直接移除 4.6),站台就可以跑起來了,值得注意的是原以為會跑webform,沒想到既然實作了routing 機制~
觀看Web.config 檔案中 appSettings 區段,有相關參數可以設定,其中packagesPath 就是 packages 資料夾(沒設定,預設),另外也建議必須設定apiKey,這邊是在之後發佈套件的時候,除了指定站台Url 之外,尚須要輸入指定的apiKey值
接著來架設站台
發行一下站台,並且架設至IIS;但因為站台只想鎖定特定人士存取(e.g AD機制),故取消匿名存取,啟用 windows 驗證
Visual Studio 加入nuget server,這邊踩了一下雷,站台網址後面必須多加一個 /nuget 路徑;之後在 nuget 套件管理的來源,就可以看到自己的網址了
[ 2019/4/14 更新 ] 補充若使用了AD 認證,故打網址時,未自動彈出帳密輸入視窗,記得帳號前要加入 domain:xxxx\username 以免一直試錯