久久这里只有精品国产99-久久这里只有精品2-久久这里只有精品1-久久这里只精品热在线99-在线少女漫画-在线涩涩免费观看国产精品

探析ASP.Net程序構架與程序代碼分離技巧

來源:期刊VIP網(wǎng)所屬分類:計算機網(wǎng)絡時間:瀏覽:

  為了便于理解,這里設計的頁面比較簡單,頁面分為三個主要的部分,頭部包含一個AdRotator控件(用于顯示廣告)與一個Label控件(用于顯示當前廣告鏈接地址);中部是一個登陸頁面,包括兩個TextBox控件(分別用于輸入用戶名與密碼)、一個Label控件(顯示登陸是否成功)與一個Button控件(作為提交按鈕);底部包含兩個Label控件(分別顯示當前用戶名與用戶權限)。

  一年前,當本人拿到一個名叫TWIG的PHP程序時,立即被作者OOP編程思想所折服,很難想像TWIG中所有的功能(行事歷、郵件、個性化)均在一個PHP文件(index.php3)中執(zhí)行完成,這就得益于作者采用了程序代碼與頁面構架分離的思想,但是我也看到盡管作者做了很大的努力,但由于PHP的局限性,程序并沒有真正做到代碼與構架的分離,index.php3這個主文件由于要執(zhí)行的功能太多,所以其require的模塊文件相當之多,至使整個文件依然顯得十分零亂,本人愚昧,當時花了半個月的時間,才真正明白程序的構架,分析代碼之苦,無人能知啊(黯然淚下......)。

  TWIG程序對我此后的編程有著很大的影響,但是即使這樣的作品,依然沒有擺脫程序代碼與HTML代碼混雜的局面。

  程序代碼與頁面構架的分離是WEB程序員多年的夢想。在ASP.Net出現(xiàn)之前,無論是ASP、PHP還是JSP,程序代碼與HTML代碼都是混雜在一起的,這種做法,雖然在WEB技術初期受到贊揚,但是隨著時間的的推移,它的弊端是越來越明顯,當程序代碼很長時,HTML代碼與其混雜,程序的可讀性變得很差,讓人無法分清程序真正要表示的頁面構架。

  而新技術ASP.Net則通過Codebehind、用戶控件(User Control)以及自定義控件(Custom Control)等方法真正做到了代碼的分離。這是一個了不起的進步,大家可以在本文中看到分離代碼后的ASP.Net程序的結構是多么的清晰。

  熟悉ASP.Net的朋友,馬上就會意識到頭部由于使用了AdRotator控件,所以必定存在OnAdCreated事件以便在Label控件顯示相應鏈接;而中部由于使用Button控件做為提交按鈕,所以必定有一個OnClick事件處理。

  1 CodeBehind

  首先我們就看看如何使用CodeBehind方法來實現(xiàn)代碼與頁面構架的分離,下面給出的源程序是主ASP.Net程序--Example1.aspx:

  當前廣告鏈接:

  登陸窗口

  用戶名:

  密碼:

  用戶名:

  權限:

  例程中,大家可以清楚地看到程序中不包含任何C#、VB、JavaScript來處理OnAdCreated與OnClick事件,但是執(zhí)行本程序,程序能夠正常使用(如圖2-1與圖2-2)。這便是使用CodeBehinde的結果,事件處理已經(jīng)被轉移到其它程序中定義執(zhí)行。請大家注意本例中第一行的信息:

  一般在ASP.Net程序中,Page指令都在設定本程序應當使用什么語言(使用Language屬性),而本例中沒有出現(xiàn)Language屬性,而是出現(xiàn)了兩個新的Page屬性:Src與Inherits。Src屬性設定事件處理真正的代碼位置,Inherits屬性則設定需要引入的類名。可以看到本例中定義事件處理的文件是EventHandle.cs,我們來看看它的具體內容: using System;

  using System.Data;

  using System.Data.SqlClient;

  using System.Web;

  using System.Web.UI;

  using System.Web.UI.WebControls;

  using System.Web.UI.HtmlControls;

  public class Aspcn : Page

  {

  //聲明Web Form中出現(xiàn)的控件

  public Label lblAdText,lblUserName,lblPurview,lblMsgShow;

  public TextBox tbUserName,tbPasswd;

  public Button btnSubmit;

  public AdRotator ad;

  private string strConnString = "server=(local)\Feidao;database=aspcn;Trusted_Connection=yes";

  //處理Adrotator控件建立事件

  public void AdCreated(Object src,AdCreatedEventArgs e)

  {

  lblAdText.Text = e.AlternateText;

  }

  public void Submit_Click(Object sender,EventArgs e)

  {

  SqlConnection MyConn = new SqlConnection(strConnString);

  MyConn.Open();

  string strUserName,strPassword,strSelect;

  strUserName = tbUserName.Text;

  strPassword = tbPasswd.Text;

  strSelect = "select * from bbs_user where id='"+strUserName+"' and password='"+strPassword+"'";

  SqlCommand MyComm = new SqlCommand(strSelect,MyConn);

  SqlDataReader dr = MyComm.ExecuteReader();

  if(dr.Read())

  {

  //登陸成功

  lblMsgShow.Text = "登陸成功";

  lblUserName.Text = dr["id"].ToString();

  lblPurview.Text = dr["purview"].ToString();

  }

  else

  {

  //登陸不成功

  lblMsgShow.Text = "登陸不成功";

  }

  dr.Close();

  MyConn.Close();

  }

  }

  進行事件處理是定義在一個類中的(本例中是Aspcn,注意大小寫),由于需要與Web Forms相關聯(lián),所以此類還必須繼承Page類。

  分析程序,大家可以看到程序中對事件的處理操作是與普通的未進行代碼分離的程序是一樣的,并沒有什么特別的地方。(本人在程序中已經(jīng)給出的相關注釋,相信對大家理解程序有所幫助)

  使用CodeBehind技術后,大家需要多寫一些代碼,比如聲明控件等,也許大家很不喜歡多寫這樣的代碼,但是大家也必須看到使用了CodeBehind技術后,主程序的可讀性大大增加了。在Example1.aspx中相信大家很快就可以區(qū)分頁面構架的各個部分,大家想想這些構架如果在其它技術是否能看得如此清楚?

  (這里的程序只做演示用,呵呵,大家可不要抓我什么引號漏洞這些小辮子喲)

  2 用戶控件(UserControl)

  CodeBehind技術真正實現(xiàn)了代碼與構架的分離,比以前的技術前進了一大步,但是它的缺陷也是顯而易見的,比如主頁面中部那個登陸區(qū),如果內容很多,HTML顯示代碼的依然會占用很大的區(qū)域,程序的可讀性依然會降低。

  ASP.Net也提供了解決辦法,這就是用戶控件。

  用戶控件我們可以將其視為不用編譯的Server控件。即然是控件,那么就肯定會遵從控件的使用方法。我們將Example1.aspx中的每個Panel整體看成為一個控件,因此Example1.aspx的主體部分通過使用用戶控件便可以減少為只有三行:

白嫩无码人妻熟妇啪啪区| 宝宝好涨水快流出来免费视频 | 亚洲制服丝袜无码AV在线| 亚洲中文字幕在线第六区| 中文在线8资源库| Xx性欧美肥妇精品久久久久久久久| 波多野结衣AV中文一区二区三区| 方辰苏婉儿是哪本小说的主角 | FREE性欧美精品VIDEOS| 吃奶呻吟打开双腿做受是免费视频 | 成年性生交大片免费看| 国产精品污WWW在线观看| 精产国品一二三产品区别在 | 漂亮人妻洗澡被公强啪啪| 色婷婷成人AV电影| 亚洲AV 无码片一区二区三区| 亚洲日韩精品一区二区三区| 99久热RE在线精品99RE| 国产 熟女 高潮 www| 狠狠色噜噜狠狠狠8888米奇| 免费高清A级毛片在线播放| 日本亲近相奷中文字幕| 性欧美18ⅩXOO极品FREE| 一本一道AV无码中文字幕﹣百度| YELLOW在线观看| 国产精品丝袜黑色高跟鞋| 久久精品国产精品亚洲蜜月| 欧美性狂猛BBBBBBXXXX| 同学要做吗PO爱喝花茶的小酥肉 | 黄A大片AV永久免费| 欧美JIZZ18性欧美| 天天做天天爱天天爽综合网 | 久久久久亚洲AV无码专区蜜芽| 欧美一级 片内射黑人| 午夜成人亚洲理论片在线观看| 艳妇乳肉豪妇荡乳ⅩXXO电影| 锕锕锕锕锕锕好污网站入口推特| 国产午夜亚洲精品国产成人小说 | 国产精品污WWW一区二区三区| 久久香综合精品久久伊人| 日韩一区二区三区无码免费视频| 亚洲国产成人无码电影| JAPAN色系VIDEOS护士| 国内精品久久影院综合日日| 女人张开腿扒开内裤让男生桶| 偷拍亚洲另类无码专区制服| 又大又硬又粗再深一点视频| 公交车上噗嗤一声尽根而没| 久久精品网站免费观看| 日韩一区二区三区av| 亚洲无日韩码精品| 炖肉计(是今)海棠| 狼人视频国产在线视频WWW色| 四虎国产成人永久精品免费| 孕妇特级毛片WW无码内射| 国产激情久久久久影院小草| 免费A级毛片无码专区| 午夜一区欧美二区高清三区| 最新 国产 精品 精品 视频| 国产无遮挡又黄又爽免费视频 | 99视频69E精品视频| 狠狠爱五月丁香亚洲综合| 欧美黑人XXXXXⅩ| 亚洲第一无码AV播放器下载| 纯爱无遮挡H肉动漫| 林静公交车被做到高C| 新CHINESE无套小帅KTV| 啊别插了视频髙清在线观看 | 亚洲中文成人中文字幕| 国产成人18黄网站免费观看| 男生把自己的手放到女生的QQ里| 亚洲 成人 无码 在线观看| WWW亚洲精品自慰一区二区三| 精品亚洲国产成人AV在线时间短 | 国产成人AV综合亚洲色欲| 免费看又黄又无码的网站| 亚洲AV无码秘 蜜桃牛牛| 大肉大捧一进一出视频出来呀| 蜜乳AV一区二区三区| 亚洲成AV人片在线观看无APP| 成年免费A级毛片无码| 麻豆传播媒体2023最新网站| 亚洲AV无码一区二区三区网站 | 10岁幼儿TREE小学生| 娇妻被朋友玩得呻吟在线电影| 少妇高潮惨叫久久久久电影69| 2021国产手机在线精品| 精品伊人久久大线蕉色首页| 无人区码一码二码三码| 成人网站WWW污污污网站| 男女啪啪永久免费网站| 亚洲人成色777777网站| 国产三级农村妇女在线| 少妇人妻无码永久免费视频| JAPAN丰满人妻VIDEOS| 美女高潮流白浆娇喘免费网站 | 波多野结衣加勒比东京热| 民工把我奶头掏出来了怎么办| 亚洲人妻无码一区二区| 国产在线看片无码不卡| 天天摸天天摸色综合舒服网| 补课老师让我爽了一夜| 欧美黑人XXXX性高清版| 中文字幕被公侵犯的漂亮人妻| 九九精品99久久久香蕉| 亚洲AV无码麻豆一区二区三区| 国产成人无码一区二区三区 | 丰满爆乳一区二区三区| 日本高清在线视频WWW色| DY888午夜福利视频| 妺妺窝人体色7777777| 在线观看亚洲AV| 久久天天躁夜夜躁狠狠85| 亚洲乱亚洲乱妇无码麻豆| 狠狠色丁香久久综合| 亚洲 欧美 综合 另类 中字| 国产精品毛片A∨一区二区三区| 色欲香天天综合网站| 第一次爱的人免费观看电视剧| 日韩高清不卡无码AV| 菠萝视频高清视频在线7| 强壮公弄得我次次高潮| XXX.日本学生妹.COM| 欧美人与动牲交片免费| A狠狠久久蜜臀婷色中文网| 欧美国产激情二区三区| AE射频电源成色| 欧美一区精品视频一区二区| ZZTT166.CCM黑料| 人人超人人超碰超国产| 拔萝卜影视剧免费观看| 人妻JapanXXXX精品HD| 办公室的交易HD在线观看| 日本熟妇人妻XXXXX| 成人午夜福利视频网址| 少妇泬出白浆18P| 国产精品毛片在线完整版SAB| 无码少妇一区二区浪潮免费| 国产无遮挡又爽又黄的视频| 亚洲S久久久久一区二区| 极品JK撕破丝袜自慰喷水| 亚洲人成网亚洲欧洲无码久久| 久久久久久无码AV成人影院| 真实国产乱啪福利露脸| 欧美国产激情二区三区| 成人区人妻精品一区二区网站| 色爽黄1000部免费软件下载 | ChineSe玩弄老年熟妇| 人久久精品中文字幕无码小明47| 成年女人毛片视频免费| 无码A∨高潮抽搐流白浆8MAV| 国产无套码AⅤ在线观看在线播放| 亚洲AV永久无码精品国产精品| 久久精品国产大片免费观看| 装睡被陌生人摸出水好爽| 欧洲老妇做爰XXXⅩ性活电影| 粗大黑人巨茎大战欧美成人 | 国产精品欧美一区二区三区| 亚洲AV中文无码乱人伦在线播放| 久久国产精品娇妻素人| 。国产精品麻豆成人AV网| 人人爽人人操人人精品| 国产成人综合在线观看不卡| 亚洲国产AV一区二区三区四区| 久久综合给合久久狠狠狠97色6 | 国产成人69视频午夜福利在线观| 亚洲AV无码一区二区三区DV | 国产精选午睡沙发系列999| 亚洲精品无码久久久久久| 免费AV一区二区三区无码| 本道久久综合无码中文字幕| 五十老熟妇乱子伦免费观看| 久久久精品人妻一区亚美研究所| 9999国产精品欧美久久久久久| 日韩亚洲欧美精品综合| 国精产品一区一区三区有限在线| 又粗又大又爽又舒服日产| 人人超碰人人超级碰国| 国产台湾无码AV片在线观看| 影音先锋男人资源站| 日本精品一线二线三线区别在哪里| 国产精品岛国久久久久| 亚洲日韩AV一区二区三区中文| 欧美黑人猛XXxXX内射| 国产精品V无码A片在线看| 亚洲欲色欲色XXXXX在线观看| 人妻波多野结衣爽到喷水| 国产嫖妓风韵犹存对白| 中文字幕免费不卡二区| 四虎国产精品永久在线动漫| 久久久久亚洲波多野结衣| 超碰97人人模人人爽人人喊| 亚洲成人AV在线播放| 欧美性狂猛XXXXXBBBBB| 国精产品一区一区三区有限在线 | 亚洲日韩一区二区三区黑人 | 亚洲国产精品久久久久蜜桃网站| 欧美精品AⅤ一区二区三区| 国产午睡沙发系列大全| 99国产精品国产精品九九|