Table of Contents
This chapter provides an introduction to software development with IT Mill Toolkit, including installation of the Toolkit, the Eclipse development environment, and any other necessary or useful utilities. We look into the design philosophy behind the Toolkit and at the changes in IT Mill Toolkit Release 5.
The core piece of IT Mill Toolkit is the Java library that is designed to make creation and maintenance of high quality web-based user interfaces easy. The key idea is that the Toolkit allows you to forget the web and lets you program user interfaces much like you would program any Java desktop application with conventional toolkits such as AWT, Swing, or SWT. But easier.
While traditional web programming is a fun way to spend your time learning new web technologies and debugging them, you probably want to be productive and concentrate on the application logic. The library takes care of user interface rendering in the browser and AJAX communications between the browser and the server. With Toolkit's approach, you do not need to learn and debug browser technologies, such as HTML or JavaScript.
Figure 1.1, “General Architecture of IT Mill Toolkit” illustrates the basic architecture of web applications made with IT Mill Toolkit. The Toolkit consists of the server-side framework and a client-side engine that runs in the browser as a JavaScript program, rendering the user interface and delivering user interaction to the server. As the application runs as a persistent Java Servlet session in an application server, you can easily bind to data or logic tiers.
Because HTML, JavaScript, and other browser technologies are essentially invisible to the application logic, you can think of the web browser as only a thin client platform. A thin client displays the user interface and communicates user events to the server at a low level. The control logic of the user interface runs on a Java-based web server, together with your business logic. By contrast, a normal client-server architecture with a dedicated client application would include a lot of application specific communications between the client and the server. Essentially removing the user interface tier from the application architecture makes our approach a very effective one.
IT Mill Toolkit makes the best use of AJAX (Asynchronous JavaScript and XML) techniques that enable the creation of web applications as responsive and interactive as desktop applications. If you're a newcomer to AJAX, see Section 3.2.1, “AJAX” to find out what it really is.
Hidden well under the hood, IT Mill Toolkit uses GWT, the Google Web Toolkit, for rendering the user interface in the browser. GWT programs are written in Java, but compiled into JavaScript, thus freeing the developer from learning JavaScript and other browser technologies. GWT is ideal for implementing advanced user interface components (or widgets in GWT terminology) and interaction logic in the browser, while IT Mill Toolkit handles the actual application logic in the server. IT Mill Toolkit is designed to be extensible, and you can indeed use any 3rd-party GWT components easily, in addition to the component repertoire offered in IT Mill Toolkit. The use of GWT also means that all the code you need to write is pure Java.

The Toolkit library defines a clear separation between user interface presentation and logic and allows you to develop them separately. Our approach to this is themes, which dictate the visual appearance of applications. Themes control the appearance of the user interfaces using CSS and (optional) HTML page templates. As the Toolkit provides excellent default themes, you do not usually need to make much customization, but you can if you need to. For more about themes, see Chapter 7, Themes.
We hope that this is enough about the basic architecture and features of IT Mill Toolkit for now. You can read more about it later in Chapter 3, Architecture, or jump straight to more practical things in Chapter 4, Writing a Web Application.