关于新的applet项目

关于新的applet项目

                   关于applet
   近年来,
web html 技术框架一直是 j2ee 应用的主流,表示层技术有: struts,webwork,spring-mvc 等。

从用户角度来说,这些view层技术提供的重点功能是:

1.完成用户状态的保持 (例:一个用户的登陆状态,购物车里的物品)

2.特别的,表单信息的保存(用户输入后,如果不成功,回退页面,必须显示原信息)

3.Validation机制

4.数据显示(使用modelview中拼装数据)

5.i18n等常见问题有较成熟的解决办法

    程序员角度来说,这些技术提供了如下便利

1.流程控制有一个较为集中的配置文件。便于修改

2.mvc分离,有较为清晰的逻辑结构

3.有些框架的拦截机制等,可以集中一些通用逻辑。

但在实践中, web层的系统千篇一律,不够美观。在电信前台大量输单等应用中,实上也不够方便。web的优势是易于分发,统一管理,同时提出了很多良好的设计理念和框架模型

其实我们最早用delphic/s或者三层架构(加应用服务器)的时候,是多么如鱼得水,显示几个数据表,做几个master/detail,真的是手到擒来,拖拖拽拽而已。在web程序中费尽心力才能解决的难点,在application将化为无形。

但applet应用较少,关键在于:
    客户浏览器不能直接支持(很可能需要装j2se),
    没有很好的应用框架来减轻程序员的负担,我手头的gui工具也不够理想,开发需要对swing有较深理解。applet技术近四五年来一直停顿,基本没有什么成熟组件的支持,没有现成框架,没有开源tag,没有css/javascript支持,开发效率可能不高。
目前基本框架设计如下:

  o_image001.gif

DB :       数据库

Dao:       使用hibernate实现的瘦Dao

Service:    Spring管理的业务外观,实现事务粒度,Dao被注射

Module:    Service Dao实例注射到Module,这里将完成业务逻辑。

Dispatcher  位于logic,是service的一个分发器,采用反射机制,自动调用service对应的方法

Servlet     负责和applet通信,通过Dispatcher  调用业务逻辑

Applet     view的实现

 

特别:

1.Dao的实现

在上一个项目中,我为每个实体类都作了一个Dao,但hibernate使得dao实现非常简单一致,在代码中事实上就导致了大量非常类似的贫血Dao实现。所以这次准备只做一个Dao接口,通用于各种实体类,虽然不够清晰,但结合hibernate的强大应是可行的。

2.        Servletapplet的通信,采用ObjectStream方式,简单省力,将完成一个专用的容器类,同时注意,applet中将直接使用domain对象。

3.  最后可在server端预留webwork环境备用

关于Applet技术:

1.      所有的业务逻辑通过ServletClient访问。

2.      所有的资源(图片,声音,文件) Resource获得,内部采用getResource();

3.      i18n问题采用resoucbundle,通过I18N转换(这里不知道有否更好办法)

4.      外观和风格用Sun的标准,暂不另加

5.      报表技术采用freeReport,拟用反射技术实现运行期报表,其余采用simpleXml格式完成报表设计。

6.      freeReport同时解决了数据输出问题(pdf,xls);

7.  所有相关jar需要做applet签名以获得本地操作权限

效果示例:

  r_image003.jpg

 

 

你可能感兴趣的:(关于新的applet项目)