Last update: 2011 Jan 9
The Natural Approach
ItsNat is an innovative open source Java AJAX Component based Web Framework, it offers a natural approach to modern web development.
Why natural? ItsNat leverages the old tools to build the new AJAX based Web 2.0 applications: pure (X)HTML and pure Java W3C DOM!
ItsNat is server centric using a unique approach called TBITS, "The Browser Is The Server". ItsNat simulates a Universal W3C Java Browser at the server, with ItsNat the server mimics the behavior of a web browser, containing a W3C DOM Level 2 node tree and receiving W3C DOM Events.
How it works
From server the developer can register W3C DOM Event listeners listening for W3C DOM events. This registry is automatically propagated to the client, when the user, for instance, clicks a "listened" element the real browser event is sent to the server using AJAX, converted to a W3C DOM event and received by the server based listener(s).
The DOM is used to modify the original tree/layout on loading time or as a response of a AJAX event, this original layout is defined using pure (X)HTML/SVG/XUL/XML based templates with absolutely NO logic! (extreme separation of view and logic). If the modification is big ItsNat provides "template fragments", a template fragment is a piece of markup that can be inserted (included) as DOM into the main tree statically or dynamically (typically as a response of a user/AJAX event).
Don't worry about the memory size of a DOM tree, ItsNat provides a smart DOM tree cache in a serialized form (pure text not DOM) for the static parts of a page/fragment shared between pages and DOM subtrees no longer going to be used can be removed only in server.
This approach perfectly fits with the Single Page Interface web paradigm. In typical ItsNat applications there is no reload, no page navigation, no back and forward problems, the methodology used is more similar to the desktop style of development.
ItsNat provides many more (core) features:
A Component System
ItsNat also provides a Component system (constructed over the Core level). These components are AJAX based from the scratch inspired in Swing and reusing Swing as far as possible such as data and selection models (but ItsNat does not want to be a Swing forced clone in web, is not a pixel based web framework).
ItsNat provides several button types, text based components, labels, lists, tables, trees (all of them with content editable "in place"), file upload based on AJAX...
The most interesting feature is: any element can be a component, for instance any element can be a normal button, a check box, a radio button, any element list may be a combo or a list component, for instance a group of SVG circles may be a multiple selection list component. Furthermore components can be used to generate XML!!
ItsNat components are not intrusive, they are not "black boxes", you can customize and control every element used, every attribute. Components are highly extensible and customizable, for instance there is no default decoration when selection ItsNat tells you when and what has been selected, ItsNat may be seen as a meta-framework.
To do user defined components, for instance compound components, is amazingly easy.
What ItsNat is NOT, what is MISSING (deliberately)!
Requisites / Platforms
ItsNat is pure Java and runs in any Java Virtual Machine v1.4 as the minimum configuration and virtually any Servlet compliant container.
ItsNat has been tested in Tomcat 5.5 and v6, GlassFish v2 and v3, Oracle’s Java SE 1.4 and 1.5 developer kits.
Google App Engine is supported including AJAX with some limitations.
Supported desktop browsers: Adobe AIR HTML Component, Arora, Google Chrome 1+, FireFox 1+, Internet Explorer v6,7,8, Internet Explorer v9, Moblin 2.0, Opera 9+, QtWebKit and QtJambi (Qt 4.4+), Safari 3+
Supported mobile browsers (all including AJAX): Android 1.0+ r2, BlackBerry JDE 4.6+ (Flip, Bold, Storm 1 and 2 etc) including JDE 6.0 (Torch), Bolt, Fennec 1.0a1 (a.k.a FireFox Mobile), Pocket IE 6 (Windows Mobile 6 and 6.1), IE Mobile 6 (since Windows Mobile 6.1.4), iPhone/iPod Touch 2.0+, Iris 1.0.8+, Minimo 0.2, Motorola Symphony 1.1 (ROKR EM35, MOTO VE66 phones), NetFront 3.4+ (WinMob and included in some SonyEricsson phones), Opera Mini 4.x and 5.x, Opera Mobile 8.6x (WinMob and UIQ), 9.5, 9.7 and 10, S60WebKit (since S60 3rd), S40WebKit (since S40 6th), Palm Pre webOS, QtWebKit of Qt for Embedded Linux (Qt v4.4) and Windows CE, SkyFire 1.0 and UCWEB 6+ (Java and WinMob).up
ItsNat is open source GNU General Public License v3 (LGPL v3) licensed, this license allows closed source applications developed on top of ItsNat.
Alternative commercial licenses exist if LGPL v3 is not for you. More info.up
The ItsNat Feature Showcase, is a special Java AJAX web application developed with ItsNat. Follow this LINK.
More demos and web applications running ItsNatup
The ItsNat distribution includes binaries, source code, javadoc, manuals and the ItsNat Feature Showcase.
Visit the download section.up
ItsNat is a product authored by the Spanish citizen Jose Maria Arranz Santamaria.up