Basic Customization > Windchill Customization Basics > Customization Overview > Customizations
  
Customizations
Windchill is an open system that is fully supports customizations at the schema, server, and UI levels. An extensive set of APIs are published, documented, and supported to enable these customizations. But as stated above, in order to reduce the cost of ownership, if changing other mechanisms such as properties or preferences satisfy the business need, then customizations should not be used.
Data Model Customizations
Windchill Information Modeler is one of the Windchill development components that can be used to customize your Windchill environment. Information Modeler contains the Windchill modeling files and source code that you will use to develop your customizations. Custom Java Annotations are used to model business objects. Windchill then uses this model to generate code that is used in server and client development.
Information Modeler provides the most powerful capabilities for creating custom business objects and relationships in Windchill systems, but requires greater development skills and is less flexible than using subtypes. For example, subtypes can be added and changed by an administrator while the system is running, but model changes must be made by a skilled Java developer during strictly managed checkpoints. On the other hand, modeled objects can be created by assembling specific collections of Windchill plug-and-play interfaces to create unique server behavior but subtypes can only be created as super types of existing modeled classes with additional attributes.
For more information on Java Annotations, see Modeling Business Objects.
Service Customizations
Windchill supported server-side customizations to enable certain business processes or enforce business constrained. Any kind of customization can be performed. The most common types of customizations falls into one of the following categories:
Process form data submitted through the user interface
Validate data - (e.g. Do not allow the user to enter a Need Date for a Change Request that is more than 30 days into the future)
Implement service listeners - (e.g. Create a listener that waits for any data to be checked in and populate an MRP system with appropriate data)
Get/Put data in an external systems - (e.g. when the user navigates to a part’s details, get the cost of the part from the ERP system and display it in the same UI)
User Interface Customizations
The Windchill Client Architecture is a Windchill-aware JSP framework. It provides very high-level building blocks known as common components which make Windchill UI development a very efficient process done with ease.
Javadoc and learn-by-example documentation is available to reduce the learning curve and increase developer productivity.
For more information on user interface customizations, see Generic UI Customizations.