摘要:
海報:Silverlight 1.1
閱讀全文
posted @ 2007-05-06 20:47
Silent Void
閱讀(432)
推薦(0)
摘要:
目前也有一些技術可以支持我們將合理假設明確化,例如測試驅動開發(Test-Driven Development,TDD)和基于契約設計(Design by Contract,DBC)。但是有誰知道設計的使用者會作出什么樣的合理假設呢?大多數這樣的假設都很難預料。如果我們預測所有的假設的話,我們設計的系統可能也會充滿不必要的復雜性。PPP一書中推薦的做法是:只預測那些最明顯的違反LSP的情況,而推遲對所有其他假設的預測,直到出現相關的脆弱性的臭味(Bad Smell)時,才去處理它們。我覺得這句話還不夠直白,Martin Fowler的《Refactoring》一書中“Refused Bequest”(拒收的遺贈)描述的更詳盡:子類繼承父類的methods和data,但子類僅僅只需要父類的部分Methods或data,而不是全部methods和data;當這種情況出現時,就意味這我們的繼承體系出現了問題。例如上面的Rectangle和Square,Square本身長和寬相等,幾何學中用邊長來表示邊,而Rectangle長和寬之分,直觀地看,Square已經Refused了Rectangl
閱讀全文
posted @ 2007-05-06 12:58
Silent Void
閱讀(2481)
推薦(2)
摘要:
“你不必嚴格遵守這些原則,違背它們也不會被處以宗教刑罰。但你應當把這些原則看成警鈴,若違背了其中的一條,那么警鈴就會響起。” ----- Arthur J.Riel
閱讀全文
posted @ 2007-05-04 14:26
Silent Void
閱讀(1146)
推薦(0)
摘要:
O(1)判斷無符號整數x是否是2的冪;
O(1)判斷一個無符號整數是否為2^n-1的形式;
O(1)求整數能被最大的2的冪(?)整除 : 析出最右側為1的位;
計算整數中有多少個為1的位;
獲取下一個具有同樣數量的1位的更大的數;應用:在用位串表示集合的子集時
閱讀全文
posted @ 2007-04-24 13:10
Silent Void
閱讀(1220)
推薦(0)
摘要:
過濾或轉義危險字符;
參數化SQL查詢或存儲過程;
使用最小特權;
在服務器上處理錯誤;
閱讀全文
posted @ 2007-04-21 21:07
Silent Void
閱讀(725)
推薦(0)
摘要:
默認情況下,C#編譯器會在引用類型上運用[StructLayoutAttribute(LayoutKind.Auto)]特性,即按照CLR認為的最佳方式來排序實例中的字段順序;當運用[StructLayout(LayoutKind.Sequential)]特性時,CLR會按照字段成員在被導出到非托管內存時出現的順序依次布局,但我的測試結果是:貌似使用LayoutKind.Sequential與使用LayoutKind.Auto的結果相同;當運用[StructLayout(LayoutKind.Explicit)]時,我們可以自己設置實例中字段的位置。
在32位的計算機上,默認情況下,對于引用類型的實例,CLR總是按4byte進行內存對齊。
閱讀全文
posted @ 2007-04-17 16:42
Silent Void
閱讀(7044)
推薦(0)
摘要:
前面10篇介紹了使用dOOdads做ORM映射的基本使用方法和我在使用過程中的總結的一些技巧,這里我再對dOOdads項目做一個概要的總結:
1. 使用dOOdads的概要步驟:詳細步驟及我在使用中遇到的問題,我以前都有記錄http://www.rzrgm.cn/happyhippy/category/79938.html
2. dOOdad的架構:
閱讀全文
posted @ 2007-04-16 16:38
Silent Void
閱讀(4654)
推薦(0)
摘要:
Web Parts的功能是相當強大的,如果兩個Web Part之間不能通訊,那就相當郁悶的,所以Asp.Net提供了兩種方式來使得Web Part之間可以互相通訊,一種是靜態通訊方式,另一種時使用ConnectionZone進行動態通訊。(這里所謂的“Web Part通訊”是指多個WebPart中用戶控件之間的通訊)……
閱讀全文
posted @ 2007-04-14 12:50
Silent Void
閱讀(1741)
推薦(0)
摘要:
Web Parts連SqlServer的解決辦法是:(1) 在VS2005的命令行下運行aspnet_regsql.exe,根據“Asp.net SQL Server Setup Wizard”向導來在SQL Server 2005中創建aspnetdb數據庫(當然也可以用此方法在其他版本的SQL Server數據庫中創建aspnetdb數據庫);(2) 在web.config文件中修改connectionStrings配置節如下:
閱讀全文
posted @ 2007-04-13 19:17
Silent Void
閱讀(2707)
推薦(0)
摘要:
MSDN中解釋bool與Boolean的關系是:“bool 關鍵字是 System.Boolean 的別名”。觀察上面的Boolean類型定義,在其繼承的泛型接口和成員變量中,我們找到了“bool”的影子(我想可能時Reflector將IL代碼反匯編時將類型Boolean翻譯成C#中的關鍵字bool),也就是說Boolean的定義依賴與bool(Boolean)。這就好比雞蛋與雞,到底是先有雞蛋還是先有雞?到底是先有Boolean的類型定義還是先有Boolean類型呢?
閱讀全文
posted @ 2007-04-12 16:58
Silent Void
閱讀(2092)
推薦(0)
摘要:
默認(LayoutKind.Sequential)情況下,CLR對struct的Layout的處理方法與C/C++中默認的處理方式相同,即按照結構中占用空間最大的成員進行對齊(Align);
使用LayoutKind.Explicit的情況下,CLR不對結構體進行任何內存對齊(Align),而且我們要小心就是FieldOffset;
使用LayoutKind.Auto的情況下,CLR會對結構體中的字段順序進行調整,使實例占有盡可能少的內存,并進行4byte的內存對齊(Align)。
閱讀全文
posted @ 2007-04-12 16:58
Silent Void
閱讀(6056)
推薦(2)
摘要:
值類型實例的創建位置;引用類型實例的創建位置;托管對象被引用的七種途徑;托管對象在托管堆上的結構
閱讀全文
posted @ 2007-04-12 06:07
Silent Void
閱讀(6519)
推薦(3)
摘要:
SOS(Son of Strike)擴展調試器可以用來顯示CLR數據結構的內容。SOS是作為.net framework的一部分安裝的(SOS.dll),位于%windir%\Microsoft.NET\Framework\v*.*.****(版本號)\目錄下。在使用SOS(加載SOS.dll)進行調試的步驟
閱讀全文
posted @ 2007-04-11 03:34
Silent Void
閱讀(7840)
推薦(2)
摘要:
優先選擇強異常安全保證;最小化互操作;優先選擇安全代碼;掌握相關工具與資源;為C#2.0做準備;了解ECMA標準
閱讀全文
posted @ 2007-04-11 01:04
Silent Void
閱讀(549)
推薦(0)
摘要:
重寫函數優于事件處理器;理使用.NET運行時診斷;使用標準配置機制;定制和支持數據綁定;使用.NET驗證;根據需要選用恰當的集合;優先選擇DataSet,而不是使用自定義結構;利用特性簡化反射;避免過度使用反射
閱讀全文
posted @ 2007-04-09 23:21
Silent Void
閱讀(662)
推薦(0)