v2.12.0


Moulding the Software Brick for true Inversion of Control


Wire together a working prototype in minutes
Extend the prototype to a working web site in hours
Deploy and run anywhere
Self documenting to make support easier

Install Tutorials

Example OfficeFloor Graphical Configuration

OfficeFloor is freely distributed under GPL and the source is available here.

True Inversion of Control = Dependency Injection + Thread Injection + Continuation Injection

Four steps to build a OfficeFloor web application

OfficeFloor Step One

Write some HTML


OfficeFloor dynamic web pages only require the following 3 non-obtrusive tags:

  • ${bean ... $} , ${property} : allows dynamic content from POJOs (plain old Java objects) to be rendered on the web page
  • #{link} : allows indirection of web page links to enable graphical configuration of the web site navigation
  • <!-- {section} --> : segments the web page into functions


The reason for using non-obtrusive tags in the OfficeFloor web pages is to allow using WYSIWYG web design tools (e.g. Web Tools Platform, DreamWeaver, KompoZer) to create and edit the web pages.

Also reviewers can open the raw web pages in any web browser. This makes for faster feedback loops with the Web Designer enabling the right look and feel for the web application.

OfficeFloor Step Two.

Write some methods


The application logic is written with POJOs (plain old Java objects) but with a slightly different focus to many dependency injection frameworks. OfficeFloor injects the dependency as a parameter into the method rather than into the object. This difference is key to OfficeFloor's simplicity yet power!



Dependency injection into methods is fundamental to True Inversion of Control as methods are the natural building blocks for managed code. The JEE API's highlight this:

  • Servlet has the service(...) method
  • JMS has the onMessage(...) method
  • Session Beans contain methods run within a context

OfficeFloor focuses on the method and its Dependency Injection and the invoking thread (Thread Injection).

OfficeFloor Step Three.

Draw some lines


The web pages and POJO methods are connected together via OfficeFloor's function orchestration providing a cohesive web application.



OfficeFloor's function orchestration is configured graphically which improves application development by:

  • providing a visual representation that all stakeholders can use to understand and review the application
  • making OfficeFloor web applications self documenting, which is great for Agile and Support teams
  • simplifying application changes

No additional coding/configuration is required for function orchestration, as OfficeFloor is built from the ground up with Continuation Injection, allowing development teams to focus on the web pages and POJOs.

OfficeFloor Step Four.

You're ready to go


The run anywhere flexibility provided by OfficeFloor's true inversion of control fundamentals means that web applications built with OfficeFloor can be deployed anywhere, including:

  • on the developer's workstation
  • as a stand-alone web application
  • within an existing JEE Application Server
  • by a Cloud Computing provider


The build once run anywhere capability of OfficeFloor provides flexibility to make the best deployment decisions for the web application - both now and in the future.

Eclipse

Install the Eclipse Plug-in and try out OfficeFloor

Tutorials

Check out the tutorials covering various features of OfficeFloor

Mission

Read the mission statement of the OfficeFloor team and get involved

Blog

Get the latest information regarding OfficeFloor

Help

Get help in using Officefloor

Copyright © 2005-2013. All Rights Reserved.