發表文章

目前顯示的是 10月, 2014的文章

[SignalR] 實作聊天室功能

圖片
  今天搜尋文章時,看到MSDN有針對SngalR作一系列的悠閒Coding介紹,一時手癢跟著作一遍,來看看到底有多悠閒(誤),由於文章內的SignalR版本是1.1,到2.x後有點小變更,將內容順便整理如下: 安裝Nuget 1.先建立一個空白Web專案。 2.Nuget—>Microsoft ASP.NET SignalR,此套件會順便裝好其他必要套件

[AngularJs] 使用Protractor作前端測試-入門

圖片
    前陣子去Techday時聽這堂課時" DEV 204 使用 AngularJS 在 ASP.NET 專案上開發企業水準的應用 ” ,講師有提到使用Protractor來作前端的單元測試,但他沒介紹如何使用….=.=,為了一解心中疑惑,Survey相關教學後,將相關使用環境、方式整理如下: 什麼是Protractor   它是AngularJs專門用來作前端測試的工具,透過nodejs上的selectium,執行chrome、fiirefox、IE等瀏覽器,來模擬使用者操作行為並驗證你撰寫好的AngularJs程式是否正確。   執行環境 AngularJs: 測試的網頁一定要內含AngularJs,否則會出現沒有Angular的錯誤 ,修正:可以使用browser.driver來撰寫 Java Runtime:selectium的執行環境 http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html NodeJs:Protractor的執行環境 撰寫測試程式 index.html 此檔案會用來測試回應的title index.spec.js 單元測試 程式,如下為使用browser物件執行index.html並取回title作比對是否為預期值 ps:最外頭的describe為描述測試方法的內容 protractor.conf.js 單元測試程式的 定義檔 ,1.baseUrl:指定測試的Url,2.specs指定要測試哪些檔案,如下圖指定spec目錄下所有副檔名為.spec.js的檔案   套件安裝 執行nodejs command prompt 1.protractor安裝 npm install -g protractor 2.webdriver更新 selectium webdriver-manager update ps:for chrome v54的driver 更新 webdriver-manager update --standalone true --versions.chrome 2.24 執行測試 1.

[Expression Tree] LINQ動態欄位查詢-動態代理類別

圖片
  在前一篇文章" LINQ動態欄位查詢 "介紹到使用Expression來作欄位的動態查詢,但此方法有一缺點是因EntityFramework在查詢時,不能回傳與來源型別一樣的結果,所以使用上會變成查ProductEntity但回傳另一型別ProductInfo。若只是基本的單資料表查詢,那倒還好,但在實務上通常會Join到其他資料表後,再回傳一個多個資料表欄位的類別,如下程式查詢 ProductEntity 及 CategoryEntity ,回傳 ProductInfo 。 此時若要再透過前文的 動態查詢欄位方法 ,則必須建立另一個類別才能達到,例 ProductXXXInfo.........,雖然只要新增一個類別再繼承ProductInfo即可以,但之後隨著系統發展越來越大的話,這種為了動態查詢建立的代理類別會越來越多..........。心想手動建立代理類別的方式可以是動態的嗎....?   印象中EntityFramework預設就有使用代理類別來作LazyLoading機制,心想可以參考相關的作法來實作代理類別,在Google搜尋一下後,找到一篇使用ILGenerator來達到此功能。    什麼是ILGenerator? 根據MSDN的介紹,可以透過它在執行時期產生 Microsoft Intermediate Language (MSIL) 指令,建立動態組件、方法和建構函式...等等 ( 詳原文 )。

[Sql Server] 資料庫備份筆記

圖片
  今天與同事討論資料庫備份的一些特性後,與前兩天參考保哥的文章作一些整理。 完整備份 會備份 資料檔 .mdf 及 交易記錄檔 .ldf 作差異備份及交易記錄備份前,完整備份要先作 差異備份 只會備份 資料檔.mdf ,並與最近的一次完整備份作比對來備份有異動過的資料 不會備份 交易記錄檔 .ldf 交易記錄檔備份 只會備份交易記錄檔 .ldf 每次的完整或差異備份後,會 重新開始 交易記錄的起點 每次的備份會與上次的交易記錄作差異的交易記錄備份。 備份後的副檔名為.trn不是.bak