DIY.NETORM架構——整體分析

來源:互聯網
上載者:User

標籤:c#   orm   架構   

一、故事

      近些年一直開發MIS系統,用過PB,VB,C#  ,現在學了半年的java,早先聽人說,.NET和 java一直就是互相借鑒,一起升級,都是為了讓程式開發趨於簡單,高校,而這不可避免就肯定用到架構,對java中很多架構的實現原理,我也比較感興趣,在本系列的部落格正,咱們將一起實現一個簡單的.NET版 ORM架構。

      有人會有疑問,網上有很多成熟的ORM架構,為什麼不直接用,偏偏要自己做一個呢?

      對於這個答案,是仁者見仁的問題,就好似建造大廈,如果他停留在會照著圖紙建房子,他肯定是個工人,而如果他能瞭解圖紙上的原理,那麼他必然是一個管理者,當他瞭解原理且能自己畫出一份圖紙的時候,他就是設計師!

 

二,技術瞭解

 

1.什麼是ORM?

 

      ORM,即Object-RelationalMapping(對象關係映射),它的作用是在關係型資料庫和業務實體物件之間作一個映射,這樣,我們在具體的操作業務對象的時候,就不需要再去和複雜的SQL語句打交道,只需簡單的操作對象的屬性和方法。

 

2.ORM 優缺點




展開說說

優點:

(1),隱藏了資料訪問細節。

 

 

      “封閉”的通用資料庫互動,ORM的核心。他使得我們的通用資料庫互動變得簡單易行,並且完全不用考慮該死的SQL語句。快速開發,由此而來。

 

 

(2),ORM使我們構造固化資料結構變得簡單易行。

 

 

        回想我們沒有ORM的年代,我們要為每個表編寫形形色色的sql語句,我們拿到的資料內容,要自己轉換為對象,我們為了某個欄位值寫錯的bug徹夜不眠,而現在,基本上所有的ORM架構都提供了通過物件模型構造關聯式資料庫結構的功能。而這,“太好了!!!”。

缺點:

(1)犧牲效能:

 

 

       無可避免的,自動化意味著映射和關聯管理,代價是犧牲效能(早期,這是所有不喜歡ORM人的共同點)。現在的各種ORM架構都在嘗試使用各種方法來減輕這塊(LazyLoad,Cache),效果還是很顯著的。

 

 

(2)查詢語言:

 

 

        物件導向的查詢語言(X-QL)作為一種資料庫與對象之間的過渡,雖然隱藏了資料層面的業務抽象,但並不能完全的屏蔽掉資料庫層的設計,並且無疑將增加學習成本.

 

 

(3)複雜查詢:

 

 

        對於複雜查詢,ORM仍然力不從心。雖然可以實現,但是不值的。視圖可以解決大部分calculatedcolumn,case ,group,having,order by, exists,但是查詢條件(a and b and not c and (d ord))我們有些也要謹慎考慮和重新編寫sql語句!

 

總結:世上任何事情是完美的,任何優勢的背後都隱藏著缺點,這是必然的。問題在於,我們是如何平衡他們的額。在簡答業務的場合下,簡單三成可能就是最佳選擇,而在某些商務邏輯複雜,Team Dev龐大的項目中,ORM卻又是個不得不考慮的問題,具體怎麼辦?就看你怎麼衡量,沒人說用了ORM就不讓底層人員寫sql語句了…………

三,模組設計構想


四、本篇總結

     本次簡單講述了ORM實現的基本思路分析及ORM架構使用的優缺點及在項目中如何合理的分析與應用。我們用ORM架構是來解決問題,但是,不是什麼問題都是一種架構可以解決的,資料庫的封裝,ORM只是做了其中的工作,也不要覺得這個東西是多麼的高深,隨著我們代碼的不斷推進,我們設計的不斷完善,其實我們可以發現,所有的代碼都是基本技術的組合,只是我們對於他的組合形式不熟悉,相信自己,架構我們也是可以寫出來的!

附件(系列部落格連結):

     1,DIY.NETORM架構——整體分析


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.