2006年11月16日星期四

从 ASP 到 ASP.NET (Part 2 - 忘记什么)

前言

上一边讲到ASP程序员迁移到ASP.NET时,应该顺应Web开发的潮流学习Web Standards,应该为了更好的理解ASP.NET而学习OOP,然而学习这些知识之后并不代表你就是一个合格的ASP.NET程序员了,因为你仍被ASP的思想所束缚,接下来我要告诉你如何解决这些束缚。

比喻

首先我们要看看ASP.NET是如何“确保”你被继续禁锢在ASP的思想内的。假如我把ASP比作洗衣板,而把ASP.NET比作洗衣机,那么ASP.NET这台洗衣机就实在有点太过“多功能”了,因为你可以选择:

  • 把衣服扔进去,然后把水倒进去,接着伸手进去按照老方式把衣服洗干净;
  • 又或者使用洗衣机的自动进水功能取代上述倒水步骤;
  • 还可以从洗衣机内侧把它独有的增强型洗衣板拉出来,以获得比老洗衣板更洁净的效果;
  • 甚至进行手洗机洗混合洗,总有一种混合洗方式能同时满足你洗衣服的欲望与对洁净衣服的需求。

这台洗衣机有一个严重问题,就是想尽办法诱惑你把手伸进去,而你需要做的仅仅是把洗衣机盖上然后管好你自己的双手。

坚持原则

“干净衣服与人手勿进”——这是你应该贴在洗衣机上的标签。

在这里我必须假设你已经把洗衣机的使用手册翻烂了,其实我的意思是你已经将上一篇中说明一个ASP.NET程序员必须学习的东西都学好了。这时候你已经了解了ASP.NET的运行方式,那就必须避免不符合这种运行方式的操作。例如一个ASP.NET处理程序是立体的,那么你就要拒绝去执行那些平板的操作。

一开始你肯定会非常不适应,例如为什么洗衣机洗的衣服不如手洗的干净,又或者为什么要我记着复杂的洗衣编程设定。然而这问题不是出在ASP.NET身上,而是出自于你对它的了解还不够深入,所以你不知道如何让它完美的视线你的目标,同时少费功夫。这个过渡阶段最需要的是坚持,或许一开始你会发现ASP.NET能实现的功能真的和你的目标有一定差距,但只要你不是急功近利的去完成目标,而是仔细摸索ASP.NET其中的奥秘,那么总有一天你会发现无论多古怪的需求你总能提供一个简洁的ASP.NET解决方案。

假装的ASP.NET程序员

这部分内容本来应该属于trouble-shooting的,你有兴趣的话或许可以看看自己是否属于某一类trouble:

  • 坚决不使用WebControl,仅在必要的情况下使用HtmlControl;
  • 在ASP.NET 2.0中坚决不使用DataSource控件,使用手工DataBind的方法;
  • 使用Response.Write输出脚本或调试信息,而不使用ClientScript和Trace;
  • 直接从Request.Form读取数据,而不在LoadPostData时从NameValueCollection中读取。

如果你命中上面任何一类trouble,其原因都是没有好好坚持ASP.NET的使用原则,而尝试用ASP的方式解决问题。解决途径就是拒绝继续使用ASP的方式,然后深入了解ASP.NET的内在运行机制,从而选择一个正确的ASP.NET式解决方案。

长期关注

最后,如果你希望更多的关注ASP.NET运行机制方面的资料更新,你可以直接订阅Cat in dotNET ,这样你将不会错过任何一篇的更新。

1 条评论:

  1. Hi, I like to read blog to get information and knowledge. I visit almost 20 blogs everyday. Your blog is among the best today. Keep up the good work!I run my own site. It pretty much covers laptop buying HP Pavilion. Come and check it out if you get time.

    回复删除