Unit Test小技巧 : DateTime的Stub

為什麼要寫一個DateTime的Stub呢?

在有些情況必需判斷今天,如不同的節日,不同的Logo,因為System.DateTime.Now或Today,沒有辦法模擬,寫Unit Test時就沒有辦法測各個時間點的反應,總不可能做個測試要改系統時間吧。

...繼續閱讀 »

Expression應用:把它當參數用

在寫商業層(Business Logic Layer)或資料存取層(Data Access Layer),最覺得麻煩的是,明明是同樣的資料要出輸,要為個個不同的需求做條件篩選,每一個條件都要寫成一個參數,然後一堆的if判斷,而以多一個條件又要多一個參數,或是寫一個新的Method,不小心還會影響其他地方,我覺得是一個焦油坑,就在思考有什麼方式比較好,就讓我想到Linq的方式,用Expression。

...繼續閱讀 »

Entity Framework批次Update與Delete

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

用Linq To Sql或Linq To Entity Framework,在Select方面用起來有如神助飛快的方便,但在批次Update或Delete方面就遜色很多,完全就如Ado.Net時期下SQL一樣,沒有物件導向可言。

本篇將介紹如何用挖出Entity Framework的Metadata,以Expression的方式組成Sql。

...繼續閱讀 »

TFS 2010 封閉簽入(Gated Check-in),拒絕Build失敗的程式碼簽入

  • 27447
  • 0
  • TFS
  • 2010-08-21

封閉簽入是Team Foundation Server 2010新增的功能,開啟這個功能後,所有的要簽入的程式碼先上傳到擱置集(Shelveset),然後在Bulid Sever中下載原始碼並Build成功後,才會真的簽入變更集(Changeset),這樣可以確保每一個簽入的都是可以Build的,在多人開發時不會照成一個人簽入不完成的程式碼,使其他所有人都無法在Build,照成其他的開發的困擾,如果在搭配單元測試做自動化測試,可以大幅增加程式碼的正確性。

...繼續閱讀 »

Silverlight 4使用Domain Service做資料快速存取

在Silverlight 4之前要做到資料存取,必需在後端寫Web Services,讓Silverlight呼叫,Select、Update、Delete、Insert可能要寫4個Method,10個Table要存取最少就要寫40個Method,雖然Ajax也是這樣寫,不過還有一個jQuery可以用,但Silverlight卻沒有(雜七雜八的第三方有啦),寫起來有種被折磨的感覺。

Silverlight 4比較好就是新增Domain Service技術,可以自動產生WCF的Web Services存取用Linq或Entity Framework工具拉出來的Table或Entity,在Silverlight專案中也有自動產生Proxy,而且還是不用去管理的Proxy,不用像之前Web Services更新了,還要手動更新Web參考,省了不少功夫。

...繼續閱讀 »

使用Expression做Linq的參數化排序

  • 21183
  • 0
  • .Net
  • 2010-08-24

Linq非常的好用,減少大量的資料庫操作手序,使用具名的類別,減少了在程式中寫SQL寫錯字的可能性,問題來了,如果我想用QueryString中的參數,作為排序的依據,但是因為是具名的類別,不能指定字串,剛開始我是用switch一個一個指定,但欄位一多就覺得這方法很笨,在搜尋更好的方法中發現使用System.Linq.Expressions.Expression可以決解這個問題。 如果各位有仔細看,會發現System.Linq.Queryable下的Method參數都有Expression,如本篇要用的OrderBy。

...繼續閱讀 »

自動判斷時區(TimeZone)與時間轉換之IP address database

  • 30577
  • 0
  • .Net
  • 2012-01-04

前些日子,一個專案因為使用者分散在不同的國家中,所以有一個需求是必需要自動判斷使用者所在的時區,將時間轉換成當地時間,有找到幾個方案,其中使用IP address database是比較簡單的,有很多公司有推出IP對應的國家、地區、時區,大部分都要錢,不然就是免費版本的資料量不多,剛好有找到一家完全免費的IpInfoDB,本篇分享如何用此資料庫完成時區轉換。

...繼續閱讀 »

Silverlight 4 右鍵選單(ContextMenu)

  • 24547
  • 0

在silverlight 3 時必需要寫javascript才能做到右鍵選單,到4的時候省了javascript這一步驟,但後序的處理,還沒有像window form可以拉拉control就可以做到,要自己處理popup的open、close、選單的樣式、事件等等,很麻煩,也應此各式各樣第三方套件就出來了,像silverlight 4 toolkit中的contextmenuservice,不過呢,小弟想自己寫寫做練習,也就有了本篇。

...繼續閱讀 »

ItemsControls的ItemsPanel、ItemTemplate與ItemContainerStyle說明

  • 9125
  • 0
  • 2010-06-18

Silverlight的每一個控件(Control),都有Template可以完整的改變整個控件的樣式,不像HTML只能設定Style,有更大的彈性,想將Button改成像GridView也是可行的,而ItemsControls列表式控件是ListBox與ComboBox的基類,更多了ItemsPanel、ItemTemplate兩種Template,ListBox與ComboBox中又有ItemContainerStyle,有更多的花樣可以變化。

...繼續閱讀 »

不錯的幾個ICON搜尋網站推廌

  • 9387
  • 0

應用程式要讓人看了喜歡,覺得漂亮,必少不了一些圖示,而且應用程式中有些地方用文字表達遠沒有圖示好(如ToolBar),相信也有不少開發人跟我一樣,程式要自己寫,美工也有自己用,小弟我的美術細胞不好,要我自己畫圖跟要我命一樣,不過還好總是有善心的美術設計師分享他的作品,不過這些圖示在Google是非常不好找的,不過到是有幾個搜尋網站專門在收集這些圖示,方便大家使用。

...繼續閱讀 »

Silverlight的事件氣泡(EventBubbling)

  • 14245
  • 0
  • 2010-06-10

元件重疊在一起,當發生滑鼠點擊事件,你發現他會從最上面的元件開始,每個元件都會發生事件,這現像不光只是有在Silverlight中有,Web或Window From也有這現象。
要防止這個現像也很簡單,只要讓MouseButtonEventArgs.Handled值為true就可以了。

...繼續閱讀 »