使用 Entity Framework 實現彈性的資料模型 【转载】

/
0 Comments


部分摘录如下:
這個架構當初在 2006 年是以 ADO.NET vNext 引進,而現在已經備妥要在 Visual Studio® 2008 SP1 中亮相。經過這幾年在類似產品的一連串失敗之後,Microsoft 在 Visual Studio 2008 中發行了兩項技術,它們在某種程度上屬於物件關聯式對應 (Object Relational Mapping,ORM):LINQ to SQL 及 ADO.NET Entity Framework隨著市場開始採用這些技術,開發人員現在想知道過去的來龍去脈,以及 Microsoft 的下一步。他們也想知道開發這些技術的內幕、Entity Framework 與市場上其他 ORM 技術不同之處,以及 Microsoft 未來將如何繼續投資與發展這些技術?
在 Visual Studio 2008 的初版之後,有許多篇文章聚焦於 LINQ to SQL,還有一些文章討論該使用哪一項技術 (請參閱 msdn.microsoft.com/data)。在本文章中,我將把重點放在 Entity Framework,並針對開發期間如何及為何做選擇,提供更深入的探討。
Microsoft® 實體資料模型 (Entity Data Model,EDM) 是以 Dr. Peter Chen 的實體關係 (Entity Relationship,ER) 模型為基礎,是 ADO.NET Entity Framework 背後真正的驅動力。EDM 也是 Entity Framework 與市場上其他 ORM 式技術之間最大差別的特性。EDM 建置在 ER 模型之上,用以提升模型的抽象層,使其優於邏輯模型但同時保留實體與關係的概念。


為何需要另一個資料模型?
那麼,為何需要另一個模型呢?由於公司處理的資料量不斷增加,要了解資料以及在該資料上開發應用程式變得非常困難。資料庫結構描述在設計時有儲存上的考量,例如資料完整性、效能及管理,因此往往不容易了解。通常這些結構描述與應用程式結構也不一致,這使得開發及維護工作更加複雜。
將資料結構與所建置之應用程式分開的自訂解決方案很常見。只可惜,由於每一個應用程式的自訂解決方案數量、各種方式及資料模型化所需步驟都不一樣,所以問題不斷擴大。產業開始出現一致的需求,亦即要定義及開發一種應用程式層級的網域模型且要與存放區的邏輯模型明確區分。於是,Entity Framework 就問世了。

只不過是另一個 ORM?
到目前為止,許多人認為 Entity Framework 只不過是市場中的另一個 ORM 而已,若只看過該產品的第一版,那麼這種看法是可以理解的。就這樣的角度而言,該產品到目前為止所涵蓋的許多部分,都是 ORM 所處理的一組核心案例。不過,到目前為止的許多分析指出,Entity Framework 也不一定能夠如您所想地涵蓋市場中其他 ORM 的所有功能,這是事實。
Microsoft 在這塊領域的投資目標,是要延伸傳統 ORM 產品,而 Entity Framework 正是更廣泛的 EDM 策略的第一步,稍後我將進一步說明這一點。正如我在本文開頭提過的,EDM 會建立更高階的網域模型,甚至超越 Entity Framework 和傳統 ORM 的境界。我們預期,經過未來幾個版本的 Microsoft .NET Framework、Visual Studio、SQL Server® 和其他 Microsoft 技術之後,您就可以開始看到採用 EDM 的人數有所增加。
正如本文所討論的許多產品決策中所看到的,這主要是受到這項預期和 EDM 趨勢的整個願景所帶動。在做出許多決策時,其明確意圖是希望由 Reporting Services 和 Analysis Services 之類的技術採用。藉由讓服務得以透過一致的網域模型提供,即可為客戶帶來很大的益處。
此願景的第一步,就是要隨 Visual Studio 2008 SP1 同時發行的 Entity Framework 及 ADO.NET 資料服務。可為開發人員提供 REST 應用程式優勢的 ADO.NET 資料服務,將成為 (在 Entity Framework 之外) 使用 EDM 做為其中繼資料交換格式而建立的第一個發行產品。
為了配合此產品的發行,Microsoft 在 MIX 2008 示範了一些不同的 Windows Live™ 屬性,其中使用 ADO.NET 資料服務通訊協定和 EDM 來公開其資料。同樣地,因為現在我們開始要規劃下一版的 SQL Server 和 Visual Studio,所以團隊會以 EDM 和 Entity Framework 為核心,致力於實現更優異的整體開發體驗。

作者:陈希章
出处:http://blog.csdn.net/chen_xizhang



You may also like

沒有留言: