学了一段时间的Asp.Net 2.0后,心里一些想法

类别:Asp 点击:0 评论:0 推荐:

我从.net beta2的时候就开始学了,正式使用.net做开发使用的是.net1.1版。就是说,.net1.0版出来的时候绝大多数人都是处在学习阶段,原因嘛,当然是许多人没有定下来是否学习.net,还有.net入门的确比以前的Delphi和VB6要难一些,而且.net1.0刚推出,出于对稳定性和功能上的考虑,我觉得大家基本上是拿.net 1.0当作学习工具,拿 vs.net 2002当作熟悉微软新一代开发环境的练手用了。

而.net 1.1出来就不同了,更多的人开始学起了.net,从Java那边也跑来不少人,毕竟.net的配置比Java简单太多了,而且足够的中文文档也降低了不少入门的门槛。当然,随着大家学习的深入,一些重要的组件可以使用,大家手中收集保存的代码也逐渐增多,如FTP,Mail,压缩解压缩,各种控件,还有费尽心机写出来的特定工作的解决方案。当然,这些软件大部分都运行在.net1.1下。

现在,微软推出了.net 2.0 beta1,既然已经出了,那么离正式版也不会太远了,当然,.Net 2.0 SDK正式版出来的时候肯定会有中文的SDK。肯定解决了在.Net 1.1 已经有的问题和添加了许多功能。
如令许多人挠头的vs2003 Web项目调试问题,和当操作Session/Cookie后使用Response.Redirect()没有反应问题等。

这样,.net 2.0 (我专注于asp.net 2.0)就与.net 1.1 兼容性非常小,我已经发现,在1.1内建立自定义Web服务器控件防止多个同样控件注册客户端脚本的

System.Web.UI.Page.IsClientScriptBlockRegistered()
System.Web.UI.Page.IsStartupScriptRegistered()
System.Web.UI.Page.RegisterClientScriptBlock()
System.Web.UI.Page.RegisterRequiresPostBack()

这四种方法,已经被System.ObsoleteAttribute这个特性给声明成已经被废弃的方法。就是说在asp.net 2.0 中,无法使用任何客户端的脚本注册方法,看样子只能使用Response.Write()来自己手工写了。这就是说,没有办法在1.1下写的代码在2.0下重新编译就变成2.0的组件。

好了,上面说了一大堆,反正说明了.net 1.1 与 .net 2.0的兼容性很小。但是.net运行库有个好处,就是并存执行。在asp.net 2.0中引用1.1的程序集,这个程序集是否是在.net 1.1的CLR控制下运行呢,还是在.net 2.0下?

如果1.1的程序集在1.1的CLR执行。那么我自己写的许多组件,许多down的组件,基本都是在1.1下环境运行的,如果我使用了2.0,这些组件不可能扔掉。那么使用这些组件,类的调用和参数的传递是否可以正常运行?尤其是参数,我最担心。传递string,int这样的基本类型应该没有问题,但是参数如果是自己写的类呢,把1.1下写的类实例当作返回值返回给2.0下的代码,能行吗?我比较怀疑。

本文地址:http://com.8s8s.com/it/it8611.htm