What is Context Framework?

Current version: 0.8.5

Context framework is a flexible and powerful component based web application framework for Java and Scala and it offers a unique and fun experience to web development. Context suites perfectly from small web sites to massive web applications.

Key points

Component-based

Everything is made of components, even pages themselves.

Page components can be created, removed and repositioned at will, there are no restrictions.

Stateful

All pages are transparently stateful, information can be stored in server to components during page lifecycle with ease.

No session or cookies are needed.

Cloudable

With Cloudability-support it is possible to create applications that scale as stateless applications in clustered environment.

Full page loads

When page is loaded everything is initialized. There is no need for lazy initalizations, unless wanted.

This means pages are fully searchable by search engines.

Full ajax

Page interaction is done through javascript and ajax.

Create complex and flexible user interaction with ease.

Pretty URLs

You can create any kind of URL scheme for your site.

Context does not encode anything to URLs. They are free from clutter.

Embeddable

Have an existing site, which needs some fancy components here and there?

Use the embedded mode and add functionality to any site.

Live class reloading

Compile - restart - compile - restart ...

With live class reloading the needs for application restarts are minimized.

Modifiability

Context contains only a few hard coded mechanisms that must behave exactly as designed. But for the most of the application, Context is able to bend to you needs.

You can stop fighting against the framework and make it work with you instead.

Flexibility

Context can be used in lightweight mode where the emphasis is on Javascript and HTML or in more heavier mode where emphasis is on more Java than Javascript.

The choice is yours.

Separation of layers

Many other frameworks mix Java, Javascript and HTML together. Context however creates a sharp layers between different technologies.

Create teams that can truly be separated to frontend and backend if needed.

Security

The component model of Context creates a natural security perimeter to pages and interaction.

In most cases technologies such Spring security or Shiro are unneeded.

Guice

Guice is a perfect match to deliver dependency injection.

This allows Context to concentrate on creating awesome web framework and leaves the rest to Guice.

Delayed requests

With Comet/Server-push capable web container you are able to delay requests and create components that are able to respond immediately to actions.

XML and XSL

Components are trasformed into DOM-tree during rendering and is transformed to XHTML with XSL.

You can inject own documents straight to he page and transform them too. Possibilities are endless.

Components as resources

JSON and other formats, as images, can be fetched from components as resources.

No need to create separate servlets or access points. Components themselves are enough.

Mockability

You are able to create mockups of pages and components even if there is no backend support. Even mocked interaction is possible.

Do cross-browser testing, finetune css or present new ideas to customers quickly.

Scala-friendly

Even though Context is Java-based it has proven to be extremely Scala friendly.

XSS-free

No need to worry about XSS-exploits. Everything is automatically encoded and safe.

Where to start?

First, I recommend that you watch a screencast which will show the basics of Context. Then you should try to make you own Context application by using the Quickstart-tutorial.

I also recommend to check Quick reference because it contains all common relevant information, mostly with examples. Also, if you have any questions simply contact me and I'm happy to answer any question.

Tweet