Moles - Isolation framework for .NET(假.Net)介紹

Moles是前陣子91大推薦我用的Mock的Framework,它跟Moq與Rhino.Mocks這類的套件不同,Moq與Rhino.Mocks這類的Mock是對Interface或Abstract Class做Mock,而Moles是Mock整個CLR(Common Language Runtime),破除Moq等Mock套件的限制,非Interface或Abstract Class也可以Mock,而且還可以對Static Method來Mock,如DateTime.Now或File.Open等等Static Method,使原本在開發時不用為了方便測試而過度設計(如小弟之前為了方便測試,把DateTime又加了一層DateTimeProvider,當我看到這Framework後,就覺得我之前的作法非常的無聊,可參考Unit Test小技巧 : DateTime的Stub)。

...繼續閱讀 »

Visual Studio 2010 Feature Packs 2之Silverlight自動化測試

在Visual Studio 2010上市沒多久後,很高興它推出了Coded UI的自動化測試,那時我的專案是跑Silverlight,要錄制時出現不支援的錯誤,只好又乖乖的自己當人工測試機,不過前幾天看到微軟推出Visual Studio 2010 Feature Packs 2套件,其中有一項功能是Create coded UI tests for Silverlight 4 applications,就興高彩烈安裝玩一翻。

...繼續閱讀 »

[小東西].Net 4.0增加的ObservableCollection類介紹

  • 27211
  • 0
  • .Net
  • 2010-11-04

System.Collections.ObjectModel.ObservableCollection不是什麼新鮮的東西,早在幾年前,就存在Silverlight與WPF中,它跟一般的Collection最大的不同地方在,它可以被監控,當集合有所變動,會產生事件,可以控制變化,如UI亓件需要監控集合,當變動時UI必需有所調整,或新增資料到集合中,要做一些初始化的動作等等。

...繼續閱讀 »

[小技巧].Net Framework 4.0 Enum新增的HasFlag方法

我想很多人會習慣用Enum作為旗標,因為同樣是以邏輯And與邏輯Or運算,會比用Int來的好閱讀,並竟誰會知道1、2、4代表什麼東西,尤其專案更多旗標時更難分辦,用Enum因為可以具名化,以文字來代替數字,很容易就可以了解數字代表的意義,不過在.Net Frameword 4.0之前要對Enum作運算,寫的比較多,較為麻煩,也曾寫過ExtensionMethod來簡化作業,不過.Net Frameword 4.0有內建的,就用內建的吧。

...繼續閱讀 »

jQuery事件處理系列-bind與live

  • 62268
  • 0
  • Web
  • 2010-10-21

jQuery的最底層的事件綁定有二個,bind與live,這二個function的差異在bind是針對HtmlElement綁定,而live是對HtmlDocument綁定,使用live時會將selector與事件函式儲存,當任何HtmlElement發生事件都會同時引發HtmlDocument的事件,會檢查引發事件的HtmlElement有沒有符合儲存的selector,符合才會呼叫事件處理函式。

...繼續閱讀 »

繼承時,用new修飾詞的陷阱,覆寫property時的錯誤

有一次寫Code時,因為要寫泛型與非泛型的類別,為了多型所以泛型繼承非泛型,在將其中要泛型的property用new覆寫,可是執行實一直發生NullReferenceException,追縱下原來是用錯了property自動實作寫法,而且沒想到前幾天我的同事也跟我犯了同樣的錯誤。

...繼續閱讀 »

用@font-face讓Opera Mobile 10顯示音標

  • 15565
  • 0
  • Web
  • 2011-01-21

我的英文因為不是很好,所以前些日子寫了一個放在Google App Engine,抓Google Dictionary的資料來,背單字小工具,最近增加手機版的,但是音標一直都無法顯示,我在我的Window Mobile 6.5上安裝了N個字型,改機碼都不行,試了好幾天快放棄時,我突然想起來我有一次問我們的設計師,在頁面中加上@font-face的用意何在,她叫訢我因為頁面有的字型在有些電腦可能沒有安裝,但下@font-face語法可以讓瀏覽器,下載字型,讓文字可以正確顯示,所以我就嘗試了@font-face,沒想到音標終於在我的Opera Mobile 10上正常顯示了。

...繼續閱讀 »

用EventLogReader查詢特殊EventLog

最近在寫Windows Task Scheduler相關的功能,想取某Task的EventLog,但用System.Diagnostics.EventLog只能取得基本的EventLog,後來發現應該要使用System.Diagnostics.Eventing.Reader.EventLogReader,而且EventLogReader可以下查詢,過濾出所需的資料。

...繼續閱讀 »

C#仿Oracle Decode,將ValueType對應成String

在寫Page,有時會有int、bool等等要轉成文字輸出,如: <%: item.Enable ? "啟用" : "停用" %>,用? : 處理雖然方便,但如果要轉換的String加上二個以上,就非常難處理,可是Page的這三個<%: %>、<%= %>、<%# %>語法,不能用if或switch,因為有用過Oracle,很喜歡它的Decode函式,所以我就自己寫一組Extension Method來處理。

...繼續閱讀 »

[小技巧]Entity Framework強型別Include

  • 17380
  • 0
  • .Net
  • 2011-04-10

在Entity Framework中如果不設定為Lazy Loading Enable=true,勢必要自己處理關聯資料的載入,如:用Load或Include的,但因為Include的參數是用string,個人很討厭沒有IntelliSense,且String不小必改了TableName後,工具不易找到錯誤,所以小弟我寫一個Extension Method來擴展。

...繼續閱讀 »

Visual Studio 單元測試的3種Initialize與Cleanup

Visual Stuido的單元測試有3種Initialize與Cleanup,讓開發測試時,可以在TestMethod執行前做一些初始化,結束後做一些清除,而這3種Initialize與Cleanup各針對了不同時期,如:我猜鮮少人知道的Assembly的Initialize與Cleanup,是在一個測試專案的所有TestMethod執行前呼叫Initialize,與一個測試專案所有TestMethod結束後呼叫Cleanup。

...繼續閱讀 »

ASP.NET MVC TempData使用心得

在看TempData的說明時,有人說用一次就刪除,有人說一個Request就結束,在道聽途說下,有一次我的Code就出了Bug,一直死在TempData,最後看Source Code才發現,我對TempData的認知出了錯誤。

...繼續閱讀 »

小技巧:專案切換32與64位元組件

最近的一個專案中,有用到一個組件有分32位元與64位元的組件,如Chilkat .NET,因為Visual Studio 2010是32位元,如果開發時用64位元的組件,會發生一些問題,如AspNetCompiler編譯失敗,還有MVC專案的View,在Design時發生載入組件錯誤,使得無法使用IntelliSense,所以開發時沒辦法只能用32位元的組件,但佈署時又不希望人工去替換組件,怎麼辦呢?

...繼續閱讀 »