• Swingweb


    Swingweb是一个web框架,它能够在一个Web容器中操作AWT/Swing应用程序并把它作为一个纯HTML/CSS/javascript的Web应用程序呈现给浏览器.

    Swingweb is a web-application framework that enables AWT/Swing application to operate inside a web container and presented as a web application to the web browser, purely in HTML/CSS/javascript. The swing application will render and behave in the web-container the same as it would as a desktop application. There is little knowledge required for the developer to start developing swingweb application as long as they are familiar with swing UI development.

    The main goals of the Swingweb framework are to:

    1. Enable true component-based web-application development platform
      Swingweb allows the developer to specify the web-application in terms of UI components and their interactions. The functionality of the web-application is more formally defined as opposed to page-centric model where functionality is composed by gluing the webpages loosely together. Furthermore, the application functionality is more predictable and guaranteed to work as long as all UI components are unit-tested. There will be no more page-management and http session-state manipulation hassle. Once written, the component, either fine-grain like a text-box, or coarse-grain like calendar, will be reusable and save development costs over time.
    2. Use swing UI model for web application development
      Swing component model is one of the best and most-practiced UI model for java platform. There should be no learning curve for most Java developer to pick up web-application development using swingweb. Swingweb tries to make distinction between desktop and web application development as transparent as it could be yet at the same time maintains flexibility on the controls of the look and feel of the web-application through UI component template system.
    3. Allow rapid development using existing GUI editors for web application development
      There are a lot of good tools for swing application development. Most java IDEs (including eclipse) also contain GUI editors. The editors allow the developer to rapidly develop, maintain and change the application in response to changed requirement.
    4. Save development cost by merging the development process of swing desktop application and (e.g. in-house) web application
      Given the right architecture, the desktop and web application development can be merged into a single process and thus reduces development cost.

    Some of the features of Swingweb include the following:

    • Support web-environment with multiple concurrent application sessions
      While most desktop applications are designed to run in a stand-alone jvm, swingweb extended the AWT toolkit implementation so that multiple concurrent application sessions can run in the web container jvm, yet making each application session isolated so that the running applications will not interfere with each other's operations.
    • Component-oriented architecture that allows developers to enable existing swing component to web environment easily
      Swingweb underlying framework allows developer to control how the interaction and event-input of each component individually. Thus it is very easy to extend an existing swing component (e.g. some third-party widget) so that it can operate in web environment.
    • Flexible template-based approach allowing changing look/functionality of component/application
      The rendering of the each swing components is provided through a template file that is written in jxp template language (essentially java language). Thus it is very easy to control the look and feel of a component as web widget. Furthermore, the template can be configured per component type or per instance.
    • Transparent URL manipulation and session management inside swingweb application
      Swingweb support url manipulation so the developer can customize how the browser url changes as the interface changes. The application can also access and react to url changes using very simple API. This allow implementation of webapplication that allows bookmarking, back-button and other advanced features such as component caching and sharing. There is also API for per session variables.
    • Light-weight, performance focus, and scalable for high traffic web-applications
      The (awt)toolkit implementation utilizes several techniques including lightweight peers, threadless event queue, custom repaint manager to reduce memory footprint and increase the performance of the swing application in the web context. There is also a special deployment mode, share-app mode, which allows sharing of component instances across the application sessions for scalability.
    • Natural adaptation of components to the web Some adaptation has been made to the components for the web development - e.g. - FileDialog will upload local files to webserver, all button icons will be buffered and rendered property as <img src=""> tag, all components that uses Graphics2D can be rendered nicely as image (with a flag set of the component) etc.
    点击次数   官方主页【官方主页】   下载地址【下载地址】

    网友留言/评论

    我要留言/评论

    相关开源项目

    Cocoon:Stefano Mazzocchi于1999年1月创建了Cocoon项目,将其作为ASF之下的开放源代码项目。Cocoon的目标是帮助分离内容格式、逻辑和对基于XML网站的管理功能。Cocoon使用XML, Extensible Stylesheet Language Transformations (XSLT), 以及 Simple API for XML (SAX) 技术,以帮助创建、部署和维护XML服务器应用程序。它支持大多数类型的数据源,包括RDBMS、LDAP和文件系统。在Eclipseh下进行开发的插件
    JWC:Java Web Components该项目当前开发了一些用于GWT应用程序的组件包括:GWT - Components(用于替换和增强GWT标准组件),GWT - TinyMCE (用于集成TinyMCE DHTML在线编辑器),GWT - FCK Editor (用于集成FCK Editor DHTML在线编辑器),GWT - Spring集成组件。
    Echo:Echo是为用Java开发Web应用程序提供的一个面向对象,事件驱动的框架。使用Echo 框架来编程类似于使用Swing API来开发应用程序或applets 。
    Turbine:Turbine是基于Servlet的框架包,也是开放源代码Jakarta项目。目前还没有关于Turbine的大量文档。它类似于Struts,但是有一些主要区别。突出的一点就是它并没有与JSP耦合。Turbine的特点是它提供了大量可重用的组件。此框架包中包含了大量组件,但是这些组件是离散的。它似乎应该给出更多的组件库,但是由于它缺少文档,所以很难掌握完整的体系结构。
    Pustefix:Pustefix是一个web应用程序框架.它包含一个基于XML/XSLT的视图生成系统与一个清晰MVC模式的后端系统.前台UI可以利用XSLT模板构建并可包含部分的HTML或XML代码.
    Verge:Verge框架是一个开源J2EE应用程序框架完全采用Java开发只使用到标准的J2EE APIs.这个开源项目的目的为开发企业应用程序提供一个非常灵活和可扩展的框架.
    joywindow: joywindow是的目标是用java语言与HTML显示来构建桌面应用程序.通过它,开发者可以用WEB开发的MVC模式构建桌面应用程序,可以有效提升开发速度.
    它实现了模型,控制,显示层的分离,可以让界面设计者与程序开发者的分工.并且在界面设计上,可以充分利用web开发的javascript,css,flash,HTML等技术,实现丰富多彩的界面效果.
    joywindow内置一个类struts2.0的基础框架(wox),可以自动封装输入值,并通过配置进行逻辑跳转.joywindow虽然不如java web一样支持jsp动态页面,但是集成了velocity作为动态页面解析语言.工作原理:joywindow原理是java内嵌浏览器做界面展示,通过一个simpleServer来作为传递资源,响应事件的中间处理,在base版本中,simpleServer也是开发的重点.
    MyFaces:MyFaces是JavaServer(tm) Faces(JSF) Web框架 (JSR 127)的一个实现。JavaServer(tm) Faces Web框架是一个新的实现MVC模式的规范.它可以与Struts框架相媲美甚至的一些特性与观念已经超过了Struts.【FacesIDE:Eclipse下的一个辅助开发插件】.
    基于全注解方式的SSH基础框架ssh-base-framework: 基于struts2.23 + spring2.5.6 + hibernate3.6.4 + hibernate-generic-dao1.0(除了spring,我整合的都是最新的GA包,hibernate-generic-dao是google code项目库中一个开源的basedao,我灰常喜欢,因为我找不到更好更适合我的)。
    jsf-comp:jsf-comp一组JSF组件