2018年8月25日 星期六

引用外部組態檔

很多時候,方案會由多個專案組成,希望可以共用組態檔,以免重工;可以利用內建的機制快速達到想要的效果(若專案很大,還是建議可以試試自訂 section 的方式),這邊針對

2018年6月5日 星期二

雲端伺服器之資料庫連線問題排除

這問題挺特別的,來紀錄一下;

由於主機是雲端VM,依照之前的經驗SQL 需要開通 1433 port,確實也開通了,但是怎麼連外面就是連不到(內網可以),後來發現需要設定幾個地方


第一確認SQL 組態管理員是否有走 1433 port,預設是動態埠號,需要確認與調整


image

第二是 SSMS 的伺服器名稱要設定 1433 port

SNAGHTML8a00bc

2018年5月13日 星期日

使用DocFx 製作說明文件

使用Nuget 安裝 Docfx,經過測試需要選擇 docfx.console,我使用穩定版的;

image

由於docfx 是開放的,可以到官網取得相關說明;安裝好之後觀察方案總管,多出了一些檔案,其中 docfx.json  為設定相關參數;

image

打開專案資料夾,可以看到有一個 _site 的資料夾,裡面就是組成說明文件的相關檔案,可以架起來變成站台,其中 api / toc.html 可以看到 lib 的說明,但若是直接使用檔案總管開啟的話,部分左上方目錄會無法正常顯示,由於JavaScript受跨網域存取限制,建議使用IIS 建置站台即可正常

image

怎麼將程式碼註解產生為說明文件呢?在「專案」屬性「建置」頁面勾選xml 文件建置選項,編譯後即可產生對應文件

image

另外,因為我們設定了產生文件,所以每次編譯都會變得比較久(如下圖),但其實僅需

Technorati Tags:
要確認 release 的時候,才產生文件,可以透過相關設定來處理

image

首先,同樣來到專案屬性的「建置」頁籤,在 release 組態下,加入條件式編譯符號,這邊使用 「DOCFX」;接著打開專案檔(.csproj),加入相關設定,這樣就可以避免開發的時候編譯太久

image

image

參考:

修改csproj動態切換編譯程序-以DocFx為

2018年3月10日 星期六

客製化序列化/反序列化的輸出屬性名稱

序列化真的很常遇到,但有時會遇到介接的資料很難看,全大寫會全小寫,或是其他奇怪的命名,真的很難閱讀,但又希望可以正常的反序列化為我們自訂的物件,並且遵循我們定義的屬性名稱。

準備一份 json 如下圖

image

此時使用「將 json 貼上為類別」,就會直接建置好物件,測試反序列化確實也可以正常運作

image

但我們希望改造成自己喜歡的命名方式,還可以維持正常的運作;該怎麼做呢?只需要在屬性上方,掛上 attribute 即可,如下圖所示

image

其中屬性名稱已經可以調整成自己喜歡的格式,並且還可以維持正常運作

image

2018年3月4日 星期日

Private Nuget Server

之前一直想自己架設 nuget,測試後終於有些心得,並且紀錄一下過程;

首先來建置 nuget 專案

使用VS2017 新增空白專案,甚麼都不用選,注意 targetFramework 為4.6.1版本(如下圖)

2018-3-4 下午 04-02-29

接著再安裝 nuget server 套件,這邊當時的版本是 3.1.2

2018-3-4 下午 04-05-35

安裝好之後,專案結構會變如下所示

2018-3-4 下午 04-13-35

緊接著 Ctrl + F5 跑一下站台,既然出錯了,但是錯誤訊息有明顯提示,調整為一個區段即可(直接移除 4.6),站台就可以跑起來了,值得注意的是原以為會跑webform,沒想到既然實作了routing 機制~

2018-3-4 下午 04-15-36

2018-3-4 下午 04-19-28

觀看Web.config 檔案中 appSettings 區段,有相關參數可以設定,其中packagesPath 就是 packages 資料夾(沒設定,預設),另外也建議必須設定apiKey,這邊是在之後發佈套件的時候,除了指定站台Url 之外,尚須要輸入指定的apiKey值

接著來架設站台

發行一下站台,並且架設至IIS;但因為站台只想鎖定特定人士存取(e.g AD機制),故取消匿名存取,啟用 windows 驗證

Visual Studio 加入nuget server,這邊踩了一下雷,站台網址後面必須多加一個 /nuget 路徑;之後在 nuget 套件管理的來源,就可以看到自己的網址了

2018-3-4 下午 04-40-02


[ 2019/4/14 更新 ] 補充若使用了AD 認證,故打網址時,未自動彈出帳密輸入視窗,記得帳號前要加入 domain:xxxx\username 以免一直試錯