LINQ設(shè)計(jì)模式概述
在向大家詳細(xì)介紹LINQ之前,首先讓大家了解下LINQ設(shè)計(jì)模式,然后全面介紹LINQ是數(shù)據(jù)和編程語言之間的橋梁也是一種鏈接他們的必要節(jié)。
軟件初看起來是很簡單的。它無非處理兩件事情:代碼和數(shù)據(jù)。但他也并不簡單,它涉及的主要活動之一是編寫處理數(shù)據(jù)的代碼。若要編寫代碼,我們可以從各種編程語言選擇。選擇語言會涉及到團(tuán)隊(duì)掌握技術(shù)情況、公司的政策及業(yè)務(wù)的連貫性等等。
任何語言最終指向你要處理的數(shù)據(jù)。數(shù)據(jù)可能是磁盤上的一個(gè)文件、數(shù)據(jù)庫里的一張表或者是一個(gè)從網(wǎng)絡(luò)下載的XML文檔、或者,通常您必須處理的所有這些組合。最終你將要處理的數(shù)據(jù)將是您做的每個(gè)
項(xiàng)目。
處理數(shù)據(jù)是開發(fā)人員最常見的任務(wù)之一,我們期望像.NET Framework 提供一個(gè)簡單的方法來處理數(shù)據(jù)就像JAVA 的 Hibernate一樣方便。.NET 并提供對處理數(shù)據(jù)的廣泛支持。但是,您將看到某些方面尚未達(dá)到:即更深的語言和數(shù)據(jù)集成。這就是LINQto Object、LINQto XML 和LINQto SQL 運(yùn)用。
我們這本書中所討論的就是設(shè)計(jì)作為一種編寫代碼的新技術(shù)方式。我們首先會為您闡述為什要添加LINQ這種工具。 我們亦會引入LINQ如何擴(kuò)展編程語言。
LINQ設(shè)計(jì)模式
LINQ是數(shù)據(jù)和編程語言之間的橋梁也是一種鏈接他們的必要節(jié)。LINQ統(tǒng)一數(shù)據(jù)訪問,無論何種數(shù)據(jù)源,并允許混合使用來自不同類型的數(shù)據(jù)源。它允許查詢和設(shè)置相關(guān)操作,為數(shù)據(jù)庫提供類似于 SQL 語句。雖然LINQ集成直接在通過一組對這些語言的擴(kuò)展的.NET 語言如 C# 和 Visual Basic 中的查詢:LINQ含義指語言集成查詢。在LINQ之前,我們不得不使用通用語言如 C# 或 VB.NET 編寫每個(gè)應(yīng)用程序中調(diào)試類似 SQL、 XML 或 XPath 一起各種技術(shù)的不同語言和 ADO.NET 或System.Xml 等的 API。當(dāng)然這種方法有幾個(gè)缺點(diǎn),LINQ全面涉及這幾個(gè)領(lǐng)域。 它有助于我們避免我們通常會產(chǎn)生問題如:使用關(guān)系數(shù)據(jù)的對象的 XML,而且使用LINQ將簡化 一些處理XML關(guān)系數(shù)據(jù)的任務(wù)。
LINQ主要方面之一是它被設(shè)計(jì)能用于任何類型的對象或數(shù)據(jù)源,并為這些對象或數(shù)據(jù)源提供一致的編程模型。其語法和概念在使用中都是相同的:您可以學(xué)習(xí)如何使用LINQ對數(shù)組或集合進(jìn)行處理,你也知道大部分利用LINQ操作一個(gè)數(shù)據(jù)庫或 XML 文件所需的方法。LINQ的另一個(gè)重要方面是使用它時(shí)會讓您工作在一個(gè)強(qiáng)類型化的環(huán)境。其它好處還包括編譯時(shí)檢查您的查詢,以及從 Visual Studio 的IntelliSense 功能里的包含友好的提示。LINQ將顯著改善如何處理和操作與您的應(yīng)用程序和組件的數(shù)據(jù)的一些方面。您將了解到怎樣使用LINQ來建立程序的模型。也許你會感覺很短時(shí)間內(nèi)編寫更多的代碼。
您可以根據(jù)設(shè)計(jì)模式使用LINQ對程序語言進(jìn)行擴(kuò)展。您首先將看到如何使用LINQ用于處理對象、 XML 文檔、 關(guān)系數(shù)據(jù)庫或其他類型的數(shù)據(jù)的工具集。 然后,您將看到如何 使用LINQ在類似 C# 和 VB.NET 的編程語言上的擴(kuò)展。以上是LINQ設(shè)計(jì)模式。
【編輯推薦】