空中的一小块陆地

1 技术

Web Framework 技术走马观花(三)—— AJAX

    摘要:AJAX的迅速流行给我们最大的启发是什么?就是取一个好名字的重要性!    (全文共2442字)——点击此处阅读全文

发表于 @ 2006年02月20日 12:26 AM | 评论 (4)

看来BEA对Spring Framework的支持是全面而坚定的

请参考 http://dev2dev.bea.com/blog/wgroth2/archive/2006/02/spring_is_busti.html

这是直接来自BEA高层的信息,例如在Web MVC领域,即便是BEA已经有了自己的孩子Beehive/PageFlow,但还是不遗余力地支持Spring Web MVC。Bill Roth要传递的信息是:

Our philosophy is that if you want to use the Spring framework, go ahead, and we'll support you.

因为这符合BEA的目标:Making the delivery of enterprise applications easier!

发表于 @ 2006年02月06日 4:57 PM | 评论 (1)

Web Framework 技术走马观花(二)

    摘要:刚刚接触JSF的时候,我只是把它看作和Struts类似的技术,看成是Struts这类技术的规范化    (全文共3237字)——点击此处阅读全文

发表于 @ 2006年02月04日 12:31 AM | 评论 (0)

Web Framework 技术走马观花(一)

    摘要:目前在开发Web应用时,一个关键的问题就是选择哪个Web Framework。在Web普及之前,与人进行交互的GUI程序基本上就是普通桌面应用,那个时候并没有这么多界面架构,人们在开发一个桌面应用的时候很少去要考虑选择哪个GUI Framework;转眼到了Web界面应用的年代,从最早的CGI到现在的Rich Web Client,各种Web Framework层出不穷(特别是在Java领域)。要了解这些繁多的Web Framework是一件恼人的事情,Web Framework应该有什么功能,挑选它们的时候又要考虑哪些因素呢? 最近我在阅读一些JSF的资料,在学习JSF的过程中,也将自己一直以来关于Web界面应用开发的想法进行了梳理。我计划从桌面应用开始,逐一谈谈自己对GUI/Web Framework的思考。    (全文共6293字)——点击此处阅读全文

发表于 @ 2006年01月26日 6:55 PM | 评论 (1)

iFrame集成问题

在我所经历的Portal项目中,大部分都存在“如何集成外部Web应用”的问题。解决这个问题有多种方式,其中常用的一种方式就是iframe,也就是直接用iframe将外部Web应用包含进来。

iframe最大的优势在于它无需编程就能够集成外部应用,方便快速。而且如果外部应用有所更改马上就会看到效果。但是iframe也有不少硬伤,是需要在采用之前考虑到的,我总结了大致有:

1)页面刷新问题
假设现在页面上有两个Portlet,PortletA和PortletB,其中PortletB非常简单,包含iframe如下:
 <iframe width=420 height=330 frameborder=0 scrolling=auto src=URL1></iframe>
 
用户在iframe操作后,跳到URL2的页面。<然后用户点击PortletA的提交按钮,或者浏览器的刷新按钮,浏览器都会重新获得“<iframe width=420 height=330 frameborder=0 scrolling=auto src=URL1></iframe>”这个语句,也就是重新显示原始页面——URL1
 
请注意,这个问题无论是否采用Portal都会存在,只要页面包含iframe,那么该页面的提交都会导致所有的iframe重新显示原始页面。
 
2)页面风格问题
一般的网页都是假设自身在800*600以上的分辨率下显示,一般都包含了头部信息(例如系统名称/Logo,),尾部信息(例如联系电话等),还有大表格等等,因此并不适合通过iframe内嵌在另外一个网页来观看。另外还需要考虑到网页的风格——例如字体、大小、颜色等等的不同。
 
3)Portlet交互问题
由于iframe中的内容是在另外一个Web服务器上运行,与Portal服务器实际上是没有关系。iframe无法与其他Portlet共享HTTP Session、Portal Context等属性,因此很难与其他Portlet进行交互。
 
4)Portlet Render Cache和iframe
一个门户页面包含多个Portlet,当用户在某个Portlet中提交时,其他Portlet的内容也会重新渲染。Portal服务器一般会提供了Portlet Render Cache技术来将Portlet的显示内容缓存起来,避免不必要的执行,从而提高性能。但是iframe集成的内容实际上完全不经过Portal服务器,所以这个选项对它是不起作用的。
 
因此在通过iframe技术进行集成时,要充分考虑到iframe的优劣势,一般来说具备以下特性的页面比较适合用iframe来集成。
a. 页面风格简单,主要以数据为主,很少装饰元素
b. 页面逻辑简单,很少用户交互,可以通过URL参数获得相应的结果

发表于 @ 2006年01月17日 12:15 AM | 评论 (4)

推荐 爱搞搞
爱搞搞”这个奇怪的名字,是一个女孩子的网名,同时还是一个支持Donew Blog的桌面软件。能够实现blog的发布、管理、备份等功能,真是太好了。Donews上次被攻击的时候,我就很担心自己的blog会消失,即使自己在本地有备份,可是绝对没有那个心情去一篇一篇地重新提交,而且Donews的“写文章”界面也很慢。现在好了,有了这个工具,既能够保存本地备份,也可以跟服务器进行同步,而且还能够在本地写评论,这个比较酷。
 
我大致试用了一下,发现有以下改进的地方:
1. 目前本地备份目录固定在C盘,不能更改到别的目录。最好是可以由用户自定义本地目录,因为C盘比较危险,虽然可以自己另外复制一份,但总不如自定义目录方便。而且就这个功能而言,的确没有固定目录的必要。
2. 新建或修改文章的时候,在没有保存之前,如果不小心打开了其它文章,就会丢失所有修改。最好能够有自动保存的功能。
 
以下是一些锦上添花的需求:
1. 查看文章的时候,希望看到该文章的发表时间
2. 编写文章时,能够在一个界面一次设置各种分类,而不必分别点击
3. 能够将文章和评论一同显示,就像通过网页查看一样
4. 在查看某个文章时,最好也能知道文章的实际网址
 
总的来说,这是个不错的软件,我这篇文章就是通过爱搞搞弄上来的,如果你在用Donews Blog服务,强烈推荐使用!
 

发表于 @ 2006年01月11日 11:43 PM | 评论 (3)

Web应用界面发展的想法
"Is Ajax gonna kill the web frameworks?"是我最近看到的最近的一篇blog,在TheServerSide这个超级口水潭上面引起了激烈的争论,我也觉得可以趁机写写自己的一些看法。
 
最早正式提出Ajax这个概念的应该是Adaptive Path的这篇文章,从文中我们可以知道Ajax不是一种新技术,实际上它不是一种技术,而是几种技术的合称,在这几种技术中我认为最为关键的是:
1. XmlHttpRequest:能够以异步的方式从服务端获取数据,对用户透明,终于摆脱了“页面跳转、每次刷新”的交互方式!
2. DOM:动态地更改显示,例如根据获取的数据更改某个TextBox的内容。
 
通过采用Ajax,Web应用可以表现得类似普通的桌面应用,对最终用户的体验来说应该是一种回归。我猜想作为非IT行业的最终用户来说,可能会认为——“应用界面本来就是这样的,以前用Windows程序不都如此吗,只是你们弄出什么Web应用后才把界面搞得如此繁琐”!
 
实际上能够实现上述效果的技术还有不少,老早就出现的Java Applet就是,还有XUL、Flex、MS XAML等等,在Weighing the alternatives这篇文章对这些技术进行了比较,认为Ajax胜出。
 
Ajax改变了人们对Web应用的认识,特别是在Google一系列应用GmailGoogle Maps推出后,Web应用几乎“言必称Ajax”,现在甚至提出“Is Ajax gonna kill the web frameworks?”这样的问题!
 
现阶段来说,这个问题的答案当然是“NO”。
 
实际上Ajax只是几种基础技术的集合,并不会自然而然地成为一个客户端的开发平台,还需要在Ajax的基础上解决不少问题。 
只要在google搜索,就能找到大量着眼于改进Ajax的项目,从反面来说每个项目都是在针对Ajax所存在的缺陷进行改进。这个国人创建的项目ESS Framework演讲稿就提到不少JavaScript的问题,值得看看。而且像自动测试困难这些问题不是修修补补能够解决的,现在Ajax和开发社区正处于蜜月期,等蜜月期过去估计怨言就出来了。像EJB这样的技术也是因为测试困难等问题就被骂的狗血喷头。
 
目前来说,可靠的方式是将Ajax和某个Web Framework结合使用,Web Framework负责主要部分,Ajax只是负责改善界面体验。更进一步,可能将Ajax纳入某个Web Framework——例如JSF这样基于组件的技术,将组件的展现用Ajax技术实现,这样开发人员只是面对组建编程,无需了解具体的Ajax技术。
 
但是以后,随着技术的发展,我相信总会有Web界面技术(Ajax或者别的Web客户端技术)能够达到类似Delphi、VB这样的水平,那么Web Framework的确就该退出舞台。杞人忧天一下,那时候也许我们所关心的估计有:
1、客户端与服务端的对象远程传输和映射问题
2、业务逻辑在客户端和服务端的分工问题

发表于 @ 2005年11月25日 12:30 AM | 评论 (0)

Subversion 攻城拔寨
今天看到这两条新闻,
GCC项目将迁移到Subversion:http://slashdotcn.org/article.php/20051026041141833
KDE项目已成功转换到Subversion:http://slashdotcn.org/article.php/20050505142801327
 
感觉到Subversion的成长力量,本来在Open Source社区做版本管理基本上是非CVS莫属,但是现在越来越多的大型项目转移到Subversion上,它的目标——“The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community”——可以说基本实现。
 
在国内有专门的Subversion中文网站,但是比较冷清,不过上面的“一个非常快的快速入门”做得还真不错,我下载看了,的确可以让初学者立马用上。
 
要想了解Subversion的由来,可以看它的官方教材第一章,从中还可以知道Suversion的主力人员Karl Fogel原来是“Open Source Development with CVS”的作者,对CVS十分了解所以才能开发出更好的替代品。从Karl的网站还能获得他写的另外一本书“Producing  Open Source Software”,讲述开源开发管理的东西,而且可以自由下载该书。
 
说到开发管理,开源的工具的确有很多,针对不同方面的,但是缺少一个易用的整合平台。我们还是只能一个个工具地去学习,自行整合。
 
相关文章:
 Subversion 1.0 Release
 从CVS到Subversion

发表于 @ 2005年10月26日 10:55 PM | 评论 (6)

eclipse & ant
使用Eclipse来开发程序,同时使用ant,结果发现一个麻烦的地方,这个麻烦就是Classpath的设置。
 
Eclipse是在Java Build Path中设置Classpath,结果存放在".classpath"文件中;而ant则一般是通过先设置好<path>,然后在特定的task中通过classpath、classpathref来引用。Eclipse和Ant两者在Classpath的设置上是完全独立的,所以当我们往项目中增加一个jar文件的时候,就需要设置两次。
 
在google上查找一番,发现有人开发了一些相应的小程序来解决这个问题。主要思路是在build.xml增加一个task,该task能够读取eclpse的Classpath设置并加入到ant的环境中。但是我觉得这样的方法并不好,我希望我的java项目能够独立编译,也就是eclipse仅仅作为编辑工具,java项目可以在另外的环境脱离eclipe独立编译,因此build.xml的执行不能依赖于eclipse的classpath设置。
 
我目前的解决方法是将项目所需要的jar文件全部放置在"./libs"目录下,在build.xml中用
--------------------------------
 <path id="class.path">
  <fileset dir="${libs.dir}">
   <include name="**/*.jar"/>
  </fileset>
  <pathelement location="${build.classes}"/>
 </path>
--------------------------------
来设置classpath。这样当我增加一个jar文件时,只需要配置eclipse,而无需再配置build.xml了。
 
 
不过觉得这个libs的目录管理有点麻烦,其实我是从appfuse中将lib目录拷贝过来的。打算看看maven的说明,因为它可以根据配置文件,自动将所需要的jar文件拷贝到本地目录。

发表于 @ 2005年07月26日 12:21 AM | 评论 (1)

freemind 0.8.0 RC5 更新
freemind已经释放出0.8.0RC5,喜欢尝鲜的朋友赶紧下载来试用。

最大的变化就是可以“attach note to a node”,通过菜单"Insert -> note"可以做到。这个特性在很久很久以前就有人一直提出,开发者一直不支持这个特性,还好最终还是加入了。但是这个功能没有对应的快捷键,有点麻烦。

相对RC5的改进是导出PDF/SVG的中文不会乱码了。

暂时发现这些变化。

发表于 @ 2005年07月15日 11:03 AM | 评论 (0)

第1页,共2页

news


订阅我的Blog:

以前的flyisland.blogbus.com



最近更新

导航

blog stats

文章

收藏

相册

blog互联:)

friend's blog

存档


正在读取评论……