Basic Customization > User Interface Customization > User Interface Technology Overview > Windchill Client Architecture Overview
  
Windchill Client Architecture Overview
* 
Before reading this chapter, you should be familiar with Java, JavaServer Pages (JSP), JavaScript, JavaServer Pages Standard Tag Library (JSTL) and Expression Language (EL).
For more information on JSTL see: http://java.sun.com/products/jsp/jstl/
The Windchill Client Architecture provides a framework for building pages easily and consistently by providing a standard set of components and services that are configurable and customizable. The set of components includes, but is not limited to, a table, a tree, an information page, a wizard, and a dynamic javascript menu. At a lower level, these container components use other common components, called actions, action models and GUI components, to display data inside of them.
The Windchill Client Architecture is Model-View-Controller based. There are two MVC based paths available for use, a Java Builder based approach and a JSP based approach.
A good deal of information about the Model-View-Controller design pattern is available on the web.
For more information about MVC and the Model 2 architecture, see http://www.oracle.com/technetwork/articles/javase/servlets-jsp-140445.html.
Java Builder based
This approach is the recommended way of implementing tables, trees, information pages, and panels of attributes since Windchill release 10.0. When implementing one of these components, the configuration of the component is specified in a ComponentConfigBuilder (java file) and the data acquisition is specified in a ComponentDataBuilder (java file).
For more details about this approach, refer to Java Builders.
JSP and Tags based
This approach was used in previous releases and should only be used for implementing wizards (create/edit) and property panels. Although tables and trees can be implemented with this approach it is not recommended. When implementing one of these components, the configuration of the component and the data acquisition is defined in a tag (from Windchill Components tag library) in a JSP.
For more details about this approach, refer to JSP and Tags.
Please note that at some point in the future, this approach will be deprecated in Windchill.
The future vision is to have all components in the system converted to use the new Java model and controller builders. SeeMVC Components for more information. When creating new customizations use the Java Builders path when possible. Many previous customizations using the Tag and TagLibs path will continue to work.