Thursday, October 6, 2011

AJAX Frameworks

  • Dojo Toolkit
Dojo saves you time, delivers powerful performance, and scales with your development process. It’s the toolkit experienced developers turn to for building superior desktop and mobile web experiences
http://dojotoolkit.org/

  • GWT (Google Web Toolkit)

Google Web Toolkit (GWT) is a development toolkit for building and optimizing complex browser-based applications
http://code.google.com/webtoolkit/

  • Wicket

With proper mark-up/logic separation, a POJO data model, and a refreshing lack of XML, Apache Wicket makes developing web-apps simple and enjoyable again
http://wicket.apache.org/
http://www.youtube.com/watch?v=AB8fotMumW4

  • jQuery
jQuery is a cross-browser JavaScript library designed to simplify the client-side scripting of HTML
http://en.wikipedia.org/wiki/JQuery

jQuery is a JavaScript Library.
jQuery greatly simplifies JavaScript programming.
jQuery is easy to learn.
 http://www.w3schools.com/jquery/default.asp


jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development
http://jquery.com/


  • AJAX = Asynchronous JavaScript and XML.
AJAX is not a new programming language, but a new way to use existing standards.
AJAX is the art of exchanging data with a server, and updating parts of a web page - without reloading the whole page.
 http://www.w3schools.com/ajax/default.asp

Ajax (also AJAX acronym for Asynchronous JavaScript and XML) is a group of interrelated web development techniques used on the client-side to create asynchronous web applications.
With Ajax, web applications can send data to, and retrieve data from, a server asynchronously (in the background) without interfering with the display and behavior of the existing page.
Data can be retrieved using the XMLHttpRequest object.
Despite the name, the use of XML is not required (JSON is often used instead), and the requests do not need to be asynchronous.
http://en.wikipedia.org/wiki/Ajax_%28programming%29




  • JSON 

JSON (JavaScript Object Notation) is a lightweight data-interchange format.
It is easy for humans to read and write. It is easy for machines to parse and generate.
It is based on a subset of the JavaScript Programming Language
http://www.json.org/


JSON
JSON or JavaScript Object Notation, is a text-based open standard designed for human-readable data interchange. It is derived from the JavaScript scripting language for representing simple data structures and associative arrays, called objects.
Despite its relationship to JavaScript, it is language-independent, with parsers available for many languages.
http://en.wikipedia.org/wiki/JSON


  • Vaadin
Vaadin is a web application framework for Rich Internet Applications (RIA). In contrast to Javascript libraries and browser-plugin based solutions, it features a robust server-side architecture. This means that the largest part of the application logic runs securely on the server. Google Web Toolkit (GWT) is used on the browser side to ensure a rich and fluent user experience.
https://vaadin.com




  • jsoup

Java HTML Parser.jsoup is a Java library for working with real-world HTML. It provides a very convenient API for extracting and manipulating data, using the best of DOM, CSS, and jquery-like methods.
http://jsoup.org/



  • ExtJS

Ext JS (pronounced E-X-T-J-S) is a JavaScript library for building interactive web applications[1] using techniques such as Ajax, DHTML and DOM scripting.
http://en.wikipedia.org/wiki/Ext_JS



  • Sencha Ext JS JavaScript Framework for Rich Apps in Every Browser
With an advanced MVC architecture, plugin-free charting, and modern UI widgets, Sencha Ext JS is the industry's most powerful desktop application development platform. Sencha Ext JS provides unparalleled cross-browser compatibility enabling you to develop incredible web apps for any browser.

http://www.sencha.com/products/extjs/


  • ZK Framework

A Java Web framework for building rich Ajax and mobile applications.
http://www.zkoss.org/



  • Apache Shindig

Apache Shindig's goal is to allow new sites to start hosting social apps in under an hour's worth of work. Apache Shindig is a container for hosting social application consisting of four parts
http://shindig.apache.org/




  • WaveMaker

WaveMaker is a visual development tool that lets everyone quickly build and deploy great-looking web and cloud applications. With WaveMaker, you can build a complete, 3-tier web application in minutes
http://www.wavemaker.com/



  • Eureka Streams

Eureka Streams is a free, open source enterprise social networking platform developed by Lockheed Martin.
Activity streams and gadgets make up its core functionality. Content within Eureka Streams consists primarily of microblogs and internal and external web feeds.
Users typically provide links to other content, such as wikis, blogs, and shared documents housed in a content management system.
https://en.wikipedia.org/wiki/Eureka_Streams

Eureka Streams Documentation
http://eurekastreams.org/


  • Kendo UI
Comprehensive HTML5, JavaScript framework for modern web and mobile app development
http://www.kendoui.com/


  • AngularJS 

Other frameworks deal with HTML’s shortcomings by either abstracting away HTML, CSS, and/or JavaScript or by providing an imperative way for manipulating the DOM. Neither of these address the root problem that HTML was not designed for dynamic views.
AngularJS is a toolset for building the framework most suited to your application development
http://angularjs.org/



  • EmberJS

Ember makes Handlebars templates even better, by ensuring your HTML stays up-to-date when the underlying model changes. To get started, you don't even need to write any JavaScript.
http://emberjs.com/


  • Backbone.js

Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.

http://backbonejs.org/

Backbone.js is basically an uber-light framework that allows you to structure your Javascript code in an MVC(Model, View, Controller)
Model is part of your code that retrieves and populates the data
View is the HTML representation of this model(views change as models change, etc)
Controller that in this case allows you to save the state of your javascript application via a hashbang url

http://stackoverflow.com/questions/5418369/what-is-the-purpose-of-backbone-js


  • knockout.js helps you simplify dynamic JavaScript UIs using the Model-View-ViewModel (MVVM) pattern.
http://knockoutjs.com/

JSF Technologies

  • JSF(Java Server FaceS)

JavaServer Faces technology establishes the standard for building server-side user interfaces
http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html

  • Prime Faces

PrimeFaces is a lightweight open source component suite for Java Server Faces 2.0 featuring 100+ rich set of JSF components
http://www.primefaces.org/

  • RichFaces

The RichFaces project is an advanced UI component framework for easily integrating Ajax capabilities into business applications using JSF.
http://www.jboss.org/richfaces

  • ICEfaces

As a leading open source Ajax framework, ICEfaces is more than a Ajax JSF component library, it's an J2EE Ajax framework for developing and deploying rich enterprise applications (REAs).
http://www.icefaces.org/main/home/



  • Apache MyFaces is a project of the Apache Software Foundation, and hosts several sub-projects relating to the JavaServer™ technology. If you want to know more about how JavaServer™ Faces works, take a look at the MyFaces introduction to JSF


The Apache MyFaces project provides:

    a JavaServer™ Faces implementation (MyFaces Core, providing api/impl and bundle modules)
    several component libraries containing UI widgets for building web-applications with JSF (e.g. MyFaces Tomahawk, MyFaces Trinidad, MyFaces Tobago)
    extension packages to JavaServer™ Faces (e.g. MyFaces Orchestra, MyFaces Extensions Validator, MyFaces Extensions CDI)
    integration modules to other technologies and standards (e.g. MyFaces Portlet Bridge for integration with the portlet-standard)

http://myfaces.apache.org/




  • MyFaces Tomahawk

MyFaces provides a series of JSF components that go beyond the JSF specification. These components are 100% compatible with the Sun JSF 1.1 Reference Implementation (RI) or any other JSF 1.1 compatible implementation. Of course the custom components can also be used with the Apache MyFaces JSF implementation.

Although we try to make Tomahawk as "portable" as possible, not all Tomahawk releases are compatible with all MyFaces or Sun Mojarra (formerly RI) releases. A Tomahawk release is always compatible with the latest MyFaces Core release available at the time that Tomahawk version was released
http://myfaces.apache.org/tomahawk/index.html





  • MyFaces Trinidad

Apache MyFaces Trinidad is a JSF framework including a large, enterprise quality component library, supporting critical features such as accessibility (e.g. Section 508), right-to-left languages, etc. It also includes a set of framework features, including :

    Partial-page rendering support for the entire component set
    Integrated client-side validation
    A dialog framework
    pageFlowScope, for communicating between pages

Apache MyFaces Trinidad currently supports the following JSF versions:

    JSF 1.1: supported by the Apache MyFaces Trinidad 1.0.x line
    JSF 1.2: supported by the Apache MyFaces Trinidad 1.2.x line
    JSF 2.0: supported by the Apache MyFaces Trinidad 2.0.x line

http://myfaces.apache.org/trinidad/index.html





  • Apache Tobago

The goal of Apache Tobago™ is to provide the community with a well designed set of user interface components based on JSF and run on MyFaces.

Tobago is more than just a tag library. The following statements characterize Tobago and make it different from other frameworks:

    The focus of Tobago is to create business applications without the need for HTML design. The development of Tobago pages follows more the development of conventional user interfaces than the creation of web pages.
    The UI components are abstracted from HTML and any layout information that does not belong to the general page structure. The final output format is determined by the client/user-agent.
    A theming mechanism makes it easy to change the look and feel and to provide special implementations for certain browsers. A fallback solution ensures that as much code is reused for new themes as possible.
    A layout manager is used to arrange the components automatically. This means, no manual laying out with HTML tables or other constructs is needed.

http://myfaces.apache.org/tobago/index.html


  • Apache Tiles

Apache Tiles is a templating framework built to simplify the development of web application user interfaces.
Tiles allows authors to define page fragments which can be assembled into a complete page at runtime. These fragments, or tiles, can be used as simple includes in order to reduce the duplication of common page elements or embedded within other tiles to develop a series of reusable templates. These templates streamline the development of a consistent look and feel across an entire application.
Tiles grew in popularity as a component of the popular Struts framework. It has since been extracted from Struts
http://tiles.apache.org/


  • Shale Framework

Shale is a modern web application framework, fundamentally based on JavaServer Faces. Architecturally, Shale is a set of loosely coupled services that can be combined as needed to meet particular application requirements. Shale provides additional functionality such as application event callbacks, dialogs with conversation-scoped state, a view technology called Clay, annotation-based functionality to reduce configuration requirements and support for remoting. Shale also provides integration links for other frameworks, to ease development when combinations of technologies are required.
http://shale.apache.org/

Rich, Thin,Thick client

  • fat (heavy, rich,thick) client 


A fat client (also called heavy, rich, or thick client) is a computer (client) in client–server architecture or networks that typically provides rich functionality independent of the central server. Originally known as just a "client" or "thick client"[1] the name is contrasted to thin client, which describes a computer heavily dependent on a server's applications.

http://en.wikipedia.org/wiki/Fat_client

  • Rich Client

The Rich Client mixes the characteristics of classical web applications and RIAs.
The web application is client-centric (i.e. the user interface is loaded to client at the start of the application).
The view uses HTML widgets, thus no plugin is required.
Contrary to RIAs, the goal of a Rich Client is NOT to offer a modern looking user interface, but to improve the usability of an already widespread and accepted view

http://www.kai-waehner.de/blog/2010/12/30/categorization-of-web-frameworks-in-the-java-environment/



  • What is a thin client?

A thin client is a lightweight interface to the application that does not have such operations like query databases, execute complex business rules, or connect to  legacy applications.


  • Thick vs. Thin Client Applications

A thin client machine is going to communicate with a central processing server, meaning there is little hardware and software installed on the user's machine. At times, thin may be defined as simply not needing the software or operating system installed on the user machine. This allows all end users' systems to be centrally managed and software deployed on a central server location as opposed to installed on each individual system.
Thin clients are really best-suited to environments in which the same information is going to be accessed by the clients, making it a better solution for public environments. For this reason, thin clients are often deployed in hotels and airports, where installing software to all systems wouldn't make sense. It would be a massive headache for IT to both deploy and maintain.

When using thin clients, compared to a feature-rich desktop PCs today, they often tend to look a bit primitive and outdated. Since many thin clients run on very little hardware, it is impossible to incorporate rich graphical user interfaces. To use the client, an input device (keyboard) and viewing device (display) is usually the basic requirements. Some may not even require a mouse.

In contrast, a thick client will provide users with more features, graphics and choices making the applications more customizable. Unlike thin clients, thick clients do not rely on a central processing server because the processing is done locally on the user system, and the server is accessed primarily for storage purposes. For that reason, thick clients often are not well-suited for public environments. To maintain a thick client, IT needs to maintain all systems for software deployment and upgrades, rather than just maintaining the applications on the server.  Additionally, thick clients often require operating specific applications, again posing more work and limitations for deployment. The trade-off is a more robust and local computing environment.


http://www.webopedia.com/DidYouKnow/Hardware_Software/2006/thin_client_applications.as




Database Products

  • sqlite db
SQLite is a software library that implements a self-contained, zero-configuration, transactional SQL database engine.
http://www.sqlite.org/

  • Borland Interbase
Easy installation, small footprint, automatic crash recovery, self-tuning, Unicode, SMP support, SQL 92 compliance, and near zero maintenance makes InterBase 2007 the ideal database for embedded and business-critical small-to-medium enterprise server applications
http://www.borland.com/fr/products/interbase/index.html

  • MariaDB
MariaDB is a database server that offers drop-in replacement functionality for MySQL. MariaDB is built by some of the original authors of MySQL, with assistance from the broader community of Free and open source software developers
http://mariadb.org/


  • Versant

The Versant Object Oriented Database can be customized for your application architecture and production environment based on the particular requirements.
http://www.versant.com/products/Versant_Database_Engine.aspx