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

首頁(yè) > 編程 > .NET > 正文

選擇ASP.NET代碼編寫(xiě)策略

2024-07-10 12:56:35
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  • 本文來(lái)源于網(wǎng)頁(yè)設(shè)計(jì)愛(ài)好者web開(kāi)發(fā)社區(qū)http://www.html.org.cn收集整理,歡迎訪問(wèn)。
  • 開(kāi)發(fā)社區(qū)包括.net framework的內(nèi)容,其中最有特色的是asp.net的。然而,這里也包含大量的有關(guān)legacy asp代碼及其開(kāi)發(fā)人員的討論。



    很多asp開(kāi)發(fā)人員并非真正經(jīng)過(guò)培訓(xùn)的開(kāi)發(fā)者,他們往往只是html代碼編寫(xiě)者,他們處理的asp模型很不合理。這些開(kāi)發(fā)人員通常只知道將他們的asp常規(guī)思維應(yīng)用到asp.net環(huán)境中,而這個(gè)過(guò)程他們卻不知做出相應(yīng)的選擇。



    以往的缺點(diǎn)
    我特別喜歡asp.net所具有的穩(wěn)定性,尤其是當(dāng)我在asp開(kāi)發(fā)過(guò)程處于迷惑不解的時(shí)候。我的迷惑不解來(lái)自asp的本質(zhì),即所有操作都集中在同一個(gè)bucket,也就是說(shuō),一個(gè)asp頁(yè)既包含源代碼,也包含html。在一個(gè)web頁(yè)中放置java script也是類(lèi)似的,這通常稱(chēng)為內(nèi)聯(lián)(inline),但開(kāi)發(fā)人員通常將其稱(chēng)為意大利面程序碼(spaghetti code).

    在一個(gè)開(kāi)發(fā)項(xiàng)目中,計(jì)劃和開(kāi)發(fā)過(guò)程的結(jié)合沒(méi)有很好地與項(xiàng)目任務(wù)匹配,而出現(xiàn)這種情況通常為web用戶(hù)界面設(shè)計(jì)者和程序開(kāi)發(fā)者。允許人員查看asp代碼往往使得程序開(kāi)發(fā)者感到不安,并且使人員感到迷亂。一個(gè)比較可行的方法是將設(shè)計(jì)過(guò)程分離化。



    分離并改進(jìn)
    當(dāng)提及.net的優(yōu)點(diǎn)時(shí),微軟都會(huì)吹噓面向?qū)ο蟪绦蜷_(kāi)發(fā)(oop),而oop特點(diǎn)在asp.net中更為顯著。它通過(guò)一個(gè)背后代碼文件(codebehind file)的方式允許源代碼從web markup分離開(kāi)來(lái)。web markup存儲(chǔ)在一個(gè).aspx文件中,并且源代碼(vb.net,c#等)存放在一個(gè)附帶的代碼文件中。codebehind文件名取決于使用的開(kāi)發(fā)語(yǔ)言,但如果我們利用vb.net來(lái)建立一個(gè)名為testpage的asp.net頁(yè),以下的文件名是合法的:

    testpage.aspx:web markup,java script等。
    testpage.aspx.vb:包含vb.net源代碼的文件。


    如果選用的是c#.net語(yǔ)言,codebehind文件將被稱(chēng)為testpage.aspx.cs。codebehind文件包含的類(lèi)是來(lái)源于位于system.ui.web空間名稱(chēng)的page類(lèi)。codebehind文件與@page標(biāo)志的aspx文件及其附帶文件inherits屬性進(jìn)行鏈接。inherits屬性指向codebehind文件和類(lèi)的名稱(chēng),而這一指向不需要文件擴(kuò)展。

    <%@ page language="c#" inherits="testpage" %>



    語(yǔ)言的特性表示了頁(yè)面的語(yǔ)言──并不是codebehind。頁(yè)面可以通過(guò)內(nèi)聯(lián)(inline)代碼使用一種語(yǔ)言和在codebehind文件中使用的另一種語(yǔ)言。inherits屬性指定了頁(yè)面的基本類(lèi)(codebehind類(lèi))。

    在缺省情況下,codebehind文件使用page類(lèi)作為其基本類(lèi),但也可以使用普通的類(lèi)。這就提供了建立程序的主控頁(yè)面(master pages)的可能性。



    以visual studio .net方式處理
    使用codebehind文件是visual studio .net開(kāi)發(fā)環(huán)境中的默認(rèn)特性。例如,在asp.net頁(yè)中建立的@page標(biāo)志具有以下的語(yǔ)法:

    <%@ page language="c#" codebehind="testpage.aspx.cs"
    autoeventwireup="false" inherits="testpage" %>



    以上代碼包含兩個(gè)額外的特性:

    codebehind屬性指向頁(yè)面的codebehind文件。這一屬性只適用于visual studio .net。

    autoeventwireup屬性表示標(biāo)準(zhǔn)事件是否自動(dòng)地連接到代碼中的任意句柄。visual studio .net在處理事件建立時(shí)將這一屬性設(shè)置為false。



    visual studio .net將codebehind文件編譯成為一個(gè)可執(zhí)行文件,這一可執(zhí)行文件可使用于web程序的bin目錄中。這就加快了頁(yè)面的載入,因?yàn)楫?dāng)網(wǎng)頁(yè)首次被請(qǐng)求時(shí)無(wú)需再被編譯。另一方面,一旦第一個(gè)客戶(hù)端請(qǐng)示時(shí),內(nèi)聯(lián)(inline)代碼即被編譯。



    做出你自己的選擇
    oop語(yǔ)法是分離源代碼和用戶(hù)界面部分的支撐者,但這也并非意味著它能適用于所有情況。分離方法依賴(lài)于不同因素(包括開(kāi)發(fā)時(shí)間和專(zhuān)業(yè)技術(shù)),但擁有所有可能的知識(shí)可以更容易地做出決定。自從引入asp.net的介紹之后,關(guān)于內(nèi)聯(lián)(inline)和背后代碼(codebehind)的話題一直處于激烈的討論中。
    發(fā)表評(píng)論 共有條評(píng)論
    用戶(hù)名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 玛曲县| 万年县| 宜春市| 封丘县| 高陵县| 南木林县| 石屏县| 清丰县| 牟定县| 栾城县| 广昌县| 井研县| 衢州市| 蕲春县| 东宁县| 南丰县| 滁州市| 平塘县| 大方县| 岐山县| 青州市| 巴彦县| 灵丘县| 体育| 德保县| 滁州市| 新津县| 鹤岗市| 沈丘县| 定兴县| 隆回县| 大埔县| 太保市| 南昌县| 黑水县| 东乡族自治县| 资阳市| 民丰县| 通榆县| 宽城| 德兴市|