地位尷尬的WebForm、ASP.NET核心知識(10)


WebForm之煩惱

1.winform式的開發方式

      clipboard

        WebForm的開發方式中,只需要從工具箱中拖拽一個控件,再從.aspx.cs中寫控件的事件邏輯,就好了。

微軟為我們做了很多工作,很多東西不需要我們了解。微軟貌似想把網站開發變得跟Winform開發一致。

但是開發人員不了解運行機制,真的好嗎?

2.ViewState

clipboard[1] 

Webform為了保存一些頁面的狀態信息,用了一個<input type =“hidden”>。 別人告訴我這個叫ViewState。

ViewState讓html變得異常“丑陋”。

WebForm的弊端

1.入門容易,開發很難

        方便、快捷的服務器端控件,在讓我們享受簡便的同時,也給我們帶來的無窮的煩惱。如果只是拖控件,初學者上手很容易。但這之后因為很多東西封裝太強,很多底層東西讓我們初學者不是很明白,想再提升很難了。

2.控制不靈活

        對於頁面的數據的呈現方式,一遍人很難控制。

3.ViewState處理

        這種機制,的確讓開發變得簡單了。但是同樣它也讓html變得異常臃腫、丑陋。

4.異步請求

        異步請求每個請求后台都不許有一個一般處理程序對應。

5.容易變傻

        WebForm的開發方式,跟傳統的Web開發方式不一致。傳統web開發必須了解的東西,這里很多都不需要了解,例如http協議,ajax,javascript等等。。。總之,控件很豐富,不需要你了解太多。   

推薦輕量的使用WebForm

        這條其實挺糾結地,既然吐槽了WebForm這么多,干么還要用呢?直接不用不就得了。

        我的理解是這樣的:首先,對於.NET開發,很多人第一反應還是WebForm(盡管他們可能不用這個,這種思維挺怪的。)就像街頭賣藝這個行當,行內人都知道“胸口碎大石”是假把式。但是作為賣藝人,如果跟人說,我不會“胸口碎大石”,多少還有點羞於啟齒。其次呢,很多時候開發時候什么技術,不是由我們決定的。萬一前面有webForm開發的程序,不會改也不太好。 所以我的建議是,還是要略懂一點。注意略懂即可。

1. aspx頁面

這里說是要,推薦一種輕量的使用WebForm的方式。 這個案例中 僅僅做一個列表功能吧。  

/* 在aspx文件中,其實是支持html和代碼混編的這種方式的。
    盡管你肯能覺得他很亂,但webform下不失為一種說得過去的解決方案。
*/ 
<table> 
        <thead> 
            <tr><th>姓名</th><th>年齡</th><th>性別</th><th>編輯</th></tr> 
        </thead> 
        <tbody> 
        <%for(int i=0;i<persons.Rows.Count;i++){ 
             System.Data.DataRow row = persons.Rows[i];             
        %> 
        <tr><td><%=row["Name"] %></td><td><%=row["Age"] %></td><td><%bool gender = (bool)row["Gender"];Response.Write(gender?"":""); %></td><td><a href="PersonAddNewEdit.aspx?action=edit&id=<%=row["Id"] %>">編輯</a></td></tr> 
    <%} %> 
         </tbody> 
</table>

2.aspx.cs文件

//Model:不知道自己如何被顯示,也不知道是如何被查詢出來
        protected DataTable persons;
        protected void Page_Load(object sender, EventArgs e) 
        { 
            //查詢數據,把數據放到Model,也不知道數據是如何展現的
            persons = SqlHelper.ExecuteQuery("select * from T_Persons");
        }

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM