位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# ASP.NETWeb Forms

提問人:劉團圓發(fā)布時間:2020-12-09

選擇ASP.NETWeb Forms而不是其他框架的原因是:

    ? 對于中小型開發(fā)團隊和開發(fā)項目而言,Web Forms是最理想的選擇 

    ? 對于需要在HTTP通信中維護會話和狀態(tài)的Web應(yīng)用程序而言,Web Forms很有用 

    ? Web Forms基于非常直觀的一組請求管道事件

    相對于其他ASP.NET風(fēng)格,ASP.NET Web Forms是快速開發(fā)和部署功能豐富、性能良好的Web應(yīng)用程序的最好、最簡單的方法。表示邏輯和業(yè)務(wù)邏輯分離開來,與前端用戶界面開發(fā)人員和后臺編碼人員的技能集很好地對應(yīng)起來。這是一種理想情況,因為團隊可讓具備不同技能的人員同時開發(fā)項目的不同方面。

    ASP.NET Web Forms 常被認為是“臃腫的”,原因在于 viewstate 功能。viewstate 是在 ASP.NET Web Form 中維護狀態(tài)的一種方式。例如,假設(shè)一個Web應(yīng)用程序需要完成并提交一系列頁面才能下訂單。如果用戶在整個過程中的某一步單擊了返回按鈕,將使用原來輸入的值重新填充之前的表單,這就是通過viewstate實現(xiàn)的。viewstate功能的問題是可能被濫用(過度使用),導(dǎo)致在客戶端和服務(wù)器之間來回傳遞非常大的頁面。另外,默認情況下,viewstate是針對Page啟用的,而非只針對需要維護狀態(tài)的Web頁面控件啟用。

    為避免viewstate帶來的問題,最好在Page級別禁用它,這只需要將EnableViewState屬性設(shè)為felse。例如,如果之后需要維護TextBox的狀態(tài),可使用下面的代碼來專門針對TextBox啟用viewstate。另外,需要監(jiān)控.aspx文件的大小,確保它們不會變得太大。

    <asp:TextBox EnableViewState="true" ID="Name" runat="server" />

    沒有會話,就無法維護狀態(tài)。維護會話這個概念源于客戶端/服務(wù)器計算時代,在當時,計算機與服務(wù)器之間的連接是永久保持的。HTTP協(xié)議是沒有狀態(tài)的,特別適合處理靜態(tài)(即非動態(tài))的內(nèi)容。


    ASP.NET Web Forms之所以是動態(tài)的,是因為代碼隱藏文件(如Default.aspx.es)中使用的C#代碼,當請求該文件時,其中的代碼就會執(zhí)行。返回給瀏覽器的HTML很可能是碼基于客戶端/用戶的獨特輸入來改變的。根據(jù)會話cookie中存儲的內(nèi)容,返回的HTML對于每個客戶端也可能是不同的。ASP.NET Web Forms程序員使用以下語法在會話中存儲信息:

    Session["username"] = TextBoxUID.Text;

在后續(xù)HTTP請求中,可使用以下代碼來訪問名為username的會話變量:

    var username = Session["username"];

最后,在執(zhí)行 ASP.NET Web Forms 請求時會發(fā)生一些事件,如 BeginRequest、AuthenticateRequest、Init、Load、ProcessRequest和EndRequest等,它們的含義不言自明。這一點很重要,因為當程序員想采取一些特殊操作來驗證客戶端的身份,或在完成請求之前清理數(shù)據(jù)時,很容易判斷在什么地方添加相關(guān)代碼。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部