|
|
2005年9月4日
摘要:
最近大家在園子可能看到了不少有關Aop的文章, 也許尚有很多人不知AOP為何物, 或許有人認為AOP就是方法攔截. 不管你現在對AOP的認識如何, 希望在本系列的文章中和我共同加深對AOP的理解. 漸漸地你會發現編程的思想已經開始有了新的變化...如果你不知道什么是AOP, 那么你聽說過Design Pattern嗎? 如果你覺得DP很神奇, 那么我告訴你AOP將改變DP的樣子.如果你不知道什么是... 閱讀全文
2005年8月18日
摘要:
在很多場合下, 你需要在主(UI)線程中運行一些比較耗時間的任務,比如以下的任務 l Image downloadsl Web service invocationsl File downloads and uploads (including for peer-to-peer applications)l Complex local computationsl Database transact... 閱讀全文
摘要:
通過和呂震宇和wayfarer對Visitor模式的討論,加深了對Visitor模式的理解. 整個學習過程如下, 希望對想了解Visitor模式的朋友有所幫助.同時感謝博客園提供的良好學習環境. 介紹 存在的問題 不可愛的Visitor 如何讓Visitor變的可愛1 如何讓Visitor變的可愛2 關于雙重分派 Double-Dispatch and Visitor Pattern 閱讀全文
2005年8月15日
摘要:
在談具體實現前 先介紹一下三種事務:1. 單對象單資源2. 多對象單資源3. 多對象多資源(分布式事務, 使用兩段提交協議)在ADO.Net1.0下有兩種使用Transaction的方法. 一種是在需要事務的對象中顯式的調用事務處理, 還有一種是使用Enterprise Service的聲明式的方法.第一種方法的示例代碼如下: publicvoidTransactionTest(){stringc... 閱讀全文
2005年8月8日
摘要:
讓我們從一個計算工資的老例子說起. 不同的員工有各種不同的工資計算方法, 這種情況下如何為全公司的員工計算呢? 想想現實中的情況, 在公司可能有一個會計部,每到發薪的日子. 會計部就會把全公司的員工資料集中到一起, 看看張三是什么類型的員工, 如果是小時工就按小時工來計算,如果是辦公室主任就按主任的方法來計算. 基于這樣的考慮, 我們在建模的時候也會相應的建立一個類似于會計部的類, 其中定義了一個... 閱讀全文
2005年8月6日
摘要:
Include Only the Primary Key Columns, last in winInclude All Columns in the WHERE ClauseInclude the Primary Key and Timestamp Columns(Recommended)4. Include the Primary Key Columns and Modified Column... 閱讀全文
2005年8月2日
摘要:
Martin Fowler昨天發布了一篇有關Collection Closure的文章, 文中以Ruby為例展示了Collection Closure的強大,方便. 對照著他的例子, Demo了一下在C#中如何實現類似的功能.Example 1employees.each do |e| e.doSomething end31 employees.ForEach(delegate(Employee ... 閱讀全文
2005年7月29日
摘要:
當單元測試需要對數據庫執行CRUD(Create,Retrieve,Update,Delete)操作時,測試過后會在我們的數據庫中留下大量重復的垃圾數據,這些垃圾很礙眼不是嗎?而且我們的下一個測試有可能因為這些垃圾產生一些錯誤。那么我們要如何處理這些垃圾數據和保證測試的穩定的呢?顯然,我們需要在每次測試之前和測試完成之后讓數據庫都保持相同的狀態。換句話說,就是我們需要"undo"這些在測試中對數據... 閱讀全文
2005年7月25日
摘要:
如果你想為一個線程傳入變量你怎么辦? ThreadStart可不支持帶參數的方法.所以你無法使用Thread來啟動一個帶參數的方法.. ThreadStartmyThreadDelegate=newThreadStart(ThreadMethod);//publicdelegatevoidThreadStart();ucan'tpassaParameterThreadmyThread=newThr... 閱讀全文
2005年7月20日
摘要:
任何事情如果有先行之人對你加以指引, 那么對你無疑將起到巨大的作用,而且這種作用往往不是以+的方式,而是*的方式推動你的前進. 在學習面向對象,模式以及設計的路上, 如果你有興趣,希望我能給你一點指引. 我不知道大家上班以后是否還讀書,又或者每個月讀幾本書. 不管怎樣, 我還是強烈建議你每個月去讀一本書(不一定要讀完). 在有了項目經驗的情況下, 讀書會讓你有更快的提高速度. 下面是我的推薦書目:... 閱讀全文
2005年7月15日
摘要:
在cnblogs已經住了很久了, 竊以為這里是國內最好的.Net社區(博客堂由于某些原因排除在外,如果你還知道更好的請告知一二). 不過經過觀察發現這里最受歡迎,最受關注的是關于控件以及象本文這樣和技術關系不是太大而在非技術上很有爭議的隨筆.(理由是該隨筆的閱讀量和評論量,尤其是評論量) 在alphatom閱讀量評論量最高的文章也是一篇關于asp.net視頻聊天控件的. 這個結論既讓人想不到,也在... 閱讀全文
2005年7月8日
摘要:
面向對象技術已經達到它的頂峰, 在新的技術到來之前, 對已有技術的反思無可避免.最近正在閱讀<<Software Factory>>,其中不乏一些精彩的觀點, 結合自己的體會寫了下文.在此希望大家也發表一些個人觀點, 一起思考一下.http://idior.cnblogs.com/articles/188936.html 閱讀全文
2005年7月4日
摘要:
近日 有關o/r m的討論突然多了起來. 在這里覺得有必要澄清一些概念, 免的大家討論來討論去, 才發現最根本的理解有問題.本文并不保證所有觀點正確, 只是個人在某一特定時期的理解.1. 何謂Entity?實體(類似于j2ee中的Entity Bean)通常指一個承載數據的對象, 但是注意它也是可以有行為的! 只不過它的行為一般只操作自身的數據. 比如下面這個例子:classPerson{stri... 閱讀全文
2005年5月22日
摘要:
前段時間寫了一篇隨筆介紹了一下AssertThat的用法. 今天突發奇想由此聯想到了測試代碼的復用. (哈,我也會突發奇想了)其實在編寫測試案例的過程中有很多的測試方法僅僅是因為換了一個對象我們就要重寫一次,當然你可以使用Ctrl+C,Ctrl+V.不過這顯然是一個Bad Smell. 有沒有什么改進的方法呢?看看AssertThat的結構. Assert.AssertThat(3, Betwee... 閱讀全文
2005年5月15日
摘要:
厭煩了Assert.AreEqal();等等一堆的Assert類中的靜態方法了嗎?
偶然覓得下面這個奇思妙想.
AssertThat(something, Equal("Hello"));
閱讀全文
2005年5月11日
摘要:
下面這段代碼為什么無法編譯? usingSystem; usingSystem.Collections.Generic; usingSystem.Drawing; namespaceGenicTest { classProgram { staticvoidMain(string[]args) { ... 閱讀全文
2005年4月29日
摘要:
在網絡通訊的編程中我們經常使用到Socket, 這種情況下我們往往需要長期的監聽某個端口, 以獲得相應的Socket, 然后再利用它進行相關操作. 但是這樣的話, 主線程就會被阻塞.無法對其他時間做出相應. 其實在.Net的Socket類中提供了對異步操作的支持. 下面將介紹其基本原理, 以及利用它做的一個P2P的實現. 詳見文章 閱讀全文
2005年4月17日
摘要:
舉一個NHibernate的例子 ISession session; ITransaction tx; try { session = factory.OpenSession(); tx = session.BeginTransaction(); // do database work tx.Commit(); session.Close(); } catch (Exception ex) { ... 閱讀全文
2005年4月14日
摘要:
你了解創建者模式了嗎? 我準備從How 和 Why 這兩個角度來談談我對創建者模式的理解. How to implement Factory and Abstract Factory 對于創建者模式, 有一點很容易被大多數人所忽視所誤解, 就是Factory模式和Abstract Factory模式的區別. 他們的最重要的區別不是在于Abstract Factory是用于... 閱讀全文
2005年4月8日
摘要:
G#是一種基于.Net平臺的一門新的語言, 它可以在編譯期以及運行期為原有的代碼注入新的代碼. 并且新的代碼同樣能保證.net平臺下的類型安全性. 和CodeSmith不同的是 它的代碼生成技術是為已有的代碼添加新的功能, 也就是目前AOP技術所要實現的目標. 如果你使用過Aspectj就會發現它語法的丑陋, 而G#的語法是C#2.0的一個子集,看上去非常的容易理解.并且G#是基于.Net的IL語... 閱讀全文
摘要:
Cω是微軟研究院對下一代語言的探索。它擴展了C#的功能,更好的支持數據訪問(SQL和XML)和并發控制。 Cω的希望能方便的開發出更加可靠且維護性更好的軟件,其中一個重要的概念就是"盡早的發現錯誤"。 在下面的一個數據庫查詢的例子中將很好的體現出這一點。 現在我想得到一個在某個城市的員工名字的列表。(就使用SQL-Server預裝的Northwind數據庫) 下面給出最簡單的實現: ... 閱讀全文
2005年3月29日
摘要:
1.Refactory away External Loops盡量將集合遍歷的操作放在集合內 2. Reduce Private Method盡量減少私有方法 3. Open-Close Principle 封閉開放原則 4. Specif... 閱讀全文
2005年3月26日
摘要:
在.net下實現Singleton,估計很多人都知道了.下面的代碼可以說經典. classMySingleton { privatestaticMySingletoninstance=newMySingleton(); publicstaticMySingletonInstance{get{returninstance;}} ... 閱讀全文
摘要:
效果如圖: 1. 打開你的VS.Net安裝目錄(默認C:\Program Files\Microsoft Visual Studio .NET 2003) 2. 進一步打開\VC#\CSharpProjectItems\LocalProjectItems,然后編輯LocalProjectItems.vsdir文件,在文件的末尾加上 ..\CSharpAddInterface... 閱讀全文
2005年3月17日
摘要:
本文繼續系列一詳細介紹了有關Lucene.net索引添加刪除更新的詳細內容.并給出了所有的TestCase供學習參考. http://www.rzrgm.cn/idior/articles/120734.html 閱讀全文
摘要:
本文介紹了什么是Lucene,Lucene能做什么. 如何從一個文件夾下的所有txt文件中查找特定的詞? 本文將圍繞該個實例介紹了lucene.net的索引的建立以及如何針對索引進行搜索.最后還將給出源代碼供大家學習. http://www.rzrgm.cn/idior/articles/120301.html Lucene系列文章 閱讀全文
2005年3月10日
摘要:
產生隨機數最重要的在于seed的選取. 通常情況下使用的是系統的時間,不過對于某些快的cpu,這種方法產生的隨機數也會重復. 利用GUID的Hashcode作為seed,倒不失為一個簡單有效的方法. 具體請見alphatom 閱讀全文
2005年3月6日
摘要:
最近看了看 Contributing to Eclipse , 很好的一本書. 看的過程中聯想到wayfarer以前寫的《讓僵冷的翅膀飛起來》 突然有很多新的想法,詳見 http://www.rzrgm.cn/idior/articles/113958.html 閱讀全文
2005年3月4日
摘要:
看看你的基礎如何,對vitual new override關鍵字了解嗎? http://www.rzrgm.cn/idior/archive/2005/03/04/113143.html 閱讀全文
摘要:
還記得里面的那只蝴蝶嗎? 這是一個很簡單很丑陋的畫圖程序,你將親眼看著它從毛毛蟲變成蝴蝶。涉及內容: GDI+, 重構,State 模式 GDI+重構(2) 模式(3) 閱讀全文
2005年3月2日
摘要:
C#和VB.net的語法相差還是比較大的. 可能你會C#,可能你會VB. 將它們倆放在一起對比一下你就會很快讀懂,并掌握另一門語言. 相信下面這張圖會對你幫助很大. 閱讀全文
2005年2月28日
摘要:
Adrian Colyer在他的一篇隨筆用最簡單的話闡述了AOP的思想,其中concept:implment的概念讓人眼前一亮. 在設計中捕獲的概念和需求,在這個軟件進化的過程中,往往也是發生變化的最小單元。一個設計到實現的1-1的映射是可以很容易的添加、刪除、維護的,而一個1-n的映射相對來說就難得多,因為一個概念發生變化,你必須去更新很多地方——而且你必須保證一個不漏的改到,而且必... 閱讀全文
2005年2月26日
摘要:
在.net 1.1下一個比較好的方法是(經寒楓提示) usingSystem; namespaceidior { publicclassTested { #if(DEBUG) public #else private #endif stringPrivateMe... 閱讀全文
2005年2月23日
摘要:
You should use Hibernate if you have a nontrivial application (definition of nontrivial varies, but I usually think of Hibernate being less applicable to applications with only ten tables or so) that ... 閱讀全文
摘要:
ORm 不是全為了實現 domain model 將數據和行為分離也是一種思想,這時會使用manage/service model 而manager model也需要object,在object中可以做一些和數據相關的事,比如驗證.這樣也需要一個ORm的工具. 所以ORm 并不是和domain model綁在一起的. 閱讀全文
2005年2月5日
摘要:
O/R Mapper 是什么?能為我們帶來什么? O/R Mapper 和Code Generator的區別是什么? 使用O/R Mapper 的動態SQL語言和使用Store Procedure的利弊. O/R Mapper使用Attribute還是Mapping file?各自的利弊. 閱讀全文
摘要:
推薦一款小工具http://www.sellsbrothers.com/news/showTopic.aspx?ixTopic=1646 閱讀全文
2005年2月3日
摘要:
前天寫了一篇有關Delegate的隨筆,隨后又看了看呂震宇的一篇相關隨筆.發現Delegate有些問題. Delegate就是接口,我是這樣理解它的. 后來發現Delegate比起接口可以"亂用".因為它只要方法的簽名一樣就可以替換.比如下面這個例子. publicclassClient { publicdalegateintAddHandle(int... 閱讀全文
摘要:
最近在玩TDD,發現要構造一個有很多值域的對象供測試使用,如果每個值域都提供設置函數,顯然不太好(破壞了它的封裝性) 但是如果為它寫一個構造函數,就會有另一個問題,該構造函數只會在測試中使用.(因為實際構造這個對象是通過數據庫的). 就有了題目上所寫的問題,專門為測試寫構造一個構造函數,是否合適? 大家發表一下意見. 閱讀全文
|