代码改变世界

随笔分类 -  ASP.NET

ASP.NET 设计优秀之处

2006-10-22 14:51 by Cat Chen, 731 阅读, 收藏, 编辑
摘要: 我觉得ASP.NET设计得最好的地方,就是控件树的概念。虽然WebForm的概念很烂,误导了不少没有Web开发经验的程序员,但它带来的控件这一概念及控件树结构就真的很好。 控件树优秀的地方,就在于它把整个页面的处理逻辑分割到控件,控件与控件之间是松耦合的,不存在任何依存关系。以往的Web开发,所有的代码都是平板式的接受Request平板式的输出Response,Request被看作由不同的Requ... 阅读全文

ASP.NET 2.0 的编译模型并非完全像 MS 说的那样

2006-10-22 14:50 by Cat Chen, 917 阅读, 收藏, 编辑
摘要: 上次说到了ASP.NET 2.0解决了Code-Behind需要同步声明控件的问题,说MS的图例解释2.0中aspx和cs的内容不再是继承的关系,而是partial的关系,是合并编译。然后我说了,如果是partial关系,那么处理过程就很复杂。因为partial不能增量编译,也就不能跨语言编译,必须把aspx部分内容完全翻译为cs或者其他对应Code-Behind语言,然后才能够多partial一... 阅读全文

LoadPostData 最多只有两次

2006-10-22 14:49 by Cat Chen, 1314 阅读, 收藏, 编辑
摘要: 在很多MSDN的一般文档中,都回避了LoadPostData这个问题,直接就说Page由Init到Load然后就是控件事件了。而根据我的实验,在Load的前后会出现两次的LoadPostData,而最后在MSDN也找到了独立的文章证实了这个流程。一般的HTML中静态声明的控件初始化应该发生在Init,Init之后这些控件也就初始化完成。然后此时会有一次LoadPostData,这是面向仅使用HTM... 阅读全文

ASP.NET 2.0 解决了 Code-Behind 需要控件声明同步的问题

2006-10-22 14:45 by Cat Chen, 972 阅读, 收藏, 编辑
摘要: 这显然是一个非常明智而且很早就应该实现的做法,因为已经在HTML中声明为runat="server"的控件,就应该算是声明过,还要在code-behind中同步的用C#代码再声明一个同名控件显然是违反了《程序员修炼之道》中所谓的DRY(Don't Repeat Yourself)原则。 原本ASP.NET 1.x的编译模型是编译站点时先编译code-behind部分,然后得到code-behind... 阅读全文

ASP.NET 2.0 ClientScript Callback

2006-10-22 14:41 by Cat Chen, 1095 阅读, 收藏, 编辑
摘要: 当AJAX出名的时候,ASP.NET 2.0已经基本上完成并且离最后发布时间还剩下半年,此时人人都希望MS为ASP.NET 2.0加上AJAX支持但MS说我们没时间加了,AJAX将成为独立的Atlas项目并出现在ASP.NET 3.0中。不过ASP.NET 2.0中有一个非常通用的但只能称为Method而不能称为Framework的AJAX支持,那就是Callback。 Callback的使用非常... 阅读全文

ASP.NET 2.0 实在太强了!

2006-10-22 14:38 by Cat Chen, 780 阅读, 收藏, 编辑
摘要: .NET Framework 1.x设计很优秀,但是很多东西都还没有,只能借用.NET Framework写自己的Framework然后再用。好象.NET Framework给你不少东西,但实际上你自己不开发自己的Framework那么.NET Framework根本做不了大项目。例如Sharepoint的WebPart架构是套很好的东西,但是只有MS自己用得爽,不装Sharepoint你就不能用... 阅读全文

我不懂 ASP.NET

2006-10-22 14:36 by Cat Chen, 844 阅读, 收藏, 编辑
摘要: 这真是个严重的问题,而且我越来越发觉其严重性。要懂得ASP.NET语法非常容易,要学习MS提供给你那种RAD开发方法也很容易,但是你无法做大东西,或者说你只能够按照ASP的老路去做大东西,并不能“享受”ASP.NET带来的“优越性”。 要做到“优秀”的Web应用,最重要的就是“分离”(“正交设计”就是老生常谈的问题了)。首先就是Web Standards里面鼓催的内容(Content)与布局(La... 阅读全文

ASP.NET 是如何让 aspx 完全编译的呢?

2006-10-22 14:28 by Cat Chen, 1443 阅读, 收藏, 编辑
摘要: 我以前对这个问题一直持怀疑态度,因为.NET Framework里面就有很多TemplateControl处理类和方法挂上了Parse(或Parser)的字样,不过也有挂上Compile字样的。最近我确实测试了一次它是否完全编译: 我做了一个简单的纯asp页面: <html> <head> <title>Now!</title> </head... 阅读全文