自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET代碼分離之網(wǎng)站建設(shè)應(yīng)用淺析

開發(fā) 后端
ASP.NET代碼分離之網(wǎng)站建設(shè)應(yīng)用現(xiàn)在是一個(gè)主流的概念,那么具體的模塊和結(jié)構(gòu)是什么呢?本文就向你介紹這方面的內(nèi)容。

ASP.NET代碼分離之網(wǎng)站建設(shè)應(yīng)用之前在我們傳統(tǒng)的網(wǎng)站建設(shè)中通常是先設(shè)計(jì)網(wǎng)站頁面,再利用開發(fā)工具,在網(wǎng)站的框架內(nèi)進(jìn)行功能設(shè)計(jì)。這樣的網(wǎng)站建設(shè)存在很多弊端,其中最突出的缺點(diǎn)是不利于小組共同開發(fā),各環(huán)節(jié)之間依賴性太強(qiáng)。

使用了ASP.NET代碼分離之后,在ASP.NET中我們可以利用后臺(tái)編碼,把HTML用戶界面設(shè)計(jì)(顏色、美學(xué)等)與頁面代碼區(qū)分開來。這樣就可以解決我們小組的并行開發(fā)問題。

其主題思想是:美工來進(jìn)行網(wǎng)站頁面的設(shè)計(jì),程序員對(duì)網(wǎng)站要實(shí)現(xiàn)的功能分模塊開發(fā)。待到頁面和功能模塊開發(fā)完畢后,我們只要在美工界面中對(duì)其HTML代碼稍加修改,就可以完成對(duì)應(yīng)的功能。

下面就用一個(gè)ASP.NET代碼分離小例子來進(jìn)行說明。

程序員完成的功能有如下模塊:

1. 在左邊的Column1處點(diǎn)擊,中間的三個(gè)內(nèi)容顯示小組三條新聞

2. 在Column2處點(diǎn)擊,中間的三個(gè)內(nèi)容顯示三個(gè)人員情況

3. 在Column3處點(diǎn)擊,彈出一個(gè)窗口顯示一張照片。

為了測試,我們可以將這三個(gè)功能分別交給兩個(gè)程序員來做。

甲程序員:完成模塊1和2

1. 甲可以先建立一個(gè)WebApplication,在界面上放入兩個(gè)ImageButton:IBtnNews,IBtnMember和六個(gè)Label:Lb1Title,Lb1Detail, Lb2Title,Lb2Detail, Lb3Title,Lb3Detail。生成一個(gè)Web應(yīng)用程序,點(diǎn)擊IBNews,六個(gè)Label顯示小組新聞,點(diǎn)擊IBMember,六個(gè)Label顯示小組三名成員。這樣我們就為建立源文件創(chuàng)建好了條件。

2. 我們建立一個(gè)C#類文件CodeBehind.cs。

3. 由于我們是建立的Web程序,則需要在添加引用中,添加System.Web.dll應(yīng)用。

4. 去掉構(gòu)造函數(shù),因?yàn)楹笈_(tái)編碼不需要?jiǎng)?chuàng)建類。

5. 讓類從Page對(duì)象上繼承功能,即

public class CodeBehind:System.Web.UI.Page

6. 將剛才生成的WebApplication中的相關(guān)代碼復(fù)制進(jìn)來,主要有兩個(gè)部分:聲明部分和方法部分,在這里把應(yīng)用程序中的可訪問級(jí)別protected,改為public,因?yàn)橹挥羞@樣外部的代碼才可以訪問我們的方法和變量,要注意的是頁面上所有與后臺(tái)編碼文件交戶的控件都要有一個(gè)對(duì)應(yīng)的本地變量。

7. 生成一個(gè)CodeBehind.cs。

至此,甲程序員的工作完成。乙程序員可以用同樣的方式生成他的CodeBehind.cs文件。甲乙兩位程序員進(jìn)行代碼合成,完成一個(gè)完整的CodeBehinde.cs;

代碼如下:

  1. using System;  
  2. using System.Web.UI;  
  3. using System.Web.UI.WebControls;  
  4. namespace codetest  
  5. {  
  6.  public class News:System.Web.UI.Page  
  7.  {  
  8.  public System.Web.UI.WebControls.Label Lb1Title;  
  9.  public System.Web.UI.WebControls.Label Lb1Detail;  
  10.  public System.Web.UI.WebControls.Label Lb2Title;  
  11.  public System.Web.UI.WebControls.Label Lb2Detail;  
  12.  public System.Web.UI.WebControls.Label Lb3Title;  
  13.  public System.Web.UI.WebControls.Label Lb3Detail;  
  14.  public System.Web.UI.WebControls.ImageButton IBtnNews;  
  15.  public System.Web.UI.WebControls.ImageButton IIBtnMember;  
  16.  public System.Web.UI.WebControls.ImageButton IBtnContact;  
  17.  public void IBtnNews_Click(object sender, System.Web.UI.ImageClickEventArgs e)  
  18.  {  
  19.  …………………………  
  20.  }  
  21.  public void IIBtnMember_Click(object sender, System.Web.UI.ImageClickEventArgs e)  
  22.  {  
  23.  …………………………  
  24.  }  
  25.    
  26.  public void IBtnContact_Click(object sender, System.Web.UI.ImageClickEventArgs e)  
  27.  {  
  28.  string strScript="﹤script language=javascript﹥\n";  
  29.  strScript+="window.alert("+"\"電話:66763467\""+");";  
  30.  strScript+="﹤/script﹥";  
  31.  Response.Write(strScript);  
  32.  }  
  33.    
  34.  }  

下面我們來說明如何將建好的后臺(tái)代碼和美工好的網(wǎng)頁結(jié)合起來。

1.集成工程師生成一個(gè)新的WebApplication,將CodeBehind.cs文件保存在bin目錄下,并將其加入引用。

2.集成工程師將美工好的網(wǎng)頁的圖片加入對(duì)應(yīng)的引用,復(fù)制HTML代碼,放入新的WebApplication的頁面中,這樣,我們就可以看到美工好的頁面展現(xiàn)在我們的.aspx文件中。

3.更改頁面最上面的黃色代碼,其中Codebehind="CodeBehind.cs":讓頁面后臺(tái)支持的代碼指向我們寫好的cs文件。Inherits="codetest.CodeBehind":讓頁面繼承于類CodeBehind中的功能,codetest為我們定義的名詞空間。

4.在HTML代碼中﹤body﹥內(nèi)填入﹤ form id="Form1" method="post" runat="server"﹥?cè)讴?body﹥上面加上﹤/form﹥。

5.相對(duì)應(yīng)的地方拖入Web控件,注意這里的ID要與cs文件中的定義對(duì)應(yīng)。

6.在HTML代碼中,找到Web控件,添加對(duì)應(yīng)的方法名稱。
這樣就結(jié)合完畢。運(yùn)行看看效果如何。

大家看上面在改動(dòng)HTML代碼的時(shí)候稍顯麻煩,我們還有一種更簡單的方法,只要在后臺(tái)文件中加入幾行代碼,我們就不必在HTML中找到控件的位置,加入事件引用了。

在后臺(tái)文件中加入

  1. protected override void OnInit(EventArgs e)  
  2. //此方法引發(fā)Init事件,當(dāng)服務(wù)器控件初始化是發(fā)生。  
  3. {  
  4.  初始化控件方法()  
  5.  base.OnInit(e);  
  6. }  
  7. private void初始化控件方法();  
  8. {  
  9.  this.控件名.Click+=new EventHandler(控件事件響應(yīng)方法);  

上面兩個(gè)方法的加入,我們可以看到,只要我們?cè)诤笈_(tái)代碼中加入初始化控件的方法,就可以將對(duì)應(yīng)的事件加入進(jìn)去,而不用在HTML代碼中加入事件引用了。同樣,我們將常用的Page_Load事件也可以實(shí)現(xiàn)

只要加入:

  1. Private void Page_Load(object sender,System.EventArgs e)  
  2. {  
  3.  代碼;  
  4. }  
  5. private void初始化控件方法();  
  6. {  
  7.  this.控件名.Click+=new System.EventHandler(控件事件響應(yīng)方法);  
  8.  this.Load+=new System.EventHandler(this.Page_Load);  

EventHandler:是表示將處理不包含事件數(shù)據(jù)的事件的方法。

控件事件響應(yīng)方法只要符合:方法名(object sender,System.EventArgs e)就可以。

ASP.NET代碼分離目前存在的問題:

1. 如何保持美工所作的效果不因使用了Web控件而受影響。

2. 多人在做同一個(gè)網(wǎng)頁的時(shí)候,只能通過合并cs文件的方法來集成后臺(tái)代碼。不利于代碼的維護(hù)。

ASP.NET代碼分離在網(wǎng)站建設(shè)中的作用我們就先介紹到這里,希望對(duì)你有所幫助。

【編輯推薦】

  1. ASP.NET數(shù)據(jù)驗(yàn)證控件使用淺析
  2. ASP.NET數(shù)據(jù)驗(yàn)證五大常用控件淺析
  3. 有關(guān)ASP.NET代碼分離的一些討論
  4. ASP.NET代碼分離使用的一點(diǎn)體會(huì)
  5. ASP.NET數(shù)據(jù)驗(yàn)證技術(shù)研究詳解
責(zé)任編輯:仲衡 來源: 王朝網(wǎng)絡(luò)
相關(guān)推薦

2009-08-05 15:10:04

ASP.NET網(wǎng)站設(shè)置

2009-08-04 17:16:16

ASP.NET代碼優(yōu)化

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設(shè)計(jì)

2009-08-03 13:38:18

ASP.NET編程模型

2009-07-20 16:08:04

ASP.NET應(yīng)用程序

2009-08-05 15:01:04

ASP.NET應(yīng)用Vi

2009-08-05 16:59:55

ASP.NET組件設(shè)計(jì)

2009-07-24 13:41:15

ASP.NET AJA

2009-08-05 18:36:12

ASP.NET Che

2009-07-30 15:39:55

ASP.NET 2.0

2009-07-31 12:43:59

ASP.NET MVC

2009-08-05 15:50:13

ASP.NET優(yōu)點(diǎn)

2009-07-29 11:33:14

ASP.NET技巧ASP.NET應(yīng)用程序

2009-08-10 14:38:29

ASP.NET組件設(shè)計(jì)

2009-07-29 10:52:09

數(shù)據(jù)采集程序ASP.NET技巧

2009-08-05 10:17:55

ASP.NET TheASP.NET開發(fā)技巧

2009-08-03 11:21:47

ASP.NET編程模型

2009-08-06 15:21:45

ASP.NET控件開發(fā)RenderConte

2009-08-07 17:41:07

ASP.NET Web

2009-08-03 17:07:13

ASP.NET編程規(guī)范
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)