zoukankan      html  css  js  c++  java
  • 地位尴尬的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");
            }

     


  • 相关阅读:
    How to build Linux system from kernel to UI layer
    Writing USB driver for Android
    Xposed Framework for Android 8.x Oreo is released (in beta)
    Linux Smartphone Operating Systems You Can Install Today
    Librem 5 Leads New Wave of Open Source Mobile Linux Contenders
    GUADEC: porting GNOME to Android
    Librem 5 – A Security and Privacy Focused Phone
    GNOME and KDE Join Librem 5 Linux Smartphone Party
    Purism计划推出安全开源的Linux Librem 5智能手机
    国产系统之殇:你知道的这些系统都是国外的
  • 原文地址:https://www.cnblogs.com/mcad/p/WebForm.html
Copyright © 2011-2022 走看看