WebOnSwing 1.0.2 Final

Discussions

News: WebOnSwing 1.0.2 Final

  1. WebOnSwing 1.0.2 Final (8 messages)

    WebOnSwing is a multiple environment application framework that allows you to create web applications in the same way you develop a desktop one. You dont need to use JSP files, special tags, XML files, requests, posts, etc. Everything is Java and pure HTML files that comes directly from the graphic designer.

    WebOnSwing is an open source project distributed under LGPL license.

    This framework constructs and handles html pages with Swing components, allowing to use MVC architecture and all the facilities provided by Swing in the web.

    The main purpose of WebOnSwing is not to provide a migration tool for preexisting Swing applications to a web environment, although you can use this framework to do that kind of tasks. WebOnSwing make a re use of a solid, tested and well known architecture like Swing's one in web developement process.

    Provides a powerful template engine that simplify the integration of components and windows with html templates. WebOnSwing templates dont need any special tag and dont have absolutly nothing of logic inside, so you can interchange those in a polimorphic way to create differents skins of your component, pages or entire site (see PetStore Demo), with no recoding.
    WebOnSwing default window manager allows the use of modal windows transparently, keeping the stack of windows and each one state within the html page, to be able to reconstruct navigation completely, with no need to maintain any data in the server session. With this aproach passing parameters throught differents windows is easy and dont need a special treatment.

    Another interesting feature is the capacity to refresh components, that allows to update single parts of the page which have changed from last request, remarkably lowering to the traffic of the sucesive requirements and increasing the speed of page responses. Also using the automatic refresh feature is possible to simulate the behavior of a desktop application from web, obtaining the differences of the view by periodics polling from client side to server.

    Visit the home page: http://webonswing.sf.net

    Threaded Messages (8)

  2. WebOnSwing 1.0.2 Final[ Go to top ]

    excellent job Fer!!

    As soon as the dependency on the -Xbootclasspath can be circumvented, i think it will become a top choice on componentized development, beating JSF and Tapestry.

    keep up the good work ;)

    Fernando Racca
  3. Bootclasspath dependecy[ Go to top ]

    With the new classloader provided in this release you will be able to use any other Swing classes set, as SwingWT or GNU Classpath Swing.
    We're preparing a special version of SwingWT that implements some missing methods required for WebOnSwing internals, that doesnt use any toolkit or look&feel classes, allowing to quit from bootclasspath the WebOnSwingBoot.jar making deployments easier.
  4. WebOnSwing 1.0.2 Final[ Go to top ]

    A nice framework I think. I haven't used it yet. But it looks a lot like the ASP.NET way of codebehind. I'm very interested if ViewState and SmartNavigation know from ASP.NET will be implemented.
  5. WebOnSwing 1.0.2 Final[ Go to top ]

    A kind of viewstate is handled throught Persistence Contributors, and the "viewstate" can be stacked for web "modal" windows, retrieving each state when the user uses back and fore buttons.
    There are several examples such as Weblog application and PetStore demo that use a Hibernate persistence contributor to persist the id and restore it from database when the post is back. This contributor is reused for many pages that have the similar behavior.
    The SmartNavigation is not handled, but there is a mechanism of component refreshing (or partial updates) that allows you to update only the html part that changed from last request! The traffic is decreased a lot, reloading flashing is eliminated and responses are much faster.
  6. Neither fish nor flesh[ Go to top ]

    Hi Fernando,

    first, I'd like to congratulate you to this very extensive framework.

    I must say, though, that you're mixing technologies a lot. Especially the HtmlTemplate-idea shows that you don't separate web programming from Swing programming.

    We have a similar product as well (webbase gui library, www.nextwebstep.com), which completely hides any web ideas from the programmer. We use "parallel" classes (NButtons instead of JButtons, etc.) to avoid the Swing libraries as well (as they cannot be fully implemented in Html anyway!).
    webbase fully (fully!) creates the complete web pages, including Html, Javascript, and CSS style sheets.

    We find that the target group of such frameworks is the programmer who does not have any experience with the web (thus: omit the HtmlTempates!) and wants the framework to be an extension to his already-working software (e.g., a web admin extension). For this, it is a good idea to have a simple web server on board. Integrating one's own software as a "plugin" into tomcat seems a weird idea for programmers outside the web world!

    Well, keep up the good work and try the full separation of web (html, jscript, css) and gui classes.

    Greetings

    Tom Fresen, nextwebstep.com
  7. Neither fish nor flesh[ Go to top ]

    Hi! The idea of WebOnSwing is provide an UI abstraction layer totally decoupled from web, but at the same time the developer could customize in detail the behavior of the resulting web applications.
    To do that this framework use Swing components layer and a Contributors layer that handles JS, CSS, Persistences, Partial Updates, etc.
    So Swing layer does not know anything about HTML representation or JS listeners, js classes, styles, etc., is completly decoupled!

    When you work with Templates in Swing, you dont use HtmlTemplates, you use an abstraction of templates, and implementing some framework interfaces you could use templates in desktop applications too.
    There is a template for Swing provided that is a composition of Swing panels identified by each component name.
    Changing the DefaultTemplateManager you will handle the aliases, that are used in Swing to reference templates, to load other set of templates (for example SwingTemplates).

    With WebOnSwing you could develope your application with no knowledge of HTML, JS, CSS, etc. You only have to write your application as a ordinary Swing one and automatically you have your application running in web. But in this case, all events will be resolved at server side, slowing down some parts of the application. In case you want to optimize the response to solve some parts at client side, here you must implement some contributors that helps the application to be more "standard". Also with these contributors you could handle persistence to turn your application stateless and use your own CSS.
  8. Neither fish nor flesh[ Go to top ]

    We use "parallel" classes (NButtons instead of JButtons, etc.) to avoid the Swing libraries as well (as they cannot be fully implemented in Html anyway!).

    In case anyone is interest, SwingWeb is similar to WebOnSwing but with a lot of fundamental difference
    - total reuse of the Swing component
    - always stateful (no need for contributer concepts)
    - no HtmlTemplateLayout idea but support any layout in jdk + the one you wrote
    - component and web template concepts are separated
    - currently running SwingSet2 in browser (html, javascript, css)

    Good work Fernando to make the final release
    Excuse me for the shameless ad for my project :)
  9. Neither fish nor flesh[ Go to top ]

    We use "parallel" classes (NButtons instead of JButtons, etc.) to avoid the Swing libraries as well (as they cannot be fully implemented in Html anyway!).

    Yes, Webbase gui library seems to use a parallel set of classes such as NButtons instead of JButtons, but WebOnSwing use the original Swing classes set with no changes, take a look to the PetStore demo!

    In case anyone is interest, SwingWeb is similar to WebOnSwing but with a lot of fundamental difference- total reuse of the Swing component - always stateful (no need for contributer concepts) - no HtmlTemplateLayout idea but support any layout in jdk + the one you wrote- component and web template concepts are separated - currently running SwingSet2 in browser (html, javascript, css)Good work Fernando to make the final releaseExcuse me for the shameless ad for my project :)

    I dont see a lot of fundamental differences, in WebOnSwing also:

    * Swing components also are totally reusable

    * WebOnSwing has two state modes, if you use in statefull mode you run the application as a desktop one, just like the original application version but with a web view. And if you activate the stateless mode you could handle the state of each pages/window adding the concept of persistence contributors. Contributors are not necessary to run an application in web, they are only for optimaze proposes and to make the application looks better.

    * WebOnSwing supports also supports any LayoutManager (from JDK and third parties) and adds a new layout manager to manage templates.

    * The concepts of web templates and components are also separated, you could use any layout manager for web and if you want to use templates, to make your application looks better in web you use the new TemplateLayoutManager. But the use of this new layout manager is not specific for web, Swing templates classes are provided!

    I did not test the SwingSet2 demo under WebOnSwing but I supposed that will run correctly.


    Best regards, Fernando