| Objective |
An in-depth study of Enterprise Objects Framework (EOF) to enable the development of complex WebObjects applications incorporating sophisticated database access. |
| Audience |
Experienced WebObjects programmers. |
| Description |
WebObjects Development (II) covers the following topics:
- Advanced EOModels and custom enterprise classes
- Inserts, updates, deletes, transactions, and locking
- Validation and exceptions
- Advanced relationship modeling and faulting
- Primary key generation
- Modeling entity inheritance
- EOF architecture including the adaptor and database levels including delegation and notification
- Raw rows, SQL and stored procedures
- Multiple editing context designs
- Java Client
The class combines lectures, demonstrations, and individual exercises and is based on WebObjects Version 5. |
| Prerequisites |
WebObjects Development (I) or similar level of experience, and some practical experience of WO programming is required. Knowledge of relational database concepts and experience with Entity-Relationship modeling is recommended. |
| Duration |
Five days. |
| WEBOBJECTS FRAMEWORK |
Review the interaction between web browsers, web servers, and web applications; define the parts of a web component.
|
| LAB: BASIC WEB APPLICATION |
Create a simple multi-component web application; accept information from the user; navigate between components.
|
| INTRODUCTION TO ENTERPRISE OBJECTS |
Define an Enterprise Object; review the architecture of the Enterprise Objects Framework; review the use of EOModeler to create a simple application; discuss database-to-object mappings using EOModeler, including entities, attributes, and relationships.
|
| LAB: MODELING |
Create a complex model and schema for an application using EOModeler; define relationships between entities in a database.
|
| FETCHING |
Discuss how to create and use fetch specifications, qualifiers, and sort orderings.
|
LAB: FETCH SPECIFICATION
|
Create fetch specifications.
|
| UPDATING ENTERPRISE OBJECTS |
Understand how to create, delete, and change enterprise objects; discuss how these changes are stored in a database.
|
| LAB: CREATING ENTERPRISE OBJECTS |
Create an enterprise object using EOModeler that enables the user to change data in the database.
|
| RELATIONSHIPS |
Discuss the different types of relationships; define many-to-many relationships; discuss how to handle them using flattened relationships.
|
| LAB: MANY-TO-MANY RELATIONSHIPS |
Display and edit a many-to-many relationship in an application.
|
| VALIDATION |
Discuss how to add validation to business objects to ensure data integrity; review the handling of user violation of validity constraints.
|
| LAB: VALIDATION |
Add validation to an application and test the results when constraints are violated.
|
| DELEGATION |
Use delegation to extend the behavior of a framework.
|
| LAB: DELEGATION |
Create a controller object; make the object a delegate; extend the controller object to handle the delegated task.
|
| ACCESS LAYER |
Review architecture of the Enterprise Objects Framework; understand the classes of the adaptor layer; determine when to use the adaptor layer to improve performance of an application; review the use of the database layer in an application; discuss how to fetch with an editing context programmatically.
|
| LAB: FETCHING DATA |
Use the adaptor layer to connect to the database and fetch data from the command line.
|
| FAULTS |
Review the role of faults in an application; describe how default faulting behavior can be altered to improve performance.
|
| LAB: FAULTS |
Use batch faulting and prefetching of relationships in an application.
|
| PRIMARY KEYS |
Discuss how primary keys are generated, including using sequences, stored procedures, and custom processes; discuss preferred ways of generating primary keys.
|
| LAB: PRIMARY KEYS |
Add customized primary key generation to an application.
|
| UPDATE STRATEGY |
Discuss various update strategies available in the Enterprise Objects Framework, including optimistic and pessimistic locking.
|
| LAB: UPDATES |
Explicitly set the update strategy for an application; change the strategy and create conflicts.
|
| EDITING CONTEXT |
Review the control layer of the Enterprise Objects Framework; understand how it tracks changes to business objects and saves the changes to the database.
|
| LAB: USER EDITING |
Nest editing contexts in an application.
|
| WEBOBJECTS DEPLOYMENT |
Discuss issues regarding the deployment of WebObjects applications; review the tools available to optimize performance.
|
| INHERITANCE |
Discuss the three different types of inheritance in the Enterprise Objects Framework and how they are used.
|
| LAB: SUBCLASSING |
Create a business model that includes inheritance and use it in an application.
|