中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

【譯】ASP.NET MVC并不僅僅只是Linq to SQL

  很多ASP.NET的教程中的示例代碼使用的數(shù)據(jù)訪問(wèn)方法是Linq to Sql或是Entity Framework。我在www.ASP.NET的論壇上看到很多關(guān)于討論是否有其他替代的數(shù)據(jù)庫(kù)訪問(wèn)方式,回答是:當(dāng)然有。這篇文章就講述了使用Ado.NET作為數(shù)據(jù)訪問(wèn)層來(lái)實(shí)現(xiàn)一個(gè)典型的增刪查改程序。

  由于是以練習(xí)作為目的,那我就不妨借用Spaanjaar’s 的N層構(gòu)架文章(Building Layered Web Applications with Microsoft ASP.NET 2.0.)的構(gòu)架方式。我強(qiáng)烈推薦你閱讀他的系列文章,如果嫌太長(zhǎng)起碼也得看完前兩部分,這樣就能對(duì)N-Layer構(gòu)架有個(gè)基本的認(rèn)識(shí)。N-Layer構(gòu)架的三個(gè)關(guān)鍵層分別為:業(yè)務(wù)對(duì)象層,業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層。而其數(shù)據(jù)訪問(wèn)層會(huì)幾乎不加改變的包含在本文的MVC項(xiàng)目中,Spaanjaar的文件詳細(xì)描述了各個(gè)層是如何組織的。這篇文章僅僅講述各個(gè)層所扮演的角色,但是不會(huì)深入到代碼的細(xì)節(jié)中。

  首先,我們來(lái)看Imar提供的程序,這是一個(gè)具有典型增刪查改的程序,這個(gè)程序允許用戶管理聯(lián)系人,包括聯(lián)系人的地址,電話,email。它能增,刪,查,改任何實(shí)體。

  程序內(nèi)包括的實(shí)體有:ContactPersons, PhoneNumbers, Addresses EmailAddresses.他們都隸屬于程序的業(yè)務(wù)對(duì)象(BO)層。上述的每一個(gè)類都包含可以獲取或者賦值的屬性,但并不包含任何方法。而所有方法存放于業(yè)務(wù)邏輯層(BLL)中的對(duì)應(yīng)類中。在業(yè)務(wù)對(duì)象層和業(yè)務(wù)邏輯層的實(shí)體和實(shí)體manger是一對(duì)一的關(guān)系,在業(yè)務(wù)邏輯層中類包含的方法都會(huì)返回業(yè)務(wù)對(duì)象層(BO)的實(shí)例,或是實(shí)例集合,或者保存實(shí)例(更新或是添加),或是刪除實(shí)例。業(yè)務(wù)邏輯層(BLL)中也可以包含一些業(yè)務(wù)規(guī)則驗(yàn)證,安全性檢查的代碼。但在本篇文章為了簡(jiǎn)便起見(jiàn),就不添加這些了。如果你對(duì)業(yè)務(wù)規(guī)則和安全性有興趣的話,可以去看Imar文章的6 part series

  最后一層是數(shù)據(jù)訪問(wèn)層(DAL),同樣,DAL層的類也和業(yè)務(wù)邏輯層(BLL)內(nèi)的類有著一對(duì)一的關(guān)系,在BLL層的類中會(huì)調(diào)用相關(guān)DAL層中的方法。而在這些層中,只有DAL層需要知道利用什么技術(shù)(linq,entity framework..)保存業(yè)務(wù)實(shí)體。在本例中,使用Sql Server Express數(shù)據(jù)庫(kù)和Ado.NET。而這樣分層的思想是如果你需要更換數(shù)據(jù)源(XML,oracle,更或者是Web Service甚至是Linq to Sql或者其他ORM框架),因?yàn)镈AL層給BLL層暴漏的方法的簽名是一致的,所以只需要更換DAL層即可。而為了保證所有DAL的實(shí)現(xiàn)有著同樣的簽名,則利用接口即可。但我想或許是未來(lái)帖子中討論的話題了吧。

  MVC構(gòu)架

  已經(jīng)有很多優(yōu)秀的文章中已經(jīng)探討了MVC程序的構(gòu)架,所以本篇文章就不再累述相關(guān)細(xì)節(jié)了。如果想要了解更多,我推薦訪問(wèn)ASP.NET MVC官方站點(diǎn).簡(jiǎn)單二代說(shuō),M代表Model,也是包含BO,BLL,DAL的地方,V代表View,也是UI相關(guān)開(kāi)發(fā)的部分,或者說(shuō)是用戶看到的部分,C是Controller的簡(jiǎn)寫,也是控制用戶請(qǐng)求與程序回復(fù)的部分。如果用戶點(diǎn)擊了一個(gè)指向特定地址的按鈕,請(qǐng)求會(huì)和Controller的Action(類的方法)進(jìn)行匹配,而Action負(fù)責(zé)處理請(qǐng)求,并返回響應(yīng)。通常情況下是一個(gè)新的View,或者是更新現(xiàn)有的View。

  下面用Visual Studio創(chuàng)建一個(gè)MVC應(yīng)用程序并刪除默認(rèn)的View和Controller,然后將Imar的程序中的Bo,Bll和DAL復(fù)制到這個(gè)MVC程序的Model內(nèi),我還復(fù)制了響應(yīng)的數(shù)據(jù)庫(kù)文件和Style.css。

  我還做了一些其他的修改,把數(shù)據(jù)庫(kù)連接字符串添加到Web.Config中。除此之外,我還將復(fù)制過(guò)來(lái)的代碼的命名空間做了響應(yīng)的調(diào)整并把DAL層的代碼升級(jí)到了3.0.雖然這并不是必須的。做完這些,我按Ctrl+Shift+F5來(lái)測(cè)試是否編譯成功。------------------

  Controller

  我添加了4個(gè)Controller(Visual Studio附帶的默認(rèn)Controller已經(jīng)被刪除),和四個(gè)實(shí)體類相匹配。它們分別為:ContactController, PhoneController, AddressController and EmailController。

  每個(gè)Controller都含有四個(gè)Action:List, Add, Edit and Delete。首先需要在Global.exe中為這些Action注冊(cè)這些路由。

public static void RegisterRoutes(RouteCollection routes){  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");  routes.MapRoute(      "Default",                                                    "{controller}/{action}/{id}",                                 new { controller = "Contact", action = "List", id = " " }    );}

NET技術(shù)【譯】ASP.NET MVC并不僅僅只是Linq to SQL,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品jizz在线观看老狼 | 91视在线国内在线播放酒店 | 欧美freesex黑人又粗又大 | 久久精品91| 精品欧美一区二区在线观看视频 | 91精品www | 91精品国产综合久久国产大片 | 精品视频一区二区三区四区 | 日本超碰 | 成人av鲁丝片一区二区小说 | 亚洲精品久久久久久久久久久久久 | 国产精品毛片一区二区在线看 | 日韩视频在线观看 | 日韩视频精品在线 | 亚洲激情一区二区三区 | 国产成人精品一区二三区在线观看 | 国产清纯白嫩初高生在线播放视频 | 伊人焦久影院 | 亚洲欧美成人 | 精品成人 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 综合久久一区 | 日韩有码在线观看 | 日韩欧美视频免费在线观看 | 91xh98hx 在线 国产| 欧美一级欧美一级在线播放 | 亚洲精品久久久一区二区三区 | 欧美1区2区 | 欧美日韩一区二区三区四区五区 | 一级日批片 | 国产一区二区三区四区在线观看 | 一区二区日韩 | 黄色欧美视频 | 亚洲欧美日韩精品久久亚洲区 | 亚洲97| 中文字幕国产视频 | 国产免费又黄又爽又刺激蜜月al | 欧美久久久| 亚洲一区二区在线视频 | 精品久久久久久久久久久久 | 成年人在线观看视频 |