国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

實戰 .Net 數據訪問層 - 1

2024-07-10 12:59:28
字體:
來源:轉載
供稿:網友
  • 網站運營seo文章大全
  • 提供全面的站長運營經驗及seo技術!
  • 實戰 .net 數據訪問層



    l 特別說明

    本篇實戰共分23段,非作者有意如此,乃受csdn發表文章之64k所限。

    雖然有幾段根本沒有達到64k,但估計是html source超過了這個范

    圍,所以也不得不單獨分段(大都是源代碼),請大家諒解。

    如果有朋友需要完整文檔,請發郵件給我:

    mailto:[email protected]

    l 引言

    這次的討論是上一部分“剖析 .net 下的數據訪問層技術”的一個續,但也可獨立成章,為突出主題,作者就特意換了一個標題。



    關于上次的內容,大家可以參考如下鏈接:

    http://www.csdn.net/develop/read_article.asp?id=26689(一共六篇,id從26689到26694。也可以通過dev.csdn.net -> windows/.net進行訪問)



    在以下論述中,為統一起見,作者暫時將數據訪問層簡稱為dal(data access layer)。而在“我的方案”中,作者會介紹另一個“dal”(data access logic),為避免歧義,所有data access logic將保留全名,不再采用簡稱。



    需要特別說明的是,以下列出的代碼全部基于.net framework 1.2實現,您也可以在.net framework 1.1上進行模擬,但某些ado.net 2.0中的更新內容可能無法使用,如:objectspaces,dbdatareader等。

    您可以通過兩種方法使用.net framework 1.2:

    (1) 安裝whidbey(beta)或者visual studio .net 2005(preview),這是最簡單的方法;

    (2) 安裝.net framework 1.2 runtime(redistributables),使用visual studio .net 2003(不支持vistual studio .net 2002)進行開發。這種方式需要注意兩點:

    i. 對于windows application,在app.config中進行如下設置:

    <configuration>

    <startup>

    <supportedruntime version="v1.2.30703"/>

    </startup>

    </configuration>

    對于web application,不需要進行什么設置,在安裝完.net framework 1.2 runtime后已經自動添加了對iis的支持;

    ii. 雖然可以通過visual studio .net 2003編譯支持.net framework 1.2的項目,但是調試功能將不起任何作用(哪位朋友知道如何解決這個問題?)!

    另外,.net framework 1.2 runtime也可以通過安裝microsoft yukon(beta)自動得到。



    ok,言歸正傳,以下部分就是我的方案。



    l 我的方案

    上次的討論主要集中在現有的技術,同時,也對不同技術在實現dal時的差異做了一些分析,綜合下來,無非就是這么幾種:

    (1) ado.net

    ado.net是當前階段使用.net進行dal開發的基本方式,這里的dal,也包括了對ado.net進行封裝后提供更簡單調用的各類實現,經典例子如:duwamish,petshop等;

    (2) o/r mapping

    由于.net framework 1.2/2.0還未正式release,包含其中的objectspaces技術暫時還未能成為在.net下進行dal開發的首選武器,但是,隨著各類orm framework的逐漸成熟以及一些開發廠商的不斷努力,這方面正呈現出茁壯成長的勢頭;

    (3) x/y mapping

    這里的x/y mapping是指除了上述o/r mapping之外的其它各類data mapping,如:xml to relation mapping,relation to xml mapping,object to xml mapping等,這部分內容不是本文重點,作者將另辟專文討論;

    (4) distributed process

    嚴格來說,這個并不是真正意義上的dal技術,充其量只算錦上添花。不過,正因為考慮到dal分布式處理的可能性,作者在自己的方案中將其單獨歸類,并不將其作為dal的主要特性去實現。這方面的技術大家早已耳熟能詳:.net remoting,webservices。



    以下,作者將給出一個自己的解決方案,通過實例,和大家一起探討一下.net下的dal實現技術。



    u 綜合現有的技術

    1. 概述

    說是解決方案,其實也就是一個“大雜燴”,作者希望通過綜合現有的.net dal技術來達到generic目的,免去了為不同項目反復編寫dal的無盡痛苦l,雖然絕對不是銀彈,總也想為廣大(我也是“受害者”之一j)dal工程師們帶來一點點的改善。除此之外,ease of use也是這個解決方案必須考慮的另一難題!

    為簡單起見,以下將作者的解決方案簡稱為:daf(data access facade) solution。



    總的來說,就作者個人觀點,dal generic有兩方面需要我們重點考慮:



    (1) 接口一致性:這個大部分solution都能滿足,但有一點比較討厭,就是data entity的設計!這是一個很難generic的家伙,經常讓人顧此失彼l

    (2) 存儲無關性:database方面可以通過provider factory實現,但xml與database的混合存儲模式就比較麻煩了!隨著xml在應用中的逐漸普及(yukon甚至將其集成到了database table column中),dal將不可避免地與它產生交互l(當然了,還有種變相的做法也可以解決這個問題:將所有xml問題統統隔離在dal之外j)



    下一段:http://www.csdn.net/develop/read_article.asp?id=27544
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 清远市| 左云县| 宾阳县| 姚安县| 凤城市| 安义县| 梨树县| 乐山市| 丹江口市| 含山县| 石台县| 南充市| 淳安县| 巴林左旗| 吉林省| 瑞安市| 南华县| 田东县| 平塘县| 武城县| 三原县| 泰安市| 高邑县| 兴宁市| 鲜城| 乌拉特后旗| 东兴市| 曲阳县| 桓仁| 肥东县| 庆安县| 甘德县| 读书| 广东省| 民乐县| 澄迈县| 棋牌| 集安市| 翁牛特旗| 仙游县| 进贤县|