| « | 六月 2008 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | ||||||
先从c++开始吧,c++就同java 应该有不小的差异,或者因为没有细看c++语法吧。今天看到虚函数的概念就晕了半天,其实c++虚函数的作用和java Interface作用类似。不过实现的有些别扭罢了。
设计模式这段时间看了看,越看越晕,当然越看越有收获,书读三遍,其义自现。其实GOF这本书翻译的相当不错了,比其他类似的书好多了。
基本思想:面向Contract编程,而不是Implementation. 找出vary things, encapsulate 他们,就是设计模式的基本思想了。也是gof始终强调的,不过以前没有领会到。
familiar with eclipse, so when i decide to learn c/c++. The first react is to www.eclipse.org. Just right, get the Europa C++.
Now, let me introduce the process to config it. The first step is to download the Europa C++ bundle.
but the Europa c++ bundle can't work on windows. you must config c/c++ compiler for it.
next i will give you my step to config it.
use Eclipse's help content-build your first c/c++ appliaction-- before you start, where give a detail how to config c/c++ compile environment.
follow it, then you could config it well.
ps:
配置前建的工程运行依然可能出现问题,需要配置一些 environment variable, 把 environment variable Path 加进来,你的工程就能运行了。
引用地址:J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以Spring为核心,也总结了一些以前web开发常用的开源工具和开源类库
http://blog.csdn.net/chenlaoshi/archive/2006/09/12/1210564.aspx
主要就我所了解的
http://blog.csdn.net/chenlaoshi/archive/2006/09/12/1210564.aspx
1持久层:
1)Hibernate
这个不用介绍了,用的很频繁,用的比较多的是映射,包括继承映射和父子表映射
对 于DAO在这里介绍个在它基础上开发的包bba96,目前最新版本是bba96 2.0它对Hibernate进行了封装, 查询功能包括执行hsql或者sql查询/更新的方法,如果你要多层次逻辑的条件查询可以自己组装QueryObject.可以参考它做 HibernateDAO.也可以直接利用它
2) iBATIS
另一个ORM工具,Apache的,没有Hibernate那么集成,自由度比较大
2:SpringMVC
原理说明和快速入门:
配置文件为:
Spring的配置文件默认为WEB-INF/xxxx-servelet.xm其中xxx为web.xml中org.springframework.web.servlet.DispatcherServlet的servlet-name。
Action分发:
Spring将按照配置文件定义的URL,Mapping到具体Controller类,再根据URL里的action= xxx或其他参数,利用反射调用Controller里对应的Action方法。
输入数据绑定:
Spring提供Binder 通过名字的一一对应反射绑定Pojo,也可以直接从request.getParameter()取数据。
输入数据验证
Sping 提供了Validator接口当然还可以使用开源的Commons-Validaor支持最好
Interceptor(拦截器)
Spring的拦截器提供接口需要自己编写,在这点不如WebWork做的好.全面
(这里提一下WebWork和Struts的区别最主要的区别在于WebWork在建立一个Action时是新New一个对象而Struts是SingleMoule所有的都继承它的一个Action,所以根据项目需要合适的选择.)
3:View层
1) 标签库:JSP2.0/JSTL
由于Webwork或Spring的标签确实很有限,一般view层用JSTL标签,而且据说JSTL设计很好速度是所有标签中最快的使用起来也很简单
2) 富客户端:DOJO Widgets, YUI(YahooUI),FCKEditor, Coolest日历控件
Dojo主要提供Tree, Tab等富客户端控件,可以用其进行辅助客户端开发
YahooUI和DOJO一样它有自己的一套javascript调试控制台,主要支持ajax开发也有很多Tree,Table,Menu等富客户端控件
FCKEditor 最流行的文本编辑器
Coolest日历控件 目前很多日历控件可用,集成在项目中也比较简单,这个只是其中的一个,界面不错的说..
3) JavaScript:Prototype.js
Prototype.js 作为javascript的成功的开源框架,封装了很多好用的功能,通过它很容易编写AJAX应用,现在AJAX技术逐渐成熟,框架资源比较丰富,比如 YUI,DWR等等,也是因为JavaScript没有合适的调试工具,所以没有必要从零开始编写AJAX应用,个人认为多用一些成熟的Ajax框架实现 无刷新更新页面是不错的选择.
4)表格控件:Display Tag ,Extreme Table
这两个的功能差不多,都是View层表格的生成,界面也比较相向,可以导出Excel,Pdf,对Spring支持很容易.
相比较而言比较推荐ExtremeTable,它的设计很好功能上比DisplayTag多一些,支持Ajax,封装了一些拦截器,而且最方面的是在主页wiki中有详细的中文使用文档.
5):OSCache
OSCache是OpenSymphony组织提供的一个J2EE架构中Web应用层的缓存技术实现组件,Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统的稳定性和运行性能。
它主要用在处理短时间或一定时间内一些数据或页面不会发生变化,或将一些不变的统计报表,缓冲在内存,可以充分的减轻服务器的压力,防治负载平衡,快速重启服务器(通过硬盘缓存).
6)SiteMesh
sitemesh 应用Decorator模式主要用于提高页面的可维护性和复用性,其原理是用Filter截取request和response,把页面组件head, content,banner结合为一个完整的视图。通常我们都是用include标签在每个jsp页面中来不断的包含各种header, stylesheet, scripts and footer,现在,在sitemesh的帮助下,我们删掉他们轻松达到复合视图模式.
Sitemesh也是 OpenSymphony的一个项目现在最近的版本是2.2,目前OpenSymphony自从04年就没有更新的版本了..感觉它还是比较有创新的一种页面组装方式, OpenSymphony开源组织的代码一般写的比较漂亮,可以改其源代码对自己的项目进行适配.
测试发现Sitemesh还存在一些问题,比如中文问题,它的默认编码是iso-8859-1在使用时候需要做一些改动.
7)CSS,XHTML
这个不用说了,遵循W3C标准的web页面开发.
8)分页标签: pager-taglib组件
Pager-taglib 是一套分页标签库,可以灵活地实现多种不同风格的分页导航页面,并且可以很好的与服务器分页逻辑分离.使用起来也比较简单.
9)Form: Jodd Form taglib
Jodd Form taglib使用比较简单,只要把<form>的头尾以<jodd:form bean= "mybean">包住
就会自动绑定mybean, 自动绑定mybean的所有同名属性到普通html标记input, selectbox, checkbox,radiobox.....在这些input框里不用再写任何代码…
10)Ajax:DWR
J2EE应用最常用的ajax框架
11)报表 图表
Eclipse BIRT功能比较强大,也很庞大..好几十M,一般没有特别需求或别的图表设计软件可以解决的不用它
JasperReports+ iReport是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports支持PDF、 HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发者最常用的报表工具。
JFreeChart主要是用来制作各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。
琴棋报表,国产的..重点推荐,适合中国的情况,开放源代码,使用完全免费。纯JAVA开发,适用多种系统平台。特别适合B/S结构的系统。官方网站有其优点介绍,看来用它还是不错的选择,最重要的是支持国产呵呵
4:权限控制: Acegi
Acegi是Spring Framework 下最成熟的安全系统,它提供了强大灵活的企业级安全服务,如完善的认证和授权机制,Http资源访问控制,Method 调用访问控制等等,支持CAS
(耶鲁大学的单点登陆技术,这个单点登陆方案比较出名.我也进行过配置使用,可以根据项目需要,如果用户分布在不同的地方不同的系统通用一套登陆口令可以用它进行解决,一般注册机登陆机就是这样解决的)
Acegi只是于Spring结合最好的安全框架,功能比较强大,当然还有一些其他的安全框架,这里列举一些比较流行的是我从网上找到的,使用方法看其官方文档把…
JAAS, Seraph, jSai - Servlet Security, Gabriel, JOSSO, Kasai, jPAM, OpenSAML都是些安全控制的框架..真够多的呵呵
5:全文检索
1) Lucene
Lucene是 一套全文索引接口,可以通过它将数据进行倒排文件处理加入索引文件,它的索引速度和查询速度是相当快的,查询百万级数据毫秒级出结果,现在最火的 Apache开源项目,版本更新速度很快现在已经到了2.0,每个版本更新的都比较大,目前用的最多的版本应该是1.4.3,但它有个不太方面的地方单个 索引文件有2G文件限制,现在2.0版本没有这个限制,我研究的比较多,它的扩展性比较好,可以很方面的扩充其分词接口和查询接口.
基于它的开发的系统很多,比如最常用的Eclipse的搜索功能,还有一些开源的软件比如Compass,Nutch,Lius,还有我最近做的InSearch(企业级FTP文件网页搜索)
6:公共Util类
主要是Jakarta-Commons类库,其中最常用得是以下几个类库
1) Jakarta-Commons-Language
最常用得类是StringUtils类,提供了使用的字符串处理的常用方法效率比较高
2) Jakarta-Commons-Beantuils
主要用Beantuils能够获得反射函数封装及对嵌套属性,map,array型属性的读取。
3) Jakarta-Commons-Collections
里面有很多Utils方法
7 日志管理
Log4J
任务是日志记录,分为Info,Warn,error几个层次可以更好的调试程序
8 开源的J2EE框架
1) Appfuse
Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架, 它对如何集成流行的Spring、Hibernate、iBatis、Struts、Xdcolet、JUnit等基础框架给出了示范. 在持久层,AppFuse采用了Hibernate O/R映射工具;在容器方面,它采用了Spring,用户可以自由选择Struts、Spring/MVC,Webwork,JSF这几个Web框架。
2) SpringSide
.SpringSide较完整的演示了企业应用的各个方面,是一个电子商务网站的应用 SpringSide也大量参考了Appfuse中的优秀经验。最重要的是它是国内的一个开源项目,可以了解到国内现在的一些实际技术动态和方向很有指导意义…
9:模版 Template
主要有Veloctiy和Freemarker
模板用Servlet提供的数据动态地生成 HTML。编译器速度快,输出接近静态HTML 页面的速度。
10:工作流
我所知道比较出名的主要有JBpm Shark Osworkflow,由于对它没有过多的研究所以还不是很清楚之间有什么区别.
项目管理软件
dotProject:是一个基于LAMP的开源项目管理软件。最出名的项目管理软件
JIRA: 项目计划,任务安排,错误管理
Bugzilla:提交和管理bug,和eclipse集成,可以通过安装MyEclipse配置一下即可使用
BugFree借鉴微软公司软件研发理念、免费开放源代码、基于Web的精简版Bug管理
CVS:这个就不介绍了都在用.
SVN: SubVersion已逐渐超越CVS,更适应于JavaEE的项目。Apache用了它很久后,Sourceforge刚刚推出SVN的支持。
测试用例:主要JUnit单元测试,编写TestCase,Spring也对Junit做了很好的支持
后记:
以Spring 为主的应用开发可选用的组件中间件真是眼花缭乱,所以针对不同的项目需求可以利用不同的开源产品解决,比如用Spring+Hibernate/ iBATIS或Spring+WebWork+Hibernate/ iBATIS或Spring+Struts+Hibernate/ iBATIS,合理的框架设计和代码复用设计对项目开发效率和程序性能有很大的提高,也有利于后期的维护.
DWR :轻松结合Ajax和JAVA
DWR(Direct Web Remoting)是一个基于Java的开源类库,它能使你方便的编写Ajax的web 站点。
DWR可以使运行在浏览器中的代码调用运行在服务器端的Java函数非常简单,就像这些Java函数也运行在浏览器。
DWR包含两个主要部分:
l 运行在服务器端的Servlet 处理请求,并将响应结果送回到客户端;
l 运行在Browser 中的JavaScript发送请求,并且能动态的更新网页内容。
DWR的工作原理是:基于java类动态的生成JavaScript代码。代码实现一些了一些Ajax的功能,让人感觉代码的执行过程发生在Browser,实际上是服务器在执行这些代码,DWR负责将数据编组进行往返。
这种在Java和JavaScript之间远程调用函数的方法,使DWR的用户感觉它非常类似传统的RPC机制,比如RMI和SOAP。利用这种方法的优点使得DWR在万维网之间运行但是不需要在Web-Browser上安装插件。
Java基本上是同步的,而Ajax是异步的。所以当你调用一个远程的方法,并且数据已经从网络返回的时候,你必须给DWR提供一个响应的方法。
下图展现了DWR如何响应JavaScript的事件(比如Click),来改变一个下拉列表的内容。
DWR集成了许多别的项目。一个最常用的问题是如果处理Servlet对象,比如HttpServletRequest,关于它的详细解释在accessing servlet objects。DWR已经集成了Spring, WebWork, JSF, Struts 1 和 Hibernate.
DWR动态的生成JavaScript格式的Ajax服务类来匹配服务器端代码。这被称之为EventHandler(事件处理器)。DWR处理所有的远程细节,包括参数转换以及在JavaScript和Java之间传递值。在本例中DWR执行提供的返回信息处理函数,这个函数使用 DWR工具集来改变页面显示。
DWR通过提供一组JavaScript库来帮助处理DHTML,以及一组实用的例子,可以帮助你实现高效互动的网站。
这个东西响起来一些时间了,不过我对他的使用一直持谨慎的态度,我认为这个东西在一般的B/S系统中最大的用处就是信息的及时更新,从这个角度上讲我比较喜欢用 DWR。其他类似像google地图,我认为更大的是炒作的概念,真正实用的不多。不过随着SOA概念的结合,应该是有发展的前景。AJAX框架汇总-----引用 引言(from http://www.duduwolf.com)此文原出于AJAX Patterns网站的一篇《Ajax Frameworks》的wiki文章,很早前我就注意到,后来在国内也有人翻译了,不过最近发现此wiki还是在不断添加维护中,截止此文发布前,作者又添加了好几个新诞生的AJAX开发工具,所以我决定重新翻译一遍,并且时常注意原文发布状态,一有新的内容立马也翻译过来,做到同步:) 此翻译稿很大一部分内容出自国内出现的那个先前版本,我只是对新加入的几项进行了翻译,并且对我熟悉的产品项着重介绍了一下,以后我会抽时间收集文中提到AJAX工具相关的文章,尽量将内容介绍和功能点评做到全面详细点。所以请关注和准备用AJAX做开发的朋友关注这篇文章,我会时常更新的。原文因为是由一个wiki系统维护,所以在所难免出现参差不齐,风格上也有不统一的情况,翻译时我也是参照原文原封不动的挪了过来,以后我会抽时间改良下。 翻译正文基于浏览器的应用框架一般分为两种:
目录1. Pure Javascript: Application Frameworks1.1 Bindows (成立于2003年)Bindows是一个通过DHTML、JavaScript、CSS和HTML等技术强劲联合起来的一套完整的Windows桌面式的WEB应用程序解决方案。Bindows无需下载安装客户端支撑组件(如Java、ActiveX或Flash),仅需一个浏览器。纯OO的理念体现在Bindows任何地方,Bindows或许是笔者见过的最完整最强大的AJAX应用程序平台。
1.2 BackBase (成立于2003年)BackBase是一个完整的浏览器端框架,提供了丰富的浏览器操作功能,以及对.NET和JAVA平台的集成。商业化产品,来自于Backbase B.V(总部在Amsterdam,成立于2003年)。 1.3 DOJO (开发中,成立于2004年9月)DOJO提供完整的轻量级窗口组件和浏览器-服务器消息映射支持
1.4 Open Rico (开发中;成立于2005年5月;基于早期的一个proprietary 框架)Open Rico是一个支持Ajax架构和用户交互的多用途框架。
1.5 qooxdoo (开发中; 成立于2005年5月)qooxdoo,是另一个发展迅猛的应用框架,提供广泛的UI支持,正在开发基础架构等特性。
1.6 Tibet (开发中; 创建于2005年6月)Tibet提供了大量的易移植和完整的JavaScript API,通过这些可以快速生成大量的客户端代码,Tibet自称是企业级AJAX。
1.7 AJFORM (创建于2005年6月)AJFORM是一个极易上手的AJAX框架,被用来编写入门级的AJAX代码,提供有以下功能:
2 Pure Javascript: Infrastructural Frameworks2.1 AjaxCaller(创建于2005年5月,目前是Alpha版)AjaxCaller是一个具有多线程安全访问的XMLHttpRequest组件,主要针对Ajax开发新手,目前仍处于alpha开发阶段,仅在AjaxPatterns的在线搜索范例中使用了这个程序。
2.2 Flash JavaScript Integration KitThe Flash JavaScript Integration Kit可以使Flash和Javascript脚本实现相互集成。
2.3 Google AJAXSLT (2005年6月发行)Google AJAXSLT,是一个Javascript框架,用来执行XSLT转换以及XPath查询。
2.4 HTMLHttpRequest(Beta版;创建于2005年)HtmlHttpRequest最大的特点就是运用XMLHttpRequest对象和标准HTML标签IFrame来实现最大限度的跨浏览跨平台的AJAX支持,其原理是在支持XMLHttpRequest的浏览器上调用XMLHttp,如果不支持,就用IFrame来模拟实现异步交互。
2.5 Interactive Website Framework (创建于2005年)Interactive Website Framework定位在浏览器中支持各种各样的AJAX基础应用的开源项目。自称是通过JavaScript、CSS、XML和HTML实现高性能的交互式WEB框架,包括一个可定制易读的XML解析器。实际上,IWF是一个AJAX的基础框架,并且还包括一些通用脚本代码。
2.6 LibXMLHttpRequest (2003年6月发布)libXmlRequest是一个小型XMLHttpRequest封装包
2.7 MAJAXMAJAX是另一个非常小巧的HttpRequest封装包,为收发字符型信息提供简单接口,并为每步动作设置回调界面。 2.8 RSLite (x)RSLite是一个XMLHttpRequest封装组件,作为Brent Ashley的JSRS(JavaScript Remote Scripting)其中的一部分功能单独发布。详情可以看JSRS的介绍 2.9 Sack(开发中,成立于2005年5月)Sack也是一个很有名字的微型XMLHttpRequest封装包。调用者可以自定义回调函数或者是DOM对象。借助于回调DOM对象,可以把Response回来的数据直接以文本的方式嵌入DOM中。 2.10 Sarissa (发布于2003年2月)Sarissa是一个JavaScript API,封装了在浏览器端独立调用XML的功能。
2.11 XHConn (2005年4月发布)XHConn也是一个小型的XMLHttpRequest封装库。笔者也使用改良过的XHConn,其特点就是调用简单,代码也清晰易读。
3 Server-Side: Multi-Language3.1 Cross-Platform Asynchronous INterface Toolkit (2005年5月)CPAINT是一个真正的同时支持PHP和ASP/VBScript脚本的AJAX和JSRS工具包。CPAINT在后台提供你需求的AJAX和JSRS代码,并自动返回到浏览器端相应的Javascript脚本代码,这种方式易于实时反馈需求的WEB应用程序。
3.2 SAJAX (2005年3月)SAJAX的实现方式很独特,例如:调用一个javascript方法x_calculateBudget(),将先把响应传到服务器并调用一个Java calculateBudget()方法,然后以javascript方式把值返回到x_calculateBudget_cb()中。SAJAX的名气不错,估计很多人都听过甚至用过,不过缺点就是它的这套映射理论感觉较繁锁,远不如一些轻量级的封装库好用,不过SAJAX最大的特点就是支持的平台丰富,几乎囊括了WEB下常用的编程语言和平台
3.3 Javascipt Object Notation (JSON) and JSON-RPCJSON是一个"face-free" XML,而JSON-RPC是一种远程交互协议,类似于XML-RPC,对JavaScript支持较强
3.4 JavaScript Remote Scripting(JSRS)(2000年)JSRS,较经典的远程脚本访问组件,支持将客户端数据通过服务器做代理进行远程的数据/操作交互。
3.5 Bitkraft for ASP.NETBitkraft是个基于(.NET)Web框架的CLR(公共语言运行库),允许用独特的方式创建和操作分布式Web内容。用C#编写,运行在微软的.NET 1.1和Mono框架下,无缝式的客户端-服务器响应方式是它的最大特点。Bitkraft没有使用XML组织数据,而是用JSON代替。
4 Server-Side: Java4.1 WebORB for Java (2005年8月)WebORB for Java是一个开发AJAX和基于Flash的富客户端应用程序的开发平台。在线例子
4.2 Echo 2 (2005年3月)Echo 2允许你用纯Java语言编写AJAX程序。 Demo.
4.3 Direct Web Remoting (DWR) (2005)Direct Web Remoting可以在Javascript代码中直接调用Java方法的应用框架
4.4 SWATO (2005)SWATO是一套可重用的和良好集成的Java/JavaScript库,它实现了一种更容易的方式来改变你的web应用程序的交互,通过AJAX方式实现。
4.5 AJAX JSP Tag LibraryThe AJAX JSP Tag Library是一组JSP标签库,用来AJAX程序开发。可以在J2EE下无需Javascript就能轻松开发AJAX模式的Web Form。标签库为比较通用的AJAX功能提供了5个标签:
4.6 AJAX Java Server Faces FrameworkThe AJAX-JSF用来把任意的JSF应用程序转变为AJAX应用程序
Server-Side: Lisp5.1 CL-AjaxCL-Ajax实现Javascript直接调用服务端Lisp
6 Server-Side: .NET6.1 WebORB for .NET (2005年8月)WebORB for .NET是一个用.NET和XML Web Services方式开发AJAX和基于Flash的富客户端应用程序(在线例子)
6.2 Ajax.NET (2005年3月)Ajax.NET是首家支持各种方式通过Javascript访问服务端.net的免费库
6.3 ComfortASP.NET (2005年8月)ComfortASP.NET可以让开发者在纯.NET下开发类似AJAX(DHTML,JavaScript,XMLHttp)特性的应用程序。
6.4 AjaxAspects (2005年8月)AjaxAspects是个可以用Javascript调用服务端WebService事件的引擎
7 Server-Side: PHP7.1 AjaxAC (2005年4月)AjaxAC用一个单独类封装了完整的应用程序功能
7.2 JPSpanJPSPAN通过Javascript直接调用PHP中的函数。
7.3 XAJAXXAjax通过Javascript直接调用PHP中的函数
8 Server-Side: Ruby8.1 Ruby On RailsRuby On Rails是一个支持AJAX的完整Web框架,使用Ruby语言编写,严格按照MVC结构开发。
|