Why is Eclipse particularly suited to building rich client applications? To answer that, let's look at the history of rich and thin clients and observe how the characteristics of Eclipse maintain the benefits and address the pitfalls of past approaches. Those characteristics are summarized below:
Components Eclipse includes a robust component model. Eclipse-based systems are built by composing components known as plug-ins. Plug-ins are versioned and can be shared by more than one application. Multiple versions of the same plug-in can be installed side-by-side and applications can be configured to run with the exact versions they need. This approach is attractive as it allows applications to evolve over time by adding and replacing components.
Middleware and infrastructure On top of this component model is a set of frameworks and facilities that makes the job of writing client applications much easier. The Eclipse RCP is essentially the middleware function that you don't want to write because it is a means, not an end, in your domain. It includes facilities such as a flexible UI paradigm, scalable UIs, extensible applications, help support, context-sensitive help, network updates, error handling, and much more.
Native user experience In contrast to what is provided by thin clients, many users want a rich, comfortable, and native user experience. This includes a smooth, responsive UI that integrates into the desktop. The Eclipse Standard Widget Toolkit (SWT) provides a graphical user interface (GUI) toolkit for Java that allows efficient and portable access to the native UI facilities of the OS.
Portability Thin clients have the advantage of running everywhere. Eclipse provides support for heterogeneous OSs and client environments, ranging from servers to traditional PCs, to thinner devices such as tablets and kiosks, down to mobile and embedded devices such as PDAs and smartphones. As long as you can find a Java virtual machine (JVM) with the J2ME™ Foundation libraries or greater (e.g., J2SE™ 1.4), then you can run your application. Chapter 23, "RCP Everywhere," talks about how to use Eclipse to design applications that essentially run everywhere.
Intelligent install and update Controlling the costs associated with deploying and maintaining rich client applications was a problem in the early days. Eclipse's component framework enables plug-ins to be deployed and updated using any number of mechanisms: HTTP, Java Web Start, Update sites, simple file copying, or sophisticated enterprise management systems. Chapter 25, "The Last Mile," details the task of getting your Eclipse RCP applications to your users.
Disconnected operation Because rich client applications run on a local machine, they can run standalone without a network connection. This is a major advantage over thin clients. Applications that are inherently disconnected can use local caches, replicas, and store-and-forward mechanisms to accommodate network interruptions.
Development tooling support Developers in the first wave of rich clients enjoyed IDEs that helped them build their applications. Eclipse provides a first-class Java IDE that contains integrated tooling for developing, testing, and packaging rich client applications.
Component libraries A component framework is not complete without a comprehensive set of components with which to build your applications. The Eclipse community has produced plug-ins for building pluggable UIs, managing help content, install and update support, text editing, consoles, product introductions, graphical editing frameworks, modeling frameworks, reporting, data manipulation, and much more. Some of these are discussed in Chapter 27, "Eclipse.org Plug-ins," while Chapter 20, "Integrating Code Libraries," demonstrates how to integrate non-Eclipse code libraries into your applications.
No comments:
Post a Comment