黃偉榮的學習筆記

軟體的世界變化萬千,小小的我只能在這洪流奮發向上以求立足。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年1月30日

摘要: 有時Web Project會有一些檔案在不同專案間共同使用,如Javascript檔、圖檔、第三方套件等等,如果每一個專案都放置一份,很容易照成維護上的麻煩(如修改A專案的檔案,忘了複製到B專案),這時可以調整一下檔案的結構與修改一下專案的設定來解決這問題(這是小弟最近建方案的心得,不一定是最好的)。 資料夾結構 可以在方案下建立一個方案內專案共用的資料夾,專門放置通用的檔案。 通用檔案的版本管... 阅读全文

posted @ 2011-01-30 02:39 黃偉榮 阅读(776) 评论(0) 推荐(0) 编辑

摘要: IoC(控制反轉)是時下很流行的設計模式,它可以大大的簡少程式之間的相依性,有點像工廠模式,在Class中操作的都是Interface,而Interface與Class的對應與建立實例都是由IoC Framework處理,光是在.Net Framework下的IoC Framework就有近10套,每套都有各自的優缺點,呼叫方式也略有不同,切換IoC Framework是非常麻煩的,或是開發組件(Assembly),組件也是使用IoC,但是又不能限制使用端用特定款IoC Framework,這時候可以考慮使用IoC的中繼器:CommonServiceLocator來解決這個問題。 阅读全文

posted @ 2011-01-30 02:38 黃偉榮 阅读(2249) 评论(0) 推荐(2) 编辑

摘要: 前陣子團隊中有用XmlSerializer將物件轉成XML存檔後,上傳給另一家公司,對方卻一直回報我們XML有問題,用文字編輯器看格式都很正確,但用XML的編輯器卻會出錯,發現原來是BOM害的。 阅读全文

posted @ 2011-01-30 02:35 黃偉榮 阅读(1033) 评论(0) 推荐(0) 编辑

摘要: This is a temporary post that was not deleted. Please delete this manually. (3cc2719a-c1ed-43a1-9fce-d2eb7cfd0299 - 3bfe001a-32de-4114-a6b4-4005b770f6d7) 阅读全文

posted @ 2011-01-30 02:28 黃偉榮 阅读(236) 评论(0) 推荐(0) 编辑

2010年11月26日

摘要: 在用CodedUI寫自動化測試時,我不喜歡用工具產生的代碼(相關資訊可參考手工製Coded UI Test(Visual Studio 2010新的UI自動化測試)),寫久了有一些經驗,例如找到控制項的一些的小技巧。 工具 尋找控制項我也是用Visual Studio 2010內建的CodedUITestBuilder.exe,不過一般的情況下CodedUITestBuilder.exe必需搭配... 阅读全文

posted @ 2010-11-26 00:42 黃偉榮 阅读(624) 评论(1) 推荐(1) 编辑

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

posted @ 2010-11-26 00:38 黃偉榮 阅读(645) 评论(0) 推荐(0) 编辑

摘要: 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也可以Moc... 阅读全文

posted @ 2010-11-26 00:37 黃偉榮 阅读(3687) 评论(2) 推荐(1) 编辑

2010年10月20日

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

posted @ 2010-10-20 22:00 黃偉榮 阅读(537) 评论(0) 推荐(0) 编辑

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

posted @ 2010-10-20 21:59 黃偉榮 阅读(507) 评论(0) 推荐(0) 编辑

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

posted @ 2010-10-20 21:58 黃偉榮 阅读(433) 评论(0) 推荐(0) 编辑

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

posted @ 2010-10-20 21:56 黃偉榮 阅读(834) 评论(0) 推荐(0) 编辑

摘要: 有時會在修改頁面中,檢查頁面的的欄位(text、checkbox、radio、select),沒有沒修改過,如果沒有修改,按下送出,此時是關閉視窗或轉頁,省去post出去,sever檢查與寫資料庫。 這是小弟我自製的jQuery套件,有二種使用方式我是用input的屬性defaultValue、defaultChecked與option的defaultSelected查檢有沒有變更,這幾個值是在... 阅读全文

posted @ 2010-10-20 21:56 黃偉榮 阅读(489) 评论(0) 推荐(0) 编辑

摘要: 因為寫一個豐富Ajax的網站,JavaScript一定會寫很多,有時莫明奇妙的一個HtmlElement Bind二個事件函式以上,可能照成click一次,卻Post二次以上,原因是不同的地方呼叫初始化的函式,所以我就自己寫了一個Plugin去避免這個問題。 範例HTML:JS:說明2-5是設定test1的click 事件函式,以type做區隔,一個type只會Bind一次,所以按下test1,只... 阅读全文

posted @ 2010-10-20 21:55 黃偉榮 阅读(328) 评论(0) 推荐(0) 编辑

2010年10月2日

摘要: 在看TempData的說明時,有人說用一次就刪除,有人說一個Request就結束,在道聽途說下,有一次我的Code就出了Bug,一直死在TempData,最後看Source Code才發現,我對TempData的認知出了錯誤。 原理 在ASP.NET MVC中資料傳遞主要有ViewData與TempData,ViewData主要是Controller傳遞Data給View,存留期只有一個Acti... 阅读全文

posted @ 2010-10-02 01:13 黃偉榮 阅读(1506) 评论(1) 推荐(0) 编辑

摘要: 因為我比較習慣WinMerge這套工具,改用TFS作為版本管理時,有點不適應內建的陽春工具,花了些時間找如何設定,以下是設定的方式。 開啟設定 開啟Visual Studio 選單上,Tools > Options,開啟Options視窗 在Options視窗中,Source Control > Visual Studio Team Foundation Server 選擇C... 阅读全文

posted @ 2010-10-02 01:06 黃偉榮 阅读(437) 评论(0) 推荐(0) 编辑

摘要: 平常我會用Visual Stuido的測試專案,寫一些自動化測試,如單元測試、整合測試等等,受測的Code中有很多地方用NLog記錄訊息,在正試的環境,會寫到資料庫,但測試時我會想把訊息輸出到每一個測試的結果中,除了節省資料庫外,也比較容易追縱錯誤訊息。 NLog設定檔 是.Net中很熱門的Log記錄,使用與設定都很簡單,這裡說明一下測試專案需要的設定檔,我的習慣是寫成獨立的檔案,不過也可以寫到... 阅读全文

posted @ 2010-10-02 01:04 黃偉榮 阅读(706) 评论(0) 推荐(0) 编辑

2010年9月15日

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

posted @ 2010-09-15 01:18 黃偉榮 阅读(817) 评论(0) 推荐(0) 编辑

2010年9月14日

摘要: Linq處理日期的小技巧,你知道嗎?Linq對DateTime的處理如:屬性、方法,是支援轉譯的,原來Linq的DateTime處理可以這樣寫。 測試工具:LinqPad 4.26 測試環境: .Net Framework 4.0 Sql Server 2008 R2(因為手邊沒有2008以下的環境,沒試過在2008以下會怎麼樣) DateTime的屬性如:Date、Year,方法如:Add... 阅读全文

posted @ 2010-09-14 00:34 黃偉榮 阅读(1230) 评论(0) 推荐(0) 编辑

摘要: 為什麼要寫一個DateTime的Stub呢? 在有些情況必需判斷今天,如不同的節日,不同的Logo,因為System.DateTime.Now或Today,沒有辦法模擬,寫Unit Test時就沒有辦法測各個時間點的反應,總不可能做個測試要改系統時間吧。 建立DateTImeProdiver的虛擬類別,來包裝DateTime,有二個實作DefaultDateTimeProdiver是一般的Cod... 阅读全文

posted @ 2010-09-14 00:31 黃偉榮 阅读(564) 评论(0) 推荐(0) 编辑

2010年9月10日

摘要: 為了在編譯時期就可以發現View中的語法錯誤,我們會將MvcBuildViews設成true,但因為公司有使用TFS的MSBuild,會因為環境的關係而產生問題,如無法載入組件。 開啟MvcBuildViews 開啟.csproj檔案,打開的方式常見有這二種 直接用文字編輯器開啟(如Notepad) 載入後在Solution Explorer中專案上右鍵選擇Unload Project,卸載... 阅读全文

posted @ 2010-09-10 01:15 黃偉榮 阅读(1336) 评论(0) 推荐(0) 编辑