In the previous installment of this series we completed our Model layer described in the Model-View-Controller (MVC) architecture. In that article we covered the façade (or service) layer:
- EmployeeCRUDFacade: A service layer class to handle data manipulation and data business rules for access by client code that should not work directly with the model layer.
Examples of data manipulation code and data business rule code include:
- Calculate the age of an employee. Your database holds a birthdate, but not an age.
- Calculate the number of years an employee has worked for your company. Your database holds a hire date but not a length of time.
- Calculate the number of approvals required for a time off request that exceeds a certain number of hours.
Examples of client code that should never access the model directly include:
- Workflow processing code.
- External system integration code.
- UI code (a managed bean…covered in this article).
It may appear on the initial design of an application that this layer is just adding extra code. In other words, why not just let my view bean access the DAO? Continue reading
In the previous installment of this series we introduced the idea of using standard Java development patterns for implementing your XPages project. The best practice of implementing the Model-View-Controller (MVC) architecture was described. To recap, the layers of MVC consist of:
Model: These are your Java objects that contain and manipulate the data from the database and implement business rules for managing that data
View: These are your presentation Java objects. Mostly (exceptions aside) these tends to be a one-to-one relationship between an XPage (graphical view) and a related view Bean.
Controller: This middle layer is the JSF API. No code is written here by the developer of JSF applications (including XPages). This is the FacesServlet.
In this multi-part series I am going to explore IBM Notes & Domino XPage development as a traditional Java based web application development framework, instead of the form & document model originally introduced in Lotus Notes. Over the series of articles, I will cover high level concepts, such as the underlying JavaServer Faces technology, and work my way through Java development for XPages with advanced concepts and sample code.
In this first article I am going to explore XPage as a Java web application framework, some core concepts for implementing it with Java, and how it will change the way you design your Domino data (for the better). There won’t be example code or advanced technique discussions for accessing information, this time around. Continue reading