您的位置:首页 > 其它

开源技术选型笔记

2009-12-17 16:21 295 查看
对于从事软件开发的人员,尤其是对于Jave或动态语言相关领域的人来说,“开源”也许是他们最喜爱的单词吧。如今,开源社区百花争妍,各种开源软件或框架层出不穷,给人选择余地的同时也让人感到无所适从,自进入web领域开发以来,我也深有体会,通过和几个学习软件的几个朋友商量和总结资料以后,把大家认为比较优秀的开源软件拿来给大家共享,以作抛砖引玉之用,如果您阅后感觉不错或受益匪浅别忘了顶顶哦......编辑这些好辛苦的 呵呵
1、 Web框架篇

说到web,可以说它早已融入了大家的生活当中,在这个大背景下,人们对web开发的重视程度也在不断提高,越来越多的项目采用了B/S方式实现,对于开发的质量、速度等诸多方面也有了更高的要求,显然,原始的开发方式在这种形势下有些力不从心了。最早的web框架是2001年Aapche组织推出的Struts(一个优秀的MVC框架)。经过几年的发展,不时有新的框架带着新的想法进入大家的视野,但如果要说目前哪些框架的使用频率比较高,无疑就是Struts、WebWork、Spring、和Seam了。
1、 Struts

Struts2将OSGi的设计理念贯穿其中,同时也在实验性地提供REST架构风格和对Ajax的支持。目前,最近的版本是Struts 2.1.8.1 General Availability Release
1.Struts的基本特点

对Servlet和JSP的增强, 减少代码编写量,基于Web MVC模式,规范java Web开发

优点
使用广泛, 用户众多, 就业有优势;
历史较长, 有成熟的第三方工具支持;
有很多web应用使用struts.

缺点
由于历史较长, 一些功能比较落后;
配置较为繁琐;

网站类:
Struts官方站点
WebWork&Struts2中文站点
InfoQ中文网站
JavaEye社区Java版
书籍类:
《深入浅出Struts2》
作者:IanRoughley 译者:李剑 出版社:C4Media InC. 出版时间:2007年
ISBN:1430320338
《Webwork in Action 中文版》

Spring Framework

1非侵入式:对于写代码从来不考虑复用和移植的程序员来说,这一点根本就没有吸引力,那么请跳过。所谓非侵入式是指Spring框架的API不会在业务逻辑上出现,也就是说我们的业务逻辑应该是纯净的,不能出现与业务逻辑无关的代码。首先针对应用而言,这样我们才能将业务逻辑从当前应用中剥离出来,从而在其他的应用中实现复用;其次针对框架而言,由于业务逻辑中没有Spring的API,所以业务逻辑也可以从Spring框架快速的移植到其他框架。
2 容器:Spring提供容器功能,容器可以管理对象的生命周期,对象与对象之间的依赖关系。你可以写一个配置文件(通常是xml文件),在上面定义对象的名字,是否是单例,以及设置与其他对象的依赖关系。那么在容器启动之后,这些对象就被实例化好了,你直接去用就好了,而且依赖关系也建立好了。
3 IOC:控制反转,谓之“依赖关系的转移”,如果以前都是依赖于实现,那么现在反转为依赖于抽象吧,其实它的核心思想就是要面向接口编程,至于何谓接口何谓抽象,以及它们的好处,多看看设计模式吧,这里就不费口舌了。
4 依赖注入:建立对象与对象之间依赖关系的实现,包括接口注入、构造注入、set注入,在Spring中只支持后两种
5 AOP:面向方面编程,我们可以把日志、安全、事务管理等服务(或功能)理解成一个“方面”,那么以前这些服务一直是直接写在业务逻辑的代码当中的,这有两点不好;首先业务逻辑不纯净,其次这些服务被很多业务逻辑反复使用,完全可以剥离出来做到复用。那么AOP就是这些问题的解决方案,我们可以把这些服务剥离出来形成一个“方面”,以期做到复用;然后将“方面”动态的插入到业务逻辑中让业务逻辑能够享受到此“方面”的服务
其他还有一些特点不是Spring的核心,这里只做简单陈述,如:对JDBC的封装与简化,提供事务管理功能,对O/R mapping工具(hibernate、iBATIS)的整合;提供MVC解决方案,也可以与其他web框架(Struts、JSF)进行整合;还有对JNDI、mail等服务进行封装。
2、 参考资料

网站类
Spring Framework官方网站
Java视线
Spring Framework中文论坛
书籍类
《Spring 2.0 核心技术与最佳实践》[/b]
作者:廖雪峰 出版社:电子工业出版社 出版时间:2007年6月 ISBN:9787121042621
本书结合理论与实践,由浅入深地介绍了Spring Framework 2.0的几乎所有内容,向读者展示了如何用Spring构建灵活的Java EE应用,并提供了大量实例。
《Spring 2.0技术手册》[/b]
作者:林信良 出版社:电子工业出版社 出版时间:2007年4月 ISBN:9787121039850
本书全面深入地介绍了Spring Framework 2.0的很多方面,无论是初学者还是有一定经验的开发者都能从中获益匪浅。
《expert one-on-one J2EE Development without EJB》[/b]
作者:(美)詹森(Johnson,R.)、(美)赫鲁(Hoeller,J.) 译者:JavaEye出版社:电子工业出版社 出版时间:2005年9月 ISBN:9787121016844 Spring Framework作者Rod Johnson的力作,书中介绍了时下流行的一些概念和开源框架,阐述了Spring背后的思想和理念,告诉读者该如何正确地选择一种架构、一种技术。

3、Seam

JBoss Seam 是著名开源厂商 RedHat 旗下JBoss 推出的下一代开源企业级 Java Web 开发平台。之所以称之为下一代,其原因之一是其目标超越传统的 Struts、Webwork、Struts 和Webwork 业已合并为 Struts2 及 Spring 等 Java Web 框架;原因之二是其整合了 AJAX, JSF, JPA, EJB3 和 BPM 等“下一代”Java EE 标准和规范,以及热门的各种技术。Seam在任何Java EE应用程序服务器中都可以运行,甚至在Tomcat中也可以。如果你的环境支持EJB 3.0,好极了! 如果不支持,也没关系,你可以使用Seam为持久化内置的包含JPA或者Hibernate3的事务管理。 或者,你可以在Tomcat中部署JBoss Embedded,同时享有对EJB 3.0 的完整支持。
参考资料:
网站类
JBoss网站
JBoss Seam主页
IBM DeveloperWorks对JBoss Seam的介绍
InfoQ对JBoss Seam的介绍:
InfoQ对JBoss Seam的技术访谈
JBoss开发者的Blog站点之一(该站点使用JBoss Seam开发)
中国满江红开放文档项目中JBoss Seam中文参考(向其致敬)
Web Bean JSR
书籍类
《JBoss- Seam》[/b]
作者:Michael Juntao Yuan and Thomas Heute Paperback: 432 pages出版社:Prentice Hall 出版时间:May 6, 2007 Language: English ISBN-10: 0131347969
ISBN-13: 978-0131347960
《Practical JBoss® Seam Projects (Practical)》[/b]
作者:Jim Farley Paperback: 229 pages 出版社:Apress 出版时间:July 20, 2007
Language: English ISBN-10: 1590598636 ISBN-13: 978-1590598634
《Seam in Action》[/b]
作者:Dan Allen Paperback: 500 pages 出版社:Manning Publications 出版时间:June 15, 2008 Language: English ISBN-10: 1933988401 ISBN-13: 978-1933988405
《Beginning JBoss® Seam: From Novice to Professional》[/b]
作者:Joseph Faisal Nusairat Paperback: 376 pages 出版社:Apress
出版时间:February 28, 2007 Language: English ISBN-10: 1590597923 ISBN-13: 978-1590597927
3、 开源服务器篇

1、Apache

2、Lighttpd

3、Nginx

4、 应用服务器篇

1、Jboss

2、Geronimo

3、Jfox

5、开发平台篇(IDE)

1、Eclipse

2、NetBeans

6、动态语言篇

1、Python

2、Ruby

3、Groovy

7、AJAX开发篇

1、Buffalo

2、Dojo

3、Prototype

4、JQuery

5、DWR

8、富互联网应用篇(RIA)

1、Adobe FLEX

2、OpenLaszlo

9、版本控制篇

1、CVS

2、Subversion

3、Git

10、项目管理篇

1、Mantis

2、Bugzilla

3、Scarab

4、Teamwork

11、面向方面编程篇(AOP)

1、AspectJ

2、SpringAOP

3、JBossAOP

12、反向控制容器篇(IOC)

1、NanoContainer

2、Equinox

3、HiveMind

4、Guice

5、JBoss MicroContainer

13、用户界面篇(UI)

1、Script.aculo.us

2、YUI

3、Ext

4、Echo2

14、商业智能篇(BI)

1、分析工具--Mondrian

2、分析工具--JPivot

3、报表工具--BIRT

4、ETL工具--Kettle

5、开源商业智能解决方案--Pentaho

15、建模工具篇

1、ArgoUML

2、Poseidon

3、Jude

4、StarUML

5、Trufun

6、EclipseUML

16、对象关系映射篇(ORM)

1、Hibernate

2、TopLink Essentials

3、iBATIS

17、数据库篇(DB)

18、软件测试篇

1、Junit

2、JMock

3、Selenium

19、面向服务架构篇(SOA)

1、Apache CXF

2、Apache ODE

3、Apache Tuscany

20、工作流篇(WorkFlow)

1、jBpm工作流系统

2、OSWorkflow工作流系统

3、Teampo工作流系统
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: