原创 領域驅動設計之代碼優先-架構描述 (翻譯)

Microsoft – Spain團隊有一個很不錯的“面向領域多層分佈式項目”案例:Microsoft – Domain Oriented N-Layered .NET 4.0 App Sample(在本系列文章中,我使用NLayerAp

原创 領域驅動設計之代碼優先-領域層設計-10 (翻譯)

3.14.- 創建POCO代理   如果想要啓用POCO實體的延遲加載和實體框架跟蹤類的變化,你的POCO類必須滿足該主題的需求,這樣 實體框架就可以在運行時創建POCO實體的代碼。代理類從你的POCO類型中派生、 3.14.1.- P

原创 領域驅動設計之代碼優先-領域層設計-2 (翻譯)

2.2.- 領域層的要素   在本章,我們簡單解釋每種元素的職責:    2.2.1.- 領域實體   這個概念代表了實體模式的實現。   實體表示領域對象,主要由對象的標識和連續性定義,並不只是由組成對象的屬性定義。   實體一般和主要

原创 領域驅動設計之代碼優先-領域層設計-6 (翻譯)

3.2.- 使用實體框架的領域實體   EF 4.1提供了下面的選則來實現實體: - 按照模型優點或者數據庫優先的方法: o  指令性實體(於EF的基類和實體對象模板耦合)需要使用部分類來添加實體邏輯。 o  自跟蹤實體連上基於對象上下

原创 領域驅動設計之代碼優先-領域層設計-7 (翻譯)

3.6.- 實體類的領域邏輯(非貧血領域)     在領域驅動設計中需要把邏輯關聯到實體的內部操作中。如果實體類只是用來數據結構,所有的領域邏輯都放在 領域服務中,這會構成一個反模式叫做”貧血領域模型“。見http://www.mart

原创 領域驅動設計之代碼優先-領域層設計-8 (翻譯)

3.9.-  領域實體的”數據註解“   目前爲止我們讓EF使用默認的協定發現模型,但有時候當我們的類不按照協定,我們需要進行更多的配置。 就像我們提到的,有兩個選擇;我們先看數據註解然後看”Fluent API“。   假設我們的Ba

原创 領域驅動設計之代碼優先-領域層設計-1 (翻譯)

1.- 領域       本節描述了領域邏輯層的架構和設計領域層時需要考慮的重要準則。 領域層負責展示業務,業務流程的狀態和領域規則的實現。也應該包括反映業務流程的狀態,甚至 當技術存儲的細節交給較低層的基礎設施(倉儲庫等)時。 ”領域模

原创 如何將枚舉綁定到DropDownList上

private void ListType()         {             drpStatus.Items.Clear();             drpStatus.DataSource = ListTypeForEn

原创 領域驅動設計之代碼優先-領域層設計-4 (翻譯)

2.4.-  領域層設計的注意事項   當設計領域子層時,軟件架構的主要目標應該是最小化複雜性,把不同的任務分到不用的地方。我們在每個 地方設計的組件都應該針對該特定區域,不應該包含其他區域的相關代碼。   在設計業務層時下面的準則應該

原创 領域驅動設計之代碼優先-領域層設計-11 (翻譯)

3.16.- 實現值對象   值對象有下面的特徵: -  沒有標識符的概念 -  有相同值的兩個值對象視爲相等 -  不可變   一個值對象其實是一組屬性。一個簡單的.NET值對象可能如下。它還和EF代碼優先不兼容,因爲它像一個 複雜類

原创 領域驅動設計之代碼優先-領域層設計-9 (翻譯)

3.11.- ‘Fluent API’和領域實體   我們應該使用代碼優先‘Fluent API’來改變/自定義實體映射,然而,它必須重寫DbContext方法。 特別地,我們必須重寫”DbContext OnModelCreating

原创 .NET彈出提示點擊確定之後再跳轉頁面的方法

Response.Write("<script>alert('添加成功');location.href='admin_managecolumn.aspx';</script>");

原创 領域驅動設計之代碼優先-領域層設計-5 (翻譯)

3.1.- 實現領域實體   第一步我們要選擇實現領域實體的技術。實體用來保存和管理應用中的主要數據和邏輯。簡言之,領域實體 包含並通過屬性來獲得值,同時也可以有實體內部業務邏輯的類。   下面的子圖我們着重了領域層中實體的位置:

原创 領域驅動設計之代碼優先-領域層設計-3 (翻譯)

2.3.-  工場模式       當創建一個對象或整個聚合時,會變得複雜或揭示了太多的內部結構,工廠提供了封裝。創建其它對象的程序元素叫做工廠。       如果創建的對象並不簡單或者需要要做很多驗證,在創建期間檢查一些對象,建議使用

原创 遞歸填充TreeView

 //填充TreeView控件        private void CreateTree(TreeNodeCollection trNC, int paNodeID)        {                        f