代码改变世界

IronPython的第十块鳞片

2005-06-19 00:53  FantasySoft  阅读(...)  评论(...编辑  收藏

        IronPython0.7.6于6月14日发布了, 版本升级的速度确实让人满意啊! 然后再看看自己的鳞片系列的速度,真的好惭愧,看来得好好加把劲了。
        这一次的升级动作可谓之巨大,至少我得把原来.NET Framework 2.0.40607.42卸载掉,装上最新的.NET Framework 2.0.50215.44,IronPythonConsole才能运行起来,否则它会抛出Exception。 这一次版本的升级除了利用了.NET 2.0的一些新特性,还修改了一些bugs,以下是最主要的几条:
        * Filtering of exception call stacks 
           - by default, we filter the call stack to only show the relevant stack frames.
           - the property PythonEngine.ExceptionDetail was added to toggle the behavior
        * Function attributes
        * Handling of loops in lists and dictionaries
          - e.g.: x = []
                     x.append(x) 
        * __doc__ is now implemented for modules and classes
        * Added support for System.Single (float) data type
        * Double-import of module whose import raises exception is now fixed

        在IronPython的MailList中, 有人提出两个有意思的问题,一个是建议IronPython支持泛型,另一个则是提出了用IronPython来写ASP.NET。对于第一问题,Jim 的回应是,对于Python这种动态类型语言, 泛型的重要性并不是那么重要,因此对于支持泛型这一点上的需求并不是非常迫切的,至少是不在1.0版本的TODO List上的;而第二个问题,也是我关注IronPython的一个很重要的原因。当IronPython横空出世的时候,我就在想如果能够用它来写 ASP.NET会不会很Cool呢?虽然使用C#去写ASP.NET是不二的选择,但是使用C#的开发效率是不是仍然无法令你满意呢?当你将C#代码直接 写在.aspx文件中,你会觉得很凌乱;但是使用了所谓的Code Behind,将这些代码挪到了一个Class之后,你要做的事情是不是也随之增多了呢?我不知道在.NET的Web Application的开发世界里,有没有类似J2EE的Struts和Spring的框架将所有的Class有机的组织起来。但是以我现在的认识, Code Behind是要求一张页面对应一个类的,那么页面多了,就会有很多的类,然而这些类本身却是无组织的,而且也没有在重用上发挥作用,这些类的存在有必要 吗?如果使用IronPython来写ASP.NET,我会定义一些function,譬如Page_Load等,然后将这些function写在. aspx文件中,这似乎回到了ASP的年代,但是我会觉得这样做起来更有效率,而且比ASP更有组织。我已经有三年多的时间没写过ASP.NET了,现在 ASP.NET的开发模式会是怎样的呢? 还请各位多多指教,多多批评了。