出版時(shí)間:2008-9 出版社:電子工業(yè) 作者:黃忠成 頁數(shù):581
Tag標(biāo)簽:無
前言
轉(zhuǎn)眼認(rèn)識忠成已七年了,但卻是第一次幫他寫序。過去的七年,看著忠成從單身宅男變?yōu)橐患抑鳎?從工程師變?yōu)閮砂吨募夹g(shù)作家,從朝九晚五的上班族變?yōu)楠?dú)立顧問,這之間的轉(zhuǎn)變又豈止在軟件技術(shù)方面的精進(jìn)?! ∥④洈?shù)據(jù)庫訪問技術(shù)歷經(jīng)了多次的變革,每一次變革都有著背后的原因。在2007年11月Microsoft.NET Framework 3.5發(fā)布后,長久以來Microsoft .NET領(lǐng)域欠缺對象關(guān)系映射(Object-Relational Mapping,ORM)技術(shù)的問題,終于有了來自微軟的解決方案。新的數(shù)據(jù)訪問技術(shù)出現(xiàn),開發(fā)人員擁有了更多的選擇,一本能夠引導(dǎo)ASP.NET開發(fā)人員正確運(yùn)用數(shù)據(jù)庫訪問技術(shù)的書,便顯得格外重要。 忠成的書總會嘗試將Framework底層的機(jī)制剖析清楚,讓讀者不至落入“ 知其然不知其所以然” 的窘境。在他每本書的背后,都有不為人知的努力。多年前,忠成便已花費(fèi)工夫追蹤過Hibernate(http://www.hibemate.org)源代碼,也自行在Microsoft .NET Framework上制作過自的ORM Framework,這些歷練也讓今天這本書能夠與眾不同?! ”緯杏邢喈?dāng)?shù)钠诮榻BADO.NET Entity Framework,此一技術(shù)預(yù)計(jì)將在MicrosoftVisual Studio 2008 Service Pack l推出后,方會正式發(fā)布, 即便在MS Press的出書計(jì)劃中,也必須等到2008年9月才會推出Programming the Microsoft?ADO.NET Entity Framework,中文 版讀者何其有幸,能夠在本書中搶先了解此一技術(shù),這也再次凸顯了忠成撰寫本書所花費(fèi)的心力。 微軟委托IDC的市場調(diào)查顯示,Micmsoft.NET已躍居關(guān)鍵性任(Mission Critical)開發(fā)之主要平臺,也期望忠成能繼續(xù)推出優(yōu)秀作品,讓更多的開發(fā)人員能輕松跟上此一潮流。
內(nèi)容概要
.NET數(shù)據(jù)庫開發(fā)技術(shù),書中詳細(xì)地論述了.NET Framework 3.5中新一代的訪問技術(shù):LINQ、LINQ To SQL、ADO.NET Entity Framework,并提供豐富的ASP.NET范例。全書分為兩大部分,第一部分以講解ADO.NET 2.0、TableAdapter、LINQ、LINQ To SQL、ADO.NET Entity Framework為主,用簡單的“控制臺應(yīng)用程序”,又稱為Ceonsole Application(命令行)應(yīng)用程序,充分將這些技術(shù)的詳細(xì)用法及技術(shù)特質(zhì)顯現(xiàn)出來。第二部分講解在ASP.NET中,如何應(yīng)用TableAdapter、LINQ、LINQ To SQL、ADO.NET Entity Framework等數(shù)據(jù)訪問技術(shù),打造ASP.NET數(shù)據(jù)庫應(yīng)用程序,在第10章更以一個(gè)ASP.NET的簡易版進(jìn)銷存系統(tǒng)作為實(shí)例,引導(dǎo)讀者使用LINQ To SQL來構(gòu)建真實(shí)世界中的ASP.NET數(shù)據(jù)庫應(yīng)用程序?! 稕Q戰(zhàn)NET.NET Framework 3.5數(shù)據(jù)庫開發(fā)圣典》適合.NET Framework的初學(xué)者和ASP.NET的初中級使用者。
書籍目錄
第1章 數(shù)據(jù)庫開發(fā)的過去、現(xiàn)在和未來1.1 數(shù)據(jù)庫訪問技術(shù)發(fā)展史1.2.夢想成為現(xiàn)實(shí),O/RMapping1.2.1 什么是O/RMapping技術(shù)1.2.2.O/RMapping好在哪里1.2.3.簡單、容易理解1.2.4.有效率1.2.5 可移植性1.2.6 O/RMapping的缺點(diǎn)1.2.7 Microsoft的數(shù)據(jù)訪問技術(shù)藍(lán)圖第2章ADO.NET2.072.1 ADO.NET概述2.1.1 Connection2.1.2.Command、DataReader2.1.3.Parameter2.1.4.Transaction2.2.連接模式2.2.1 使用DataReader2.2.2 存儲過程2.2.3 NullandDBNull2.2.4 多結(jié)果集2.2.5 MARS(MuldpleAcnveResultSets)2.2.6 異步模式2.3.離線模式2.3.1 更好的離線模式2.3.2 類數(shù)據(jù)庫存儲器2.3.3 了解DataSet與DataTable2.3.4 DataTable2.3.5 數(shù)據(jù)的更新2.3.6 數(shù)據(jù)的查找2.3.7 Relations2.3.8 RelationRules2.3.9 DataSetDesigner2.3.10 TypedDataSet2.3.11 使用DataAdapter2.3.12 F|llingData2.3.13 UpdatingData2.3.14 RowState2.3.15 DataROWVerSion2.3.16 AcceptChanges,RejectChanges2.3.17 RowUpdatingandRowUpdated事件2.3.18 DataVieW2.3.19 CreateDataVieW2.3.20 查找數(shù)據(jù)2.4.TableAdapter2.4.1 使用TableAdapter2.4.2.TypedQuery2.4.3 調(diào)整自動產(chǎn)生的修改SQL指令2.4.4.使用StoredProcedure2.4.5 使用既存的存儲過程2.4.6 DB-DirectMethods2.4.7 CustomDB-DirectMethods2.4.8 TableAdapter的延展性2.4.9 Transaction與TableAd叩ter2.4.10 商業(yè)邏輯的實(shí)現(xiàn)I:DB-DirectMethods2.4.11 商業(yè)邏輯的實(shí)現(xiàn)2:DataAdaptcf2.5 TableAdapter與大型數(shù)據(jù)庫2.6 TableAdapter的性能第3章 UNQ3.1 什么是LINQFramework3.1.1 v關(guān)鍵詞的涵義3.1.2 var能用在哪里3.1.3 LINQFramework的3.1.4 LINQFramework與.NETFramework3.53.2 LINQToObjects3.2.1 C#3.0新特色:ExtensionMethod(擴(kuò)充方法)3.2.2 ExtensionMethod的決議順序3.2.3 ExtensionMethod的GenericsTypeParameterassumption(泛型類~=J參數(shù)推演)3.2.4 C#3.0新特~:LambdaExpression(Lamlxla表達(dá)式)3.2.5 LINQExpression3.2.6 Query-Expression3.2.7 Query-Expression的回傳值3.2.8 Where-expression3.2.9 Like在哪里3.2.10 Group-expression3.2.11 Join-expression3.2.12 0rder-by-expression3.2.13 Select-expression3,2.14 Distinct3.2.15 DistinctWithCondition3.2.16 C#3.0新特~:ObjectInitializer3.2.17 SelectMany功能3.2.18 Index3.2.19 Element,At,ElementAtOrDefault3.2.20 Take,TakeWhile3.2.21 Skip,SkipWhile3.2.22 First,FirstOrDefault3.2.23 Last,LastOrDefault3.2.24 Single,SingleOrDefault3.2.25 Any3.2.26 An3.2.27 ContainsReverse3.2.29 Concat3.2.30 ToArray,ToList,ToDictionary3.2.31ToLookup3.2.32 Union3.2.33 Intersect3.2.34 ExceDt3.2.35 0frypc.Cast3.2.36 Sum、Avemge、Min、Max.C0unh3.2.37 Aggrcgate3.2.38 let語句3.2.39 語法之外,明確使用LINQTOObjects的理由3.2.40 LINQExpression,LINQFramework、編譯器3.2.41 性能的課題:LINQToObject時(shí)的傳回值3.3.LINQToXML3.3.1 LINQToXMLAPI的架構(gòu)3.3.2 新舊類的對應(yīng)3.3.3 用LINQToXML來讀取XML3.3.4 重頭戲,用LINQTOXML采查詢XML3.3.5 Soning3.3.6 Grouping3.3.7 J0in3.4.LlNQToDataSet3.4.1 LINQ與DataTable的結(jié)合3.4.2 DataROwVerSion3.4.3 FieldExtensionMethod3.4.4 FieldExtensionMethod與DataRowVerslon3.4.5 SetFieldEXtenSionMethOd3.4.6 J0in3.4.7 Gmup3.4.8 Take3.4.9 Tal【eWhile3.4.10 Skjp3.4.11 Ind3.4.12 InterSeCt3.4.13 Except3.4.14 SUM3.4.15 Distinct3.4.16 CopyToDataTableExtensionMethod3.4.17 EnumerableTODataTable3.4.18 Dat“iew3.5 LINQ的可擴(kuò)充性3.5 1最強(qiáng)大的QueryProvider擴(kuò)充模式3.5.2 后記第4章 LINQToSQL4.1 什么是LINQToSQL4.1.1 技術(shù)的評估4.1.2 兩個(gè)ORM技術(shù)4.1.3.LINQToSQL的優(yōu)勢4.1.4 LINQToSQL的架構(gòu)4.2.第一個(gè)LINQToSQL程序4.3.QueryConverter的概念4.3.1 Take4.3.2 Skip4.3.3 DiStinct4.3.4 COUnt4.3.5 GfoUp4.3.6 J0iⅡ4.3.7 Sum4.3.8 Group&SUm4.3.9 DiSC0nneCtedorC0nneCtcd4.3.1 0LINQToSQL與LINQToObjects的不同4.3.1 1靜態(tài)型4.3.1 2實(shí)例型4.3.1 3L1NQExpression之外4.4 數(shù)據(jù)的更新4.4.14.4.1 創(chuàng)建4.4.2 刪除4.4.3 批次更新4.4.4 錯(cuò)誤的處理4.4.5 TraCkingChangeS4.4.6 高級的錯(cuò)誤處理4.4.7 RefreShMode4.4.8 處理刪除時(shí)的錯(cuò)誤4.4.9 樂觀鎖定與悲觀鎖定4.4.1 0Auto-Sync屬性4.4.1 1處理Identity字段4.4.1 2DelayLOad4.4.1 3RowVersion模式4.4.1 4GmUpUpdateOrJ0inUpdate4.5 DataContext的概念4.5.1 指定DataContext所使用的ConnectionS晡ng4.5.2 Refresh:重讀特定的EntityObjects4.5.3 GetChangeSet:取得已經(jīng)變動的Entiyobjects4.5.4 Translate:由DataReader加載Entiyobjects4.5.5 DataContext間的EntityObjects傳遞4.6 關(guān)聯(lián)4.6.1 關(guān)聯(lián)下的數(shù)據(jù)異動4.6 2.DefemngLOad4.6.3.不好嗎?Defcl吶“gLoad4.6.4.AssociateWith4.6.5 0ne-To-One的關(guān)聯(lián)4.6.6 LoadWith時(shí)該注意的事4.6 7較復(fù)雜的查詢4.7 TranSaction4.8 繼承4.9 杯儲過程4.9.1 回傳值的異動4.9.2 有OUTPUT參數(shù)的存儲過程4.9.3 有回傳值的存儲過程4.9.4 以存儲過程處理數(shù)據(jù)異動4.9 5以存儲過程來更新JOIN表4.9 6直接執(zhí)行SQL命令4.1 0用戶定義函數(shù)4.1 1View的對應(yīng)4.1 2延伸DataConte4.1 2.1 編寫商業(yè)邏輯4.1 2.2 延伸EntityClass4.1 2.3 計(jì)算字段與Lookup字段人型數(shù)據(jù)庫與LINQToSQL4.1 3.1 運(yùn)用DataContext的繼承4.1 3.2 關(guān)聯(lián)的問題4.1 3.3 了解LINQToSQLDesigner所產(chǎn)生的程序代碼4.1 3.4 以程序建立one-to-many的關(guān)聯(lián)外部對應(yīng)文件LINQToSQL的性能4.1 5.1 0/RMapping的原罪4.1 5.2.DataContext與快取對象和內(nèi)存回收4.1 5.3 未盡之處第5章 ADO.NETEntityFramework第6章 EntitySQLLanguage第7章 ASP.NET與TableAdapters第8章 ASP.NET與LINQ、LINQToSQL第9章 ASP.NET與ADO.NETEntityFramework第10章 ASP.NET與LINQToSQL實(shí)戰(zhàn)篇附錄A 關(guān)于JOIN
章節(jié)摘錄
第1章 數(shù)據(jù)庫開發(fā)的過去、現(xiàn)在和未來 1.1 數(shù)據(jù)庫訪問技術(shù)發(fā)展史 為了滿足數(shù)據(jù)庫應(yīng)用軟件不斷提升的需求,數(shù)據(jù)庫系統(tǒng)的演化腳步從來不曾停歇,從早期的文件型數(shù)據(jù)庫到現(xiàn)今的Client/Server數(shù)據(jù)庫。隨著數(shù)據(jù)庫系統(tǒng)的演化,與其息息相關(guān)的數(shù)據(jù)訪問技術(shù)也隨之演變,從早期的Library模式到現(xiàn)在大家所熟悉的Driver模式。 在Library模式中,數(shù)據(jù)庫訪問技術(shù)常與程序語言合為一體,形成只要選擇一種程序語言就選擇了一種數(shù)據(jù)庫的窘境。到了Driver模式,這個(gè)情況已不復(fù)存在,數(shù)據(jù)庫訪問技術(shù)開始向與程序語言脫鉤的方向前進(jìn),不再與程序語言綁在一塊,數(shù)據(jù)庫訪問技術(shù)從此開始進(jìn)入獨(dú)自演化的時(shí)代?! ∵@個(gè)時(shí)代中的技術(shù)競爭也是最為激烈的,其中最具代表性的技術(shù)是由Microsoft所提出的ODBC概念,它提供了一個(gè)Driver的通用規(guī)格,讓數(shù)據(jù)庫或其他類庫的廠商,能依循這個(gè)標(biāo)準(zhǔn)來實(shí)現(xiàn)支持各種數(shù)據(jù)庫的Driver,只要將其掛載至ODBC的系統(tǒng)中,開發(fā)人員就能使用不同的程序語言、一致的概念來訪問數(shù)據(jù)庫?! ‰m然ODBC達(dá)到了通用規(guī)格的目標(biāo),但是其難用及復(fù)雜卻也成了缺點(diǎn),這時(shí)由Borland所提出的BDE(Borland Database Engine)結(jié)合Delphi開發(fā)工具進(jìn)入了市場,Delphi是一個(gè)RAD開發(fā)工具,其內(nèi)附的VCL(Visual Component Library)通過將BDE封裝為易用的組件,讓開發(fā)人員能夠使用CBD(Component.Base Development)的模式來開發(fā)系統(tǒng),大幅地增進(jìn)開發(fā)人員的生產(chǎn)力。相對于ODBC的難用及復(fù)雜,在VCL的支持下,Delphi與BDE創(chuàng)造出了數(shù)據(jù)庫應(yīng)用程序的開發(fā)前景?! 〔贿^Microsoft自己也明白ODBC的缺點(diǎn)在何處,因此推出了新一代的數(shù)據(jù)庫訪問技術(shù):ADO(Access Database Object),ADO除了提供ODBC所能提供的共通Driver規(guī)格外,也提供了與VCL類似的CBD架構(gòu),自此開始,ADO與BDE成為了數(shù)據(jù)庫訪問技術(shù)的兩大巨頭。 從現(xiàn)在來看,BDE已經(jīng)在這場爭斗中敗下陣來,追根究底來說,BDE并非是敗在技術(shù)面,而是敗在時(shí)勢!畢竟Microsoft擁有平臺的優(yōu)勢,數(shù)據(jù)庫廠商基于商業(yè)考量,很難不為其提供ADO數(shù)據(jù)庫Driver?! DO與BDE的鼎足之勢持很長的一段時(shí)間,但技術(shù)一日千里,再好的技術(shù)終將有不適用的一天,ADO與BDE也不例外。隨著網(wǎng)絡(luò)的盛行,跨Internet的數(shù)據(jù)庫應(yīng)用成為市場上的新寵,ADO與BDE這種以Client/Server為主的訪問技術(shù)已無法適用于這個(gè)時(shí)代,在這個(gè)時(shí)代中需要的是離線模式及輕量化Driver。因此以此概念為設(shè)計(jì)標(biāo)桿的ADO.NET及dbExpress就成為了新一代數(shù)據(jù)訪問技術(shù)的主流。
編輯推薦
本書重點(diǎn)介紹NET數(shù)據(jù)庫開發(fā)技術(shù)。書中詳細(xì)地論述了NET Framework3.5中新一代的訪問技術(shù):LINQ、LINQ To SQL、ADO NET Entity Framework,并提出了豐富的ASP.NET范例?! ∪珪譃閮纱蟛糠?,第一部分以講解ADO.NET2.0、TableAdapter、LINQ、LINQ To SQL、ADO.NET Entity Framework為主,用簡單的“控制臺應(yīng)用程序”將這些技術(shù)的詳細(xì)用法及技術(shù)特質(zhì)充分顯現(xiàn)出來。第二部分講解在ASP.NET中,如何應(yīng)用Tableadapter、LINQ To SQL、ADO.NET Entity Framework等數(shù)據(jù)訪問技術(shù),打造ASP.NET數(shù)據(jù)庫應(yīng)程序。在第10章更驪個(gè)ASP.NET的簡單版進(jìn)行銷存系統(tǒng)為實(shí)例,引導(dǎo)讀者使用LINQ To SQL來構(gòu)建真實(shí)世界中的ASP.NET數(shù)據(jù)庫應(yīng)用程序?! ¢_發(fā)工具 除了ADO.NETEntity Framework的相關(guān)章節(jié)外,本書其他章節(jié)均使用Microsoft Visual Studio2008中文版為主要的開發(fā)工具,數(shù)據(jù)庫方面則使用了Microsoft SQL Server2005?! ”緯m合.NET Framework的初學(xué)者和ASP.NET的初中級使用者。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載