天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

  很多ASP.NET的教程中的示例代碼使用的數據訪問方法是Linq to Sql或是Entity Framework。我在www.ASP.NET的論壇上看到很多關于討論是否有其他替代的數據庫訪問方式,回答是:當然有。這篇文章就講述了使用Ado.NET作為數據訪問層來實現一個典型的增刪查改程序。

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

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

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

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

  MVC構架

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

  下面用Visual Studio創建一個MVC應用程序并刪除默認的View和Controller,然后將Imar的程序中的Bo,Bll和DAL復制到這個MVC程序的Model內,我還復制了響應的數據庫文件和Style.css。

  我還做了一些其他的修改,把數據庫連接字符串添加到Web.Config中。除此之外,我還將復制過來的代碼的命名空間做了響應的調整并把DAL層的代碼升級到了3.0.雖然這并不是必須的。做完這些,我按Ctrl+Shift+F5來測試是否編譯成功。------------------

  Controller

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

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

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

NET技術【譯】ASP.NET MVC并不僅僅只是Linq to SQL,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 囯产精品久久久久久久久蜜桃 | 久久久性色精品国产免费观看 | 日韩影院久久 | 樱花之恋动漫免费观看 | 忘忧草在线社区WWW日本-韩国 | 国产乱人伦AV麻豆网 | 欧美AAAA片免费播放观看 | 色综合伊人色综合网站中国 | 免费A级毛片无码鲁大师 | 亚洲 日本 欧美 中文字幕 | 东北女人奶大毛多水多 | 校草让我脱了内裤给全班看 | 毛片在线不卡 | 亚洲人精品午夜射精日韩 | 欧美人与动牲交A免费 | 99麻豆精品国产人妻无码 | 日本高清无吗 | 国产99视频精品一区 | 麻豆精品传媒卡一卡二传媒短视频 | 大肥婆丰满大肥奶bbw肥 | 福利社的阿姨 | 中国女人精69xxxxxx视频 | 9420高清免费观看在线大全 | 久久频这里精品99香蕉久网址 | 韩剧甜性涩爱 | 国产精品久久久久影院色老大 | 69日本人xxxx16—18 | 麻豆无人区乱码 | 在线播放真实国产乱子伦 | 中文字幕亚洲无线码在线 | 亚洲精品久久AV无码蜜桃 | 成人1000部免费观看视频 | 成人天堂婷婷青青视频在线观看 | AV无码九九久久 | bl(高h)文| 精品美女国产互换人妻 | 俄罗斯美女啪啪 | 久久re这里视频精品15 | 一本色道久久综合亚洲精品加 | np高h肉辣一女多男 no视频在线观看 | 年轻夫妇韩剧中文版免费观看 |