地位尴尬的WebForm、ASP.NET核心知识(10)
WebForm之烦恼
1.winform式的开发方式
WebForm的开发方式中,只需要从工具箱中拖拽一个控件,再从.aspx.cs中写控件的事件逻辑,就好了。
微软为我们做了很多工作,很多东西不需要我们了解。微软貌似想把网站开发变得跟Winform开发一致。
但是开发人员不了解运行机制,真的好吗?
2.ViewState
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");
}
地位尴尬的WebForm、ASP.NET核心知识(10)的更多相关文章
- Cookie详解、ASP.NET核心知识(7)
无状态的http协议 1.回顾http协议 Http协议是请求响应式的,有请求才有响应,是无状态的,不会记得上次和网页“发生了什么”. 关于http协议的这种特点,黑兔在前面的这三篇博文中进行了详细的 ...
- 网络基础知识、ASP.NET 核心知识(1)*
为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...
- 让页面无刷新的AJAX、ASP.NET核心知识(9)
AJAX简介 1.如果没有AJAX 普通的ASP.Net每次执行服务端方法的时候都要刷新当前页面,如果没有ajax,在youku看视频的过程中,就没法提交评论,页面会刷新,视频会被打断. 2.说说AJ ...
- Session详解、ASP.NET核心知识(8)
介绍一下Session 1.作用 Cookie是存在客户端,Session是存在服务器端,目的是一样的:保存和当前客户端相关的数据(当前网站的任何一个页面都能取到Session). 在本篇博文的姊妹篇 ...
- 关于Http协议、ASP.NET 核心知识(2)
简介HTTP (对于http协议的描述我前部分有写,但基于保证文档独立完整性的原则,我再写一遍.反正又不花钱.) 这货的学名叫:超文本传输协议 英文名字:(HTTP,HyperText Transfe ...
- ASP.NET内核几大对象、ASP.NET核心知识(7)--转载
本文的学习流程是这样安排的. 一个简单的GDI小案例 1.说明 如果你想思考如何生成验证码,那么您第一个要解决的问题,一定是.NET动态生成图片问题. //GDI:.Net程序中进行绘图的一些类. 2 ...
- ASP.NET内核几大对象、ASP.NET核心知识(6)--转载
这篇博文主要介绍一下几个对象. 1)HttpContext 2)HttpRequest 3)HttpResponse 4)context. Server 5)context.Session HttpC ...
- 一般处理程序、ASP.NET核心知识(5)--转载
初窥 1.新建一个一般处理程序 新建一个一般处理程序 2.看看里头的代码 public class MyHandler : IHttpHandler { public void ProcessRequ ...
- 写一个简易web服务器、ASP.NET核心知识(4)--转载
第一次尝试(V1.0) 1.理论支持 这里主要要说的关于Socket方面的.主要是一个例子,关于Socket如何建立服务端程序的简单的代码. static void Main(string[] arg ...
随机推荐
- input、textArea实时显示剩余可输入的字数
<h2>实时显示剩余可输入的字数(字母,数字,中文都算一个字)</h2> <h>昵称:</h> <div> <input type=& ...
- epel [Errno 14] problem making ssl connection
问题描述: 执行yum命令时,报错[Errno 14] problem making ssl connection 问题分析: ssl证书问题 问题解决: sed -i 's/^#baseurl/ba ...
- Android Service执行unbind后再次执行bind的问题
在执行了startService.bindService.unbindService之后,再次执行bindService.这时发现Service的onBind方法并没有执行,而是执行的onRebind ...
- spring注解方式注入
1.通过Resource注入 1.在属性上注入 1.默认注入 即不指定spring容器里面的名字 匹配规则:先通过属性的名字查找 再通过属性类型与实现类类型匹配查找 当有两个实现类会报错 2.通过指定 ...
- jsp中的下载链接
1.下载链接jsp界面(a链接直接链文件可以看出文件在服务器中的路径,用servlet处理的链接则看不出) <%@ page language="java" contentT ...
- centos_radhat升级系统
Centos/Redhat系统下,Yum升级操作系统版本方法: 很多情况下,系统安装的时候是一个版本,官方很快就会出新的版本,提高系统的安全性,以及一些漏洞补丁 通过以下步骤可以平滑将系统升级,例如C ...
- JS的语法
1.语句和表达式 var a = 3 * 6; var b = a; b; 这里,3 * 6是一个表达式(结果为18).第二行的a也是一个表达式,第三行的b也是.表达式a和b的结果值都是18. var ...
- 怎样将Android SDK源码 导入到Eclipse中?
在Eclipse中导入android sdk源码 http://blog.csdn.net/hahahacff/article/details/8590649
- bzoj3839【Pa2013】Działka
题目描述 平面上有n个不重复的点.每次询问一个边平行坐标轴的矩形内(包含边界)的点组成的凸包的面积.. 输入格式 第一行两个整数k,n(1<=k<=1000000,3<=n<= ...
- 使用VS2012调试Dump文件
前一节我讲了怎么设置C++崩溃时生成Dump文件 , 点击 传送门 , 这一节我讲讲怎么使用 VS2012 调试生成的 Dump 文件 , 甚至可以精确到出错的那一行代码上面 ; 1. 生成 Dump ...

