[ASP.NET Identity] Identity 起手式

會員管理的演進過程有很長的一段時間,從 ASP.NET 2.0 開始的 Membership 到現在的 ASP.NET 4.5 的 Identity,一代比一代好,每一代都有他存在的價值,沒有絕對的優點

現代,若是要開發一個安全性高(雙因子驗證),整合外部帳號(Google、Facebook) ,ASP.NET Identity 就成為我的首選

另外它以 OWIN 為基礎,可以在所有 .NET Framework中使用,包含 ASP.NET MVC、 Web Forms、Web Pages、Web API,與SignalR等類型的應用程式

[AutoMapper] AutoMapper 5.0.2 的新寫法

在 4.2 的時候,CreateMap 方法只是被標記過時

到了 5.0.2 的時候,這些過時的方法,已經被拔掉,改由 MapperConfiguration 取代,一旦升級到 5.0.2 就勢必要面臨改寫程式,也獲得到超高效能
https://lostechies.com/jimmybogard/2016/06/24/automapper-5-0-speed-increases/

[Elmah] 保護 Elmah 的連線字串

從大神 Kevin 那邊知道 Arebis.Web.Mvc.ElmahDashboard 這個 Dash Board套件,它比 Elmah.axd 更加的友善,使用後讓 Log Viewer、Search 的友善度提升,二話不說立馬納入專案內;有在使用 Elmah + Sql Server 的夥伴,可以試著使用看看
http://getglimpse.com/
http://kevintsengtw.blogspot.tw/2016/05/aspnet-mvc-elmah-dashboard-elmah-sql.html

這裡將分享保護 Elmah Connect String 的使用經驗,不會提到安裝套件步驟

[Glimpse] 使用 Glimpse 診斷網站應用程式

開發網站應用程式的時候,可以搭配一些診斷工具,方便開發人員除錯。

Glimpse (http://getglimpse.com/) 是一款內嵌至應用程式的診斷套件,不需要修改程式碼就能擁有診斷功能,強化瀏覽器 (F12,開發者模式) 辦不到的事情,比如:Sql Query。

安全性的部分,Glimpse 預設不允許遠端存取,只能用在開發環境,資訊洩漏的問題也幫我們想好了,若要開啟,請做好安全性設定

[Entity Framework 6] Code First - PK Column set Non-Clustered

預設,SQL Server 會幫我們把 PK 設為 Clustered,當 PK 是 GUID type(uniqueIdentifier) 時,有一些注意事項

  1. 使用具有順序性的 GUID,避免索引破碎;我習慣自己產生,不使用 SQL 提供的Store Procedure 的 NEWSEQUENCEID 和 NEWID
  2. 設為 Non-Cluster

原本以為用 Code First 要把 PK 設為 Non-Cluster 很簡單,沒想到還是卡關

如果你跟我一樣,使用 Code First,PK 是 GUID,請看我的解法...

[Unit Test] 測試程式中的比對物件

結果與期望比對,是測試程式碼中最重要的一個步驟,就是用它來取代人眼比對,有關物件比對 91哥的文章有非常詳細的介紹:

https://dotblogs.com.tw/hatelove/2014/06/06/how-to-assert-two-collection-equal

https://dotblogs.com.tw/hatelove/2016/03/28/compare-object-equality-with-expected-objects

當測試程式碼用的是複雜型別,會比對型別中的屬性狀態(值),用它來決定是否通過驗證,最直接的方式就是跑迴圈一個一個比,這樣做不是很聰明,也不夠快,太費力

我會使用以下物件來完成我的工作

  1. FluentAssertions
  2. SpecFlow

在這裡我分享我常用的比對方式...

[C#.NET] 動態產生 AS400 對應的 POCO/DTO Part2

續上篇:https://dotblogs.com.tw/yc421206/2015/12/30/linqpad_generate_poco_for_as400

原本的功能稍有不足,我將它能稍作些強化,添加了類別和欄位的說明註解(XML),讓類別看起來更好一些,最後的結果如下圖

[AS400] 在 SSMS 使用 OpenQuery 查詢 AS400 資料表

撰寫 SpecFlow 的時候需要用到 AS400 上的資料欄位,為了快速產生 Spec Table 於是又把腦筋動到 SSMS 的 Results to Text,詳見前文

https://dotblogs.com.tw/yc421206/2016/01/11/232015

所以要用 SSMS 連接 AS400,對 AS400 不熟,於是詢問同事,該如何處理,經過整理後得到了以下答案...

隨手記錄下來,以免忘記

[TFS 2015] 實作 Build vNext + Release + MsDeploy 自動部署內部網站

續上篇,https://dotblogs.com.tw/yc421206/2016/04/20/tfs2015_build_vnext_webdeploy

上篇的作法是用 Build 將網站應用程式打包到一個位置(Folder),然後再用 CopyFile 複製到遠端電腦的站台實體目錄。

這篇會用 Build 把網站打包成一個 zip 檔,再用 MsDeploy 發行到遠端電腦。

[TFS 2015] 實作 Build vNext + Release + SqlPackage 自動部署測試資料庫

續上篇,[TFS 2015] 實作 Build vNext + Release 自動部署至內部網站

我使用了 Build vNext + Release 將網站部署到了測試環境,缺少了網站所需要的資料庫,這裡我整理了一些手自動部署的方法

自動部署資料庫,要看團隊內的開發流程不適合使用,使用時要注意一下

[TFS 2015] 實作 Build vNext 自動部署 dotCover 測試涵蓋率網頁

dotCover 在 Jetbrains 旗下,是用來產生測試涵蓋率報表的工具,授權方式已經和 ReSharper Ultimate 綑綁在一塊,它有免費試用;若你需要使用網頁來呈現報表, 或許你可以考慮 dotCover,官方連結:https://www.jetbrains.com/dotcover/?fromMenu

dotCover 提供 Command Line 的支援,整合自動化建置這一關是沒問題的,不過我在實作的時候仍然有碰到一些問題,不用怕 dotCover 也有技術支援,回應速度算蠻快,問題很快就解掉了。

[TFS 2015] 實作 Build vNext 自動部署 SpecFlow 和 Pickles 測試報表

前面幾篇介紹使用 SpecFlow 和 Pickles 指令碼產生 cucumber/gherkin  的測試報表,請參考:
https://dotblogs.com.tw/yc421206/2016/04/25/specflow_pickles_live_document
https://dotblogs.com.tw/yc421206/2016/04/26/specflow_pickles_live_document_command_line

今天,我要搭配 TFS 2015 Build vNext 自動產生測試報表,以下是我的演練。

PS.雖然說,手動產生測試報表已經完成了,但還是花了很多的時間調整指令碼路徑的處理。