以前在我的Blog上就曾经写过一篇文章,描述了ASP.NET 2.0 Beta2中对于页面编译模型,相对于Beta1的重大改变。今天在网上发现了两篇(here & here)不错的Blog,更详细的描述了这个变化,以及其中运行的机制原理。
从我个人的喜好而言,我更喜欢Beta1的Code-Beside方式,因为机制非常清晰明了,很好理解,而且感觉也非常优雅。但是Code-Beside的方式有一个明显的缺陷,开发人员很难使页面从自己定义的一个Page Base Class继承下来,而在ASP.NET 1.1中,这是非常简单的事情(只需要直接更改Code-Behind文件的父类即可)。
Beta2的改进使其实现方式更加复杂了,但是好处就是让开发人员又能享受自己定制的Page Base Class的好处了,而且也消除了在ASP.NET 1.1中,Code-Behind文件中不得不加上一大串protected控件声明的缺陷。