<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      摘要: 上一篇對Lambda表達式公共操作類進行了一些增強,本篇使用擴展方法對Lambda表達式進行擴展。 修改Util項目的Extensions.Expression.cs文件,代碼如下。using System;using System.Linq;using System.Linq.Express... 閱讀全文
      posted @ 2015-01-06 18:32 何鎮汐 閱讀(1883) 評論(4) 推薦(7)
      摘要: 前面介紹了查詢的基礎擴展,下面準備給大家介紹一些有用的查詢封裝手法,比如對日期范圍查詢,數值范圍查詢的封裝等,為了支持這些功能,需要增強公共操作類。 Lambda表達式公共操作類,我在前面已經簡單介紹過,要么從Lambda表達式中獲取信息,要么動態創建Lambda表達式,本篇直接貼代碼,如果發... 閱讀全文
      posted @ 2015-01-06 18:09 何鎮汐 閱讀(2202) 評論(12) 推薦(4)
      摘要: 上一篇介紹了IQueryable的Where方法存在的問題,并擴展了一個名為Filter的過濾方法,它是Where方法的增強版。本篇將介紹查詢的另一個重要主題——分頁與排序。 對于任何一個信息系統,查詢都需要分頁,因為不可能直接返回表中的所有數據。 如果直接使用原始的Ado.Net,我們可以... 閱讀全文
      posted @ 2015-01-03 21:08 何鎮汐 閱讀(3784) 評論(11) 推薦(5)
      摘要: 上面兩篇已經作好準備,本文將進行基礎查詢擴展。當使用了Entity Framework這樣的ORM框架以后,我們查詢的核心被集中在IQueryable的Where方法上。 如果UI需要通過姓名查詢一個客戶,會在UI上放置一個輸入框作為客戶姓名的查詢條件。服務端接收以后通過Where方法進行過濾... 閱讀全文
      posted @ 2014-12-25 13:25 何鎮汐 閱讀(4327) 評論(14) 推薦(12)
      摘要: 前一篇擴展了兩個常用驗證方法,本文將封裝兩個Lambda表達式操作,用來為下一篇的查詢擴展服務。 Lambda表達式是一種簡潔的匿名函數語法,可以用它將方法作為委托參數傳遞。在Linq中,大量使用Lambda表達式進行查詢,不過這種Lambda表達式被Expression包裝成表達式樹。表達式... 閱讀全文
      posted @ 2014-12-24 13:54 何鎮汐 閱讀(3176) 評論(8) 推薦(9)
      摘要: 前面介紹了倉儲的基本操作,下面準備開始擴展查詢,在擴展查詢之前,首先要增加兩個公共操作類,一個是經常要用到的驗證方法,另一個是Lambda表達式的操作類。 很多時候,我們會判斷一個對象是否為null,由于null是一個不能接受的值,它會導致“未將對象引用設置到對象的實例”的嚴重錯誤,所以當檢測... 閱讀全文
      posted @ 2014-12-22 23:57 何鎮汐 閱讀(3573) 評論(3) 推薦(7)
      摘要: 前一篇介紹了倉儲的基本概念,并談了我對倉儲的一些認識,本文將實現倉儲的基本功能。 倉儲代表聚合在內存中的集合,所以倉儲的接口需要模擬得像一個集合。倉儲中有很多操作都是可以通用的,可以把這部分操作抽取到基類中。 在Util.Domains項目中創建一個文件夾Repositories,這個文件夾... 閱讀全文
      posted @ 2014-12-17 17:00 何鎮汐 閱讀(6061) 評論(12) 推薦(13)
      摘要: 前面已經介紹過Entity Framework的工作單元和映射層超類型的封裝,從本文開始,將逐步介紹倉儲以及對查詢的擴展支持。 什么是倉儲 倉儲表示聚合的集合。 倉儲所表現出來的集合外觀,僅僅是一種模擬,除了測試以外,沒有理由使用內存中真正的... 閱讀全文
      posted @ 2014-12-12 11:59 何鎮汐 閱讀(5857) 評論(34) 推薦(18)
      摘要: 上一篇介紹了工作單元層超類型的封裝演化過程,本文將介紹對Entity Framework映射層超類型的封裝。 使用Entity Framework一般需要映射三種類型的對象,即實體、聚合、值對象。 聚合與實體映射的主要區別是:聚合映射單屬性標識Id,并需要映射樂觀離線鎖Version,而實體... 閱讀全文
      posted @ 2014-12-08 18:55 何鎮汐 閱讀(3805) 評論(1) 推薦(7)
      摘要: 上一篇介紹了DDD聚合以及與并發相關的各種鎖機制,本文將介紹另一個核心元素——工作單元,它是實現倉儲的基礎。 什么是工作單元 維護受業務事務影響的對象列表,并協調變化的寫入和并發問題的解決。 這是《企業應用架構模式》中給出的定義,不過看上去有... 閱讀全文
      posted @ 2014-12-06 21:10 何鎮汐 閱讀(4942) 評論(6) 推薦(11)
      摘要: 前面已經介紹了DDD分層架構的實體和值對象,本文將介紹聚合以及與其高度相關的并發主題。 我在之前已經說過,初學者第一步需要將業務邏輯盡量放到實體或值對象中,給實體“充血”,這樣可以讓業務邏輯高度內聚,并為你提供業務邏輯的唯一訪問點。而聚合則是第二步,它將多個相關業務概念包裝到單一的概念中,從而... 閱讀全文
      posted @ 2014-12-04 04:10 何鎮汐 閱讀(9138) 評論(26) 推薦(30)
      摘要: 上一篇介紹了值對象的基本概念,得到了一些朋友的支持,另外也有一些朋友提出了不同意見。這其實是很自然的事情,設計本來就充滿了各種可能性,沒有絕對正確的做法,只有更好的實踐。但是設計與實踐的好與壞,對于不同的人,以及處于不同的環境都有不同的詮釋,這是一個仁者見仁,智者見智的問題。DDD非常抽象,以至... 閱讀全文
      posted @ 2014-11-27 19:33 何鎮汐 閱讀(5346) 評論(5) 推薦(9)
      摘要: 前面介紹了DDD分層架構的實體,并完成了實體層超類型的開發,同時提供了驗證方面的支持。本篇將介紹另一個重要的構造塊——值對象,它是聚合中的主要成分。 如果說你已經在使用DDD分層架構,但你卻從來沒有使用過值對象,這毫不奇怪,因為多年來養成的數據建模思維已經牢牢把你禁錮,以致于你在使用面向對象方... 閱讀全文
      posted @ 2014-11-25 20:26 何鎮汐 閱讀(7962) 評論(33) 推薦(17)
      摘要: 在應用程序框架實戰十四:DDD分層架構之領域實體(基礎篇)一文中,我介紹了領域實體的基礎,包括標識、相等性比較、輸出實體狀態等。本文將介紹領域實體的一個核心內容——驗證,它是應用程序健壯性的基石。為了完成領域實體的驗證,我們在前面已經準備好了驗證公共操作類和異常公共操作類。 .Net提供的Da... 閱讀全文
      posted @ 2014-11-20 23:43 何鎮汐 閱讀(8978) 評論(25) 推薦(29)
      摘要: 任何系統都需要處理錯誤,本文介紹的異常公共操作類,用于對業務上的錯誤進行簡單支持。 對于剛剛接觸.Net的新手,碰到錯誤的時候,一般喜歡通過返回bool值的方式指示是否執行成功。public bool 方法名() { //執行代碼,成功返回true,否則返回false} 不過上面的方法... 閱讀全文
      posted @ 2014-11-19 11:52 何鎮汐 閱讀(5756) 評論(19) 推薦(12)
      摘要: 為了能夠驗證領域實體,需要一個驗證公共操作類來提供支持。由于我將使用企業庫(Enterprise Library)的驗證組件來完成這項任務,所以本文也將演示對第三方框架的封裝要點。 .Net提供了一個稱為DataAnnotations的驗證技術,即在對象的屬性上添加一些Attribute,比如... 閱讀全文
      posted @ 2014-11-18 23:22 何鎮汐 閱讀(6124) 評論(19) 推薦(15)
      摘要: 上一篇,我介紹了自己在DDD分層架構方面的一些感想,本文開始介紹領域層的實體,代碼主要參考自《領域驅動設計C#2008實現》,另外參考了網上找到的一些示例代碼。什么是實體 由標識來區分的對象稱為實體。 實體的定義隱藏了幾個信息:兩個實體對象,只要它們的標識屬性值相等,哪怕標識屬性以外的所有屬... 閱讀全文
      posted @ 2014-11-17 18:54 何鎮汐 閱讀(9570) 評論(17) 推薦(19)
      摘要: 前面介紹了應用程序框架的一個重要組成部分——公共操作類,并提供了一個數據類型轉換公共操作類作為示例進行演示。下面準備介紹應用程序框架的另一個重要組成部分,即體系架構支持。你不一定要使用DDD這樣的架構,使用單層架構和普通三層架構一樣可以,不過你如果希望獲得更進一步的復用性和封裝度,使用更加面向對... 閱讀全文
      posted @ 2014-11-14 20:25 何鎮汐 閱讀(13958) 評論(32) 推薦(29)
      摘要: 上一篇以TDD方式介紹了數據類型轉換公共操作類的開發,并提供了單元測試和實現代碼,本文將演示通過擴展方法來增強公共操作類,以便調用時更加簡化。 下面以字符串轉換為List為例進行討論。string input = "83B0233C-A24F-49FD-8083-1337209EBC9A,EA... 閱讀全文
      posted @ 2014-11-13 14:01 何鎮汐 閱讀(5479) 評論(10) 推薦(11)
      摘要: 上一篇介紹了數據類型轉換的一些情況,可以看出,如果不進行封裝,有可能導致比較混亂的代碼。本文通過TDD方式把數據類型轉換公共操作類開發出來,并提供源碼下載。 我們在 應用程序框架實戰十一:創建VS解決方案與程序集 一文已經創建了解決方案,包含一個類庫項目和一個單元測試項目。單元測試將使用.Ne... 閱讀全文
      posted @ 2014-11-12 17:28 何鎮汐 閱讀(6872) 評論(14) 推薦(15)
      摘要: 本系列文章將介紹一些對初學者有幫助的輔助類,這些輔助類本身并沒有什么稀奇之處,如何能發現需要封裝它們可能更加重要,所謂授之以魚不如授之以漁,掌握封裝公共操作類的技巧才是關鍵,我會詳細說明創建這些類的動機和思考過程,以幫助初學者發現和封裝自己需要的東西。創建公共操作類的技巧,大家可以參考我的這篇文... 閱讀全文
      posted @ 2014-11-11 18:28 何鎮汐 閱讀(7332) 評論(13) 推薦(15)
      摘要: 本文專門為初學者而寫,因為很多初學者可能還不了解公共操作類的作用和封裝技巧,大部分有經驗的程序員都會把自己所碰到的技術問題整理封裝成類,這就是公共操作類。公共操作類往往具有一些通用性,也可能專門解決某些棘手問題。公共操作類是應用程序框架的核心,主要目標是解決大部分技術問題。我將在本文介紹封裝公共... 閱讀全文
      posted @ 2014-11-10 05:11 何鎮汐 閱讀(8171) 評論(19) 推薦(27)
      摘要: 上一篇,介紹了開發環境需要的工具和版本,本篇將動手創建VS解決方案。 對于本系列文章提供的示例,我想通過兩種途徑來演示,一種是單元測試,另外為了能更直觀的看到效果,還會提供一個用戶界面來展示。為了不分散注意力,前期只提供非常簡陋的原始界面,后期如果有時間的話,我想使用MVC +某個RIA框架+... 閱讀全文
      posted @ 2014-11-09 04:30 何鎮汐 閱讀(6556) 評論(4) 推薦(11)
      摘要: 前面幾篇已經把廢話基本說完了,現在準備進入實戰階段。 第一步是把開發環境準備好,下面是本系列所使用的開發工具及其版本。為了避免你無法順利打開本系列提供的下載示例,建議你最好跟我使用的版本相同。 Visual Studio2013 ReSharpe最新版本,目前版本是8.2.2 ReSha... 閱讀全文
      posted @ 2014-11-08 13:56 何鎮汐 閱讀(8043) 評論(12) 推薦(34)
      摘要: 使用應用程序框架來開發項目,從軟件項目的角度來看,可以獲得更快的開發進度,更好的代碼質量、復用性、擴展性、可維護性等好處。但如果換個角度思考,也會發現其它一些問題。 首先,軟件開發是以人為本的,應用程序框架是某個人或某幾個人大腦中知識結構的具體表現,所以應用程序框架高度依賴它的創建人,框架越強... 閱讀全文
      posted @ 2014-11-07 15:42 何鎮汐 閱讀(5201) 評論(5) 推薦(7)
      摘要: 分層架構根據相關職責將應用程序模塊切割為多個層次,那么應用程序框架本身還要不要進行層次劃分?隨著對應用程序框架的理解加深,以及項目復雜度的提升,為應用程序框架分層就顯得很有必要,它將影響你如何創建VS解決方案。 在剛開始建立應用程序框架時,你首先會想到的是把技術方面的東西抽取出來,放到專門的文... 閱讀全文
      posted @ 2014-11-06 22:52 何鎮汐 閱讀(6603) 評論(14) 推薦(24)
      摘要: 建立應用程序框架,首先要考慮的問題是,你準備采用哪種分層架構,然后根據應用程序框架的邏輯層次來確定需要創建的VS解決方案和程序集。 如果項目很小,需求很簡單,時間異常緊迫,且你手上沒有任何積累,那么,單層架構將是首選,最簡單的單層架構如下圖所示(為了集中你的注意力,我把不相關的文件都刪除了)。... 閱讀全文
      posted @ 2014-11-05 22:03 何鎮汐 閱讀(9589) 評論(23) 推薦(30)
      摘要: 之前說過,.Net Framework為所有.Net程序員提供底層支持,第三方開源框架建立在.Net Framework的基礎上,專門解決某些特定問題,而應用程序框架則建立在.Net Framework和第三方框架的基礎上,為項目開發的方方面面保駕護航。它們的作用雖然都是幫助程序員更好的建立應用... 閱讀全文
      posted @ 2014-11-04 01:30 何鎮汐 閱讀(6762) 評論(13) 推薦(16)
      摘要: 應用程序框架是用來支持應用程序開發的,它就好像一個保姆,在開發的每一個細節對程序員呵護倍至。那么,應用程序框架應該包含哪些內容呢?原則上來說,只要期望能夠復用的所有東西,都可以進入你的框架。 開發新手與經驗豐富的老手,其中一個重要的區別在于復用代碼的方式不同。開發新手喜歡復制粘貼,而老手則更傾... 閱讀全文
      posted @ 2014-11-03 13:08 何鎮汐 閱讀(7623) 評論(12) 推薦(15)
      摘要: 如果沒有什么好處,不會有人愿意去做,那么,你真的需要應用程序框架嗎,它能為你帶來什么好處?應用程序框架為你提供現成的開發環境 現在來了一個項目,你可以直接打開VS,然后就開工敲代碼嗎?不行,你得先創建項目,當使用了分層架構,還需要創建更多的項目,這些項目根據依賴關系進行配置。然后依次引用各種依賴組... 閱讀全文
      posted @ 2014-10-30 14:06 何鎮汐 閱讀(6891) 評論(3) 推薦(8)
      摘要: 什么是應用程序框架?正如框架是架構的具體實現一樣,應用程序框架是應用程序架構的具體實現。不過這樣說了等于沒說,因為框架和架構都是如此抽象。為了獲得直觀的感受,下面先看看更具體的.Net Framework和第三方框架。 .Net Framework為.Net程序員提供了一個龐大的類庫,幾乎任何... 閱讀全文
      posted @ 2014-10-30 09:07 何鎮汐 閱讀(10454) 評論(5) 推薦(14)
      摘要: 大約10年前,我剛剛步入.Net開發,那時候還很流行單層架構,直接在界面上拖控件,然后綁定數據。數據庫操作使用原生的Ado.Net,每次都要創建數據庫連接,打開連接,發送Sql,獲取結果、關閉連接。每當我需要進行數據庫操作的時候,就把這一段復制粘貼過去,就這樣干了幾個月。 一日,一位師兄給我介... 閱讀全文
      posted @ 2014-10-29 17:16 何鎮汐 閱讀(6899) 評論(6) 推薦(9)
      摘要: 敏捷時代的來臨,迫使微軟.Net技術也在向敏捷方向發展。近幾年,.Net在數據訪問、Web、測試等多個領域大刀闊斧的進行改革,新技術不斷涌現。一方面這是值得慶幸的,讓.Net程序員在開發復雜項目有了更多的選擇,一改往日只能拖控件綁定數據的局面。另一方面,程序員需要大量的學習,并且需要依賴更多的第... 閱讀全文
      posted @ 2014-10-29 15:02 何鎮汐 閱讀(7551) 評論(16) 推薦(15)
      主站蜘蛛池模板: 国产乱老熟女乱老熟女视频| 久久综合色一综合色88欧美| 国产精品一区二区三区黄色| 在线a级毛片无码免费真人| 亚洲欧美中文字幕5发布 | 国产精品 第一页第二页| 亚洲综合一区二区三区| 少妇久久久被弄到高潮| 香蕉久久夜色精品国产成人| 国产一区二区不卡在线| 色偷偷www.8888在线观看| 开心婷婷五月激情综合社区 | 日本极品少妇videossexhd| 啊灬啊灬啊灬快灬高潮了电影片段| 国产成AV人片久青草影院| 成人国产欧美大片一区| 内射人妻视频国内| 久久午夜无码鲁丝片直播午夜精品 | 亚洲欧洲色图片网站| 爱性久久久久久久久| 午夜福利激情一区二区三区| 欧洲码亚洲码的区别入口| 色综合久久天天综线观看| 亚洲精品美女久久久久9999| 亚洲欧美日韩高清一区二区三区| 好大好硬好爽免费视频| 免费十八禁一区二区三区| 成人拍拍拍无遮挡免费视频 | 久久精品人妻无码一区二区三区| 狠狠综合久久av一区二| 久久精品国产亚洲av天海翼| a级国产乱理伦片在线观看al| 天堂av在线一区二区| 国产黄色三级三级看三级| 无码人妻av免费一区二区三区| 国产精品麻豆欧美日韩ww| 亚洲av无码片在线播放| 高潮毛片无遮挡高清视频播放 | 国产精品∧v在线观看| 国产免费福利网站| 亚洲精品无码高潮喷水A|