`
tailsherry
  • 浏览: 134833 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Web2.0时代的新秀 - Nexaweb

阅读更多

Web2.0时代,用户对UI交互体验对Web设计上提出了更高的要求,各种各样的Rich Client技术层出不穷,有基于Javascript的,有基于Flex的,也有基于Java Applet的...

最近接触到一种新的基于Web2.0应用开发的技术,叫做Nexaweb(http://www.nexaweb.com),我们可以把他理解为一个简易的开发平台或框架。Nexaweb的特点就是开发者在一个基于Eclipse的插件集提供的界面上,使用拖拽的方式来构造页面,而最终生成的代码将是一个基于XML的文件,取名为XAL。事实上,接触过JasperReport+iReport的人,应该不会对这种技术感到陌生。其示例内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<xal xmlns="http://openxal.org/ui/html">
	<rootPane>
		<freePane height="768px" width="1024px">
			<table height="360px" width="500px" x="30px" y="30px">
				<column>
					<header text="Column #1" width="100px"/>
				</column>
				<column>
					<header text="Column #2" width="100px"/>
				</column>
				<row>
					<cell text="Row 1 Cell 1"/>
					<cell text="Row 1 Cell 2"/>
				</row>
				<row>
					<cell text="Row 2 Cell 1"/>
					<cell text="Row 2 Cell 2"/>
				</row>
				<row>
					<cell text="Row 3 Cell 1"/>
					<cell text="Row 3 Cell 2"/>
				</row>
			</table>
			<button height="25px" text="Button" width="100px" x="30px" y="410px"/>
		</freePane>
	</rootPane>
</xal>


以上的例子只是一个非常简单的示例,XAL所有的内容远非如此。比如,我们还可以在其中定义各种类型的Datasource,Webservice连接,事件管理的MCO,页面组件相关的XModifier和Macro等。XAL的目的就是让你所见即所得,可能你自己需要写的Java代码或JSP页面寥寥无几,所有的东西都由Nexaweb Platform全权处理了。无疑,这让我们的Web应用开发更加节省时间。


下面我就介绍一下Nexaweb的主要特点:

1. 灵活的Rich Client展示
由于XAL是基于XML来构建的,所以客户端展示模式可以多种多样。Nexaweb目前主要采用的主要是基于Javascript的Dojo,还有就是Java Applet。这里不讨论各种Rich Client技术的孰优孰劣,我们需要知道的是这两种展示可以被所有的浏览器所支持。

这里值得一提的是,关于XAL文件解析的位置。一般的思路,也是许多类似平台的思路,我们会倾向于将XAL文件放在服务器端去解释,不管是从安全性和效率性方面考虑都是应该的。但是恰恰相反,Nexaweb是将XAL拿到客户端去解释成相应的Dojo对象或者Applet组件。为什么这样做?这主要是因为Nexaweb是要适用于所有的开发平台,不仅仅是Java,还有.Net的等等。

2. 丰富的界面组件支持
对于Applet在Web界面上的展示效果,这是毋庸置疑的,大家在各种各样相关的例子中都有过类似的体验。对于Dojo,我想很多人都有过接触,知道Dojo本身也提供了丰富的UI组件库,此外,Nexaweb也在基于Dojo的基础上,发展出了XAP(目前是Apache下面的一个开源项目,有兴趣的可以去了解),还有就是Dojo.E,定制了很多强大的UI组件,大大提高了Dojo在web上的展示能力。

3. 巧妙的事件处理机制
既然是一个静态的XAL文件,Nexaweb如何处理事件呢?这里主要用到Macro和XModifier。Macro主要用来处理客户端事件,你可以把他看作是Excel中的宏,Macro的主要作用就是进行客户端组件的控制,如某个组件的某个属性的修改,导致何种的界面效果。而XModifier是用来处理Server端的响应,如果是基于Java的应用,一般系统会自动引导你去建一个扩展一个BaseMCO的类,实现里面相应的方法就OK了。

4. 强大的框架支持
Nexaweb本身集成了Webservice的功能,这样会让你很方便的去访问远程的服务。当然,Nexaweb也加入了对Struts, Spring, Hibernate/iBatis等流行框架的支持。

5. 对MDA UML2良好的支持
Nexaweb同样集成了MagicDraw 和 OpenArchitectureWare 等插件的支持。

6. 支持基于VB, C++ Builder应用的移植
由于Nexaweb的XAL的特殊性,Nexaweb可以支持把传统的VB, C++ Builder的应用移植到Nexaweb中来,部署成为一个Web应用。


我现在也是正在学习这个框架,但是自从体验过一次实际开发后,才知道原来开发一个Web2.0的应用只需要短短的几分钟,以前可能需要几个小时的工作,在Nexaweb却一会儿即可完成。

现在Nexaweb主要还是在欧美和日韩有庞大的客户群,而且都是大型的企业。对于小企业呢,可能不会舍得投入这种成本,而选择用一些免费的开源框架去做一些企业应用。

 

分享到:
评论
13 楼 key232323 2008-09-24  
tailsherry 写道
dennis_zane 写道
这个与Mozilla的XUL或者微软的XAML有什么不同呢?

表示风格的确有点类似XUL,个人觉得XUL是一个WEB ui的展示标准,而Nexaweb却是一个开发WEB应用的工具。

研究过一段时间zk,总觉得和zul本质一样,就是功能上强和弱差别而已。推荐看看html5.0的spe,期待html升级啊,那个时候才是标准,就没所谓的web xul了
12 楼 tailsherry 2008-08-28  
<div class='quote_title'>jzcjy 写道</div>
<div class='quote_div'>给产品在国内的实际应用如何,哪位用过了!</div>
<p> </p>
<p> 我现在正在做这方面的应用,给你看看一个我开发的界面:</p>
<p> </p>
<p> <img src='../../../../../../upload/picture/pic/20749/e86bfbbc-ac6a-3d92-9c2a-92fb4a367f32.jpg?1219888050' height='565' alt='' width='790'/></p>
<p> </p>
<p> 比如说其中的popup菜单,构造他仅四行代码就实现了:</p>
<p> </p>
<div>&lt;popupMenu id="rightKey"&gt;</div>
<div>    &lt;menuItem onMouseDown="mco:javaEmployeeMco.deleteSelected(event)" text="Delete Row"/&gt;</div>
<div>    &lt;menuItem text="Insert Row"/&gt;</div>
<div>&lt;/popupMenu&gt;</div>
<div> </div>
<div>javaEmployeeMco是一个Java类,可以响应界面的事件,其中的deleteSelected(event)对应javaEmployeeMco中的一个方法:</div>
<div> </div>
<div><span style='color: #0000ff;'>public void deleteSelected(ClientEvent event) {};</span></div>
<div> </div>
<div>简单吧!</div>
11 楼 jzcjy 2008-08-25  
给产品在国内的实际应用如何,哪位用过了!
10 楼 black_zerg 2008-08-06  
jsf就是垃圾,你要问我为什么,因为web上搞mvc这种事情不能当真,jsf却当真了,所以越搞越烂,搞来搞去,web的简单优势丢了,却做不到desktop的效果,还不如gwt之类有实际意义。
9 楼 tailsherry 2008-08-01  
dennis_zane 写道
这个与Mozilla的XUL或者微软的XAML有什么不同呢?

表示风格的确有点类似XUL,个人觉得XUL是一个WEB ui的展示标准,而Nexaweb却是一个开发WEB应用的工具。
8 楼 dennis_zane 2008-07-31  
这个与Mozilla的XUL或者微软的XAML有什么不同呢?
7 楼 tailsherry 2008-07-31  
49271743 写道
插件怎么加到 MYECLIPSE里呢?

Nexaweb的出发点是做一个web的project,他的理念应该就是通过其自身的平台自动生成一个web应用,然后一步一步引导你做下去。

不能把Nexaweb仅仅理解为一个插件,所以也谈不上怎么加到MyEclipse中。
6 楼 jim19770812 2008-07-31  
我还是看好jsf,结合netbeans的vwp,生产力很高。
5 楼 49271743 2008-07-31  
插件怎么加到 MYECLIPSE里呢?
4 楼 tailsherry 2008-07-30  
biubiu 写道
一个框架而已。看看Swing有多少个同样目的的框架,再看看有几个被认可的。


的确,我也不是很看好Swing在web上的应用,但是,Swing的用户体验肯定也无可厚非。

Nexaweb的Java页面展示虽然也是基于Swing, Awt,但是他的的确确让程序员从繁琐的页面控件布局,彻彻底底从页面代码堆里面爬出来了。

你写的基于Java Applet的应用,基本上看不到Swing的代码,所有的这些都是Nexaweb帮你做了。
3 楼 tailsherry 2008-07-30  
slaser 写道
我认为这个技术本身不是web2.0的一部分,而是一种xml模板技术,本质和jsf没有区别,他的web2.0特性不过因为其提供的dojo的render,我怀疑其能否meet互联网的需求,至于企业领域,又如何和逐渐成熟的jsf竞争喃。


jsf本身局限于java的应用,而Nexaweb的发展方向是对所有类型的server都支持的富Client。

还有一点就是,Nexaweb本身是一个框架,在集成其他的框架方面提供了比较快捷的入口,而这一点,jsf现在不会有,将来也不会有。

让程序员轻松快速的开发是Nexaweb的出发点。
2 楼 biubiu 2008-07-29  
一个框架而已。看看Swing有多少个同样目的的框架,再看看有几个被认可的。
1 楼 slaser 2008-07-29  
我认为这个技术本身不是web2.0的一部分,而是一种xml模板技术,本质和jsf没有区别,他的web2.0特性不过因为其提供的dojo的render,我怀疑其能否meet互联网的需求,至于企业领域,又如何和逐渐成熟的jsf竞争喃。

相关推荐

Global site tag (gtag.js) - Google Analytics