ASP.NET入门随想之明明白白我的心(1)
发表于:2007-06-30来源:作者:点击数:
标签:
有一群说着同样语言的人,计划修一座高耸入云的高塔直达天庭,以证明族群团结的力量,塔很快就初具规模。这下可惊动天庭的神,他想这人和神都成邻居了,还怎么去统治人类?于是便施魔法扰乱人们的语言,使他们无法沟通,于是高塔再也无法继续修建。 ■ 明明
有一群说着同样语言的人,计划修一座高耸入云的高塔直达天庭,以证明族群团结的力量,塔很快就初具规模。这下可惊动天庭的神,他想这人和神都成邻居了,还怎么去统治人类?于是便施魔法扰乱人们的语言,使他们无法沟通,于是高塔再也无法继续修建。
■ 明明白白我的心 - 人机交互(Human-Computer Interaction)
博客园里有一篇《给妈妈写程序》感人肺腑,说的是作者常常为了指导50出头的妈妈完成COPY之类的操作耗尽心思,最后为其定做一个只需点击两下的程序,由此推出UI设计的重要性。诚然,就用户而言软件等于N个用户界面。他们中的大多数压根不关心里头有多少令
开发者陶醉的所谓高级技术,简单、快捷、美观是他们要求的全部。人机交互的研究领域就在捣腾这些看似琐碎的东西。
在系统设计中,需要划分自动化系统边界,即把系统划分成手工操作和系统自动两个部份,两者通过用户界面(User Interface)完成对接,如图8-1。用户界面完成系统的输入输出工作:收集用户触发事件及相关数据,传递给系统内部进行处理并接收处理结果,可视化处理结果。在企业级的c/s应用中,aspx及其后台编码文件功能单纯得只剩下一个--完成人机交互。一个漂亮的网页不是用户界面设计的全部内涵,它更应该象一位面容姣好、语音甜美的接待者,轻声细语地询问用户
需求,聆听用户杂乱无章的诉说,耐心指导用户完成操作流程,宽容用户错误,准确为用户送上最终结果--"您的账户里只剩0.4元,无法完成支付操作。"总之一句话,要充分认识和领会白居易同志写诗的伟大精神,让50出头的妈妈愉快地完成人机交互。
■ 人动则影动 - ASP.NET的静态模型
在ASP.NET架构中,
服务器端的ASP.NET页面对应客户端的HTML页面,包含一个交互Web Form,继承于FrameWork的Page类。ASPX文件是人,HTML编码临时文件是影,人动则影动,两者合成完整意义上的用户界面。用户对影进行各种操作,系统通过人进行相应处理,"request-response"回馈机制完成两者的映像过程,如图8-2。
HTTP是一个无状态协议,所以WEB服务器是位打个磕睡就忘事的先生,当响应发送后将丢弃所有请求信息。这事必会影响应用程序的可用性,如因为数据验证错误而要求用户重新输入几十个输入框的所有信息,连妈妈的指头都会发出抗议的声音。为了弥补这个
缺陷,ASP.NET使用视图状态(ViewState)来完成状态保持。原理很简单,服务器将每次HTTP请求中的页面数据写入生成的HTML文件中,下次页面提交时一并带上,如下例。在ASP时代我们曾用<input type="hidden">手工实现,而在.Net中您会发现HTML源代码会自动产生一个 _VIEWSTATE标签,其值即为系统保存的页面数据。
<%@ Page Language="C#" %>
<script runat="server">
protected override void OnLoad(EventArgs e){
int val = int.Parse(_sum.InnerText);
_sum.InnerText = (val+1).ToString();
base.OnLoad(e);
}
</script>
<html><body><form runat="server">
<span id="_sum" runat="server">0</span>
<input type="submit" />
</form></body></html>
ViewState减少了不少麻烦,但也存在问题。在默认情况下它将被启用,即使没有任何用处也去收集所有页面信息并穿梭往返于C/S两端,其用base 64编码的庞大身躯常吞噬大量带宽,并存在被胁持的可能而引起系统
安全性问题。
原文转自:http://www.ltesting.net