Entity Framework FakeDbSet

為了單元測試,需要作假資料,如果用資料庫來做,就需要考慮測試資料的建立以及 Transaction 的問題,因為建立測試資料後還得刪除。 所以可以使用 Mock 的方式,把 IDbSet 改成使用 InMemory 目前 Nuget.org 就有一個套件,可以幫忙你實作 InMemorySet我目前是安裝 AnotherFakeDbSet,Source 在 Github-AnotherFakeDbSet 這個 Source 的原始版本是 FakeDbSet不過我也覺得 AnotherFakeDbSet 改的不錯,而且因為陸續有推出新版本,所以我自己也是採用這個 Nuget Package     繼續閱讀
metavige (Ricky Chiang)'s avatar
metavige (Ricky Chiang) 3月 25, 2015

log4net Action Log 設定

我之前設定網站執行的 Action Log 的一個記錄,有些東西都是拼拼湊湊出來的,並不見得是最佳版本 log4net 設定檔 12345678910111213141516171819202122232425<?xml version="1.0" encoding="utf-8" ?><log4net> <root> <level value="DEBUG" /> <appender-ref ref="stdout" /> <appender-ref ref="ActionLogRollingFile" /> </root> <appender name="ActionLogRollingFile" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value="action.log" /> <appendToFile value="true" /> <encoding value="utf-8" /> <maxSizeRollBackups value="30" /> <rollingStyle value="Date" /> <datePattern value="'.'yyyy-MM-dd" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="(%date{HH:mm:ss,fff}) [%t] - %u %5property{Duration} %property{StatusCode} %6property{Method} %property{Uri} %m%n " /> </layout> <filter type="log4net.Filter.LoggerMatchFilter"> <acceptOnMatch value="true" /> <LoggerToMatch value="Sample.Web.Filters.WebApiActionFilter" /> </filter> <filter type="log4net.Filter.DenyAllFilter" /> </appender></log4net> 其中要注意的是 log4net.Filter.LoggerMatchFilter: 用來設定特定的 class 記錄才使用這個 Appender acceptOnMatch: 這個設定有點像是 blacklist/whitelist,true 表示有 match 才是,相當於 whitelist LoggerToMatch: 設定要篩選的類別名稱 log4net.Filter.DenyAllFilter: 篩選掉其他的 Log,不會在這個 Appender 裡面記錄     繼續閱讀
metavige (Ricky Chiang)'s avatar
metavige (Ricky Chiang) 3月 25, 2015

JWT

OAuth2 現在已經很多的網站都有實作了,像是 Twitter, Google, Facebook, Github 等網站本身都有支援 OAuth2 的驗證與授權機制 最近因為專案需求,特地去研究了一下有關 Web API 做驗證授權的機制,看到網路上有很多的範例,在講解 AngularJS SPA 的登入作法,想說可以把類似的機制放到 RESTful Service 的驗證上面     繼續閱讀
metavige (Ricky Chiang)'s avatar
metavige (Ricky Chiang) 3月 11, 2015