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

首頁 > 編程 > .NET > 正文

如何在ASP.NET中使用三層架構_.Net教程

2024-07-10 12:52:45
字體:
來源:轉載
供稿:網友

推薦:asp.net如何得到GRIDVIEW中某行某列值的方法
根據某列的值改變其樣式最好的方法是在GridView的DataRowBound事件中想辦法。在GridView中的行綁定數據后將立即執行 DataRowBound事件。DataRowBound事件使用GridViewRowEventargs類作為事件變量。通過事件變量你能夠利用 GridViewRowEventArgs屬性操作已經綁定數據的

   學ASP.NET都知道它的最經典的架構是三層架構,也是目前應用得最廣泛的一種架構.以前說起三層架構大家都知道MVC架構,這是html開發中用得比較多的,現在AJAX主要就是用這種架構。大家ASP.NET的三層是指數據訪問層,業務邏輯層和表示層,而且都知道數據訪問層是用來訪問數據的,業務邏輯層是用來處理一些系統的業務邏輯的,表示層就是把內容呈現出來給用戶,與用戶進行交互的。劃分三層的好處就是每一層都是獨立的,修改其中一層一般不會影響其他層的代碼,這樣就大大的方便了日后的維護和升級。它最大的缺點是架構和編碼都比較復雜,而且對性能的提高沒有任何幫助,反而還可能會降低執行效率。

  有時候真的覺得“三層”編起來挺麻煩的,在ASP.NET 2.0里,訪問數據和顯示出來只要拖兩個控件就可以了(AccessDataSource/SQLDatasource和GridView),幾分鐘一個頁面就出來了,而且還具備了修改中,刪除,分頁,排序等功能。而用三層架構就麻煩多了,先要寫數據訪問層的代碼,接著寫業務邏輯層的代碼(要調用數據層的方法),最后才是表示層,也就是頁面的設計,還有調用業務邏輯層的代碼讀取數據。(注意:表示層是絕對不會訪問數據層的內容,只能通過業務層。業務層在這里是連接它們的橋梁。所以說業務層是最重要的一層)既然這樣為什么還要用三層呢?前面提到的一層架構的一個很大的問題就是前臺和后臺代碼沒有很好的分開,不利于分工,第二,不利于日后的維護和升級。如果是個人主頁或者是一些一個人完成的小系統用一層還是挺方面的。如果是一些比較大的系統,特別是企業級的應用,就非用三層甚至n層不可了。一般三層就很夠了,再劃分更多只會增加設計和編碼的難度。

  那到底怎么去分層呢?怎么樣分層就符合三層架構原則呢?這是很多剛入門的人經常問的問題。我翻了很多本案例書,可惜很多都是一層或者是兩層架構的,絕少三層的。后來研究了petshop4.0和下了一些國外的資料來看才開始對如何分層有點了解。我總結了一下主要有以下三種分層方式:

  一:數據層不包含任何代碼,只有數據庫,還有相關的存儲過程。

  這種模式下,數據層看起來就變得很簡單了。只包含你建立的數據庫,和一些存儲過程(注意是存儲過程)。其實這些存儲過程的建立也是相當復雜的(我以后會專門寫一篇這方面的文章),因為它們可以完成除數據訪問外的其他一些很強大的功能,如分頁,實現搜索算法等。數據訪問的邏輯就都放在業務層,當然業務層還包含其他一些邏輯代碼。我們來看一個示例,假設數據庫里有一個表BOOKS(書),建立一個存儲過程GetAllBooks,用來讀取書的信息,這樣在業務層里編一個方法GetBookS()和一個公用數據庫訪問類,GetBooks()就通過數據庫訪問類打開連接,執行在存儲過程,返回數據(返回類型可以是DataTable,DataSet,DataReader或者實體類)。業務層單獨編譯成一個或者幾個DLL文件。接著就是表示層了,表示層通過調用GetBookS()返回數據綁定在相關的控件里。務層的方法都是在表示層調用。一般來說book.aspx和book.aspx.cs都是表示層的內容。所有前臺的設計,相關控件,數據緩存都是屬于表示層。

  二:數據層還包含所有公共數據訪問代碼。

  這種模式和前一種差別不大,主要是把數據訪問代碼六到數據層。這樣可以很方面實現對多數據庫的支持。業務邏輯層直接調用數據層的相關訪問數據的代碼,完全不必了解底層是什么數據庫。其他和前一種沒什么分別。

  三:所有數據讀取都放在數據層。

  這種模式下像前面所述的GetBooks()方法都是放在數據層,在業務層再定義一個GetBookS()方法以供表示層調用。這種模式下業務層不但不必了解底層是什么數據庫,而且連數據庫的結構都不必了解了。這可以說是最標準的三層架構了,在Microsoft的PetShop 4.0里就是用這種模式。

  以上就是我總結的一些內容,可能不是很準確,請大家多多指教。

分享:.net SMTP發送Email實例(可帶附件)
本文為大家詳細介紹下.net SMTP發送Email同時可帶附件的具體實現思路及代碼,想實現的朋友可以參考下哈,希望對大家有所幫助 復制代碼 代碼如下: public static void sendEmail(string toAddress, string emailbody) { var fromAddress = ConfigurationManager.AppSetti

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卫辉市| 库伦旗| 望城县| 南乐县| 德令哈市| 武强县| 肃北| 大冶市| 浪卡子县| 乌鲁木齐县| 喀喇| 左权县| 宜川县| 维西| 济阳县| 苏尼特左旗| 威海市| 辽源市| 罗城| 临湘市| 普陀区| 南充市| 泰来县| 合川市| 耿马| 西畴县| 靖州| 荣昌县| 商河县| 二手房| 陇南市| 车险| 报价| 镇雄县| 夏邑县| 巴林右旗| 马龙县| 宜春市| 临高县| 九龙坡区| 南宁市|