第一章 PStruts的身世之谜
这半个多月来,把所有的业余时间都顷注在了PStruts框架的开发,今天,终于到了PStruts2.0发布的日子。身为程序员,实在没有比自己全心全意开发的作品终于完成更有成就感了。做一个优秀的程序员是我从小的梦想,每当把手放到键盘上时,仿佛在我面前的不是电脑,而是钢琴,一行行的代码犹如一串串的音符,不断地纺织着我的梦想。我追随着我的梦想,为梦想而努力,为梦想而奋斗,向着我的梦想一步步的前进,我喜欢这样的生活,喜欢这样的人生。
在我23岁的生日里,没有蜡烛,没有蛋糕,没有祝福,只有我的电脑和那一行行的代码陪伴我度过。PStruts,像是为了纪念我寂寞的23岁生日,在那天起开始了设计和开发,自己给自己的生日礼物。PStruts2.0,相对于1.0的版,改动了很大,优化了核心代码的设计,提供了更多更灵活的配置,添加了依赖注入和国际化支持,已经可以满足项目开发中的大部分需求了。PStruts是我23岁生日的唯一礼物,是我正在设计中的“静煊架构”的核心部分之一,也是我实现梦想的一部分。
许多朋友问我,我的PStruts有什么优点,这个问题我实在很难回答。我现在还是个初学者,刚从大学毕业几个月,没多少项目开发的经验。回忆往事,我好像只使用过struts框架,而我的PStruts框架则是模仿struts2.0的功能设计的。Struts2.0是个很优秀的框架,功能很多很强大,我只模仿了它的一小部分功能而已,我觉得这已经能满足通常情况下的项目需求了。Struts功能很多,但并不是所有功能都适合在.net上使用。Struts的标签库是它的一大卖点,但.net已经有了更好用的控件。Struts2.0的OGNL语言也是很优秀的,不过在.net中,我们有LINQ,比它更胜许多。在国际化方面,.net的更好用,功能也更多,支持对象和流。那么,struts的哪些优点是.net中所没有的呢?
一、Struts的表单数据自动封装功能,这个功能我觉得很实用,让我们省去了编写麻烦的代码,而且它并不需要知道界面有什么样的控件和控件的类型,减少了依赖,降低了耦合。
二、Action,struts的Action是个很经典的设计,它是典型的控制层,使得业务逻辑代码有更好的管理,使用起来很得心应手。Excute方法使得程序员可以专注于编写自己的业务逻辑,返回逻辑结果,不需要知道数据是从哪里来的,也不需要知道执行完结果后返回到哪里去。
三、配置文件,配置文件既是优点也是缺点。刚开始使用struts的时候,我就对它的配置文件感到特别的烦,但不可否认,配置文件能给程序带来极大的灵活性。改变一个请求的业务逻辑,只需要修改一下配置文件就可以了,其它的代码都不需要改动,提高了软件的适应性和扩展性。
四、依赖注入,它不是Struts里面的特性,但却有着很大的魅力,可以最大限度的降低耦合度。
以上的优点只是个人的看法,不全面也不全对。为了实现上面的优点,PStruts2.0正式发布了。PStruts虽说是一个框架,但更像是一个工具,它是运行在webform模式上的,与asp.net的webform开发模式相融合。PStruts的设计并不是为了替代传统的开发模式,而是为了弥补webform在某些方面处理的不足。PStruts只是一个类库,在程序中需要它的地方才使用,它是对webform模式的一个补充,让我们在保留着传统webform模式的同时,体会PStruts独特的MVC模式。
哪么,在什么时候,或者说,在什么情况下比较适合使用PStruts呢?
1. 当一个页面中的表单元素很多或者很复杂的时候,PStruts能为我们轻松地获取表单中的数据,并执行编写好的业务逻辑。
2. 当一个页面的表单元素可能会发生改动时,PStruts不需要知道页面的具体形式,无论是静态页面,动态页面,flash,silverlight,都能正确的获取到提交的数据。
3. 当一个请求的业务逻辑可能会发生变动时,PStruts的业务逻辑使用配置文件来设置,可以轻松地修改而不需要再次编译,具有很好的灵活性,可以轻松地应对需求的变化。
4. 当程序中的代码之间产生依赖时,PStruts提供了比较常用的依赖注入,支持对象,常量,泛型和非泛型的列表依赖注入,让我们的程序更加的高内聚低耦合。
除此之外,PStruts2.0还封装了国际化的支持,ValueTable(保存返回请求页面的数据)支持表达式取值等。PStruts的定位是对webform的补充,配合webform开发模式,使我们更轻松更快速地开发更灵活易扩展的程序。下面是PStruts源码的下载地址,里面包含有一个小Demo,PStruts的教程将会陆续发表,敬请关注。
今天才发现codeplex有重名的项目了,现在正式更名为PStruts,PrideStruts的简写,不好意思啦,
codeplex那位不知名的作者。