1. XEO
An open source web
development framework
By Pedro Rio
www.xeoframework.org
2. Agenda
A little background
Consulting Firm – based in Portugal 2002
Enterprise Web Applications
Enterprise means...
Business Objects
Business Rules Permissions
Our Own Platform
Calculation Rules
Validation Rules Selection, Filtering, Sorting
+
Interface
Form Validation Messages
2 11/8/2011
3. Agenda
Architecture overview
RUNTIME ARCHITECTURE DEVELOPER ARCHITECTURE
XEO CLIENT CONTROLLER
XEO Modules
LAYER
XWC (XEO WEB
COMPONENTS)
XEO CORE SYSTEM
XEO QL Java API
. BUSINESS OBJECT DEFINITIONS
. JAVA FILES
Permission Layer . XWC VIEWERS
. OTHERS (e.g. Lovs)
Business Objects XEO Builder
XEO – DATA LAYER
3 11/8/2011
4. Agenda
Business Objects
Business Object Definition
Attributes
Attribute Logic
Required
Valid
Disabled
Formula (etc...)
Events
Methods
Events
Permissions
4 11/8/2011
5. Agenda
And more?
API Query Language Permissions
Create an instance of a Model
boObject obj = boManagerBean.createObject(Context,“Book”);
Set/Get Attribute Values
obj.getAttribute(“title”).getValueString();
obj.getAttribute(“edition”).setValueLong(2);
Update/Delete Behavior
obj.update(); obj.getAttribute(“title”).isRequired()
obj.destroy();
Transactional Support
Query and retrieve lists of results
(pages!)
5 11/8/2011
6. Agenda
And more?
API Query Language Permissions
Select all instances of a Model
“select Book”
Select a single book
“select Book where BOUI = ?”
Select with restrictions
“select Book where title = „The Da Vinci Code‟
and author.name = „Dan Brown‟”
Select all Authors that edited a book
“select Book.author”
6 11/8/2011
7. Agenda
And more?
API Query Language Permissions
Built-in Users, Groups and Profiles
Instance-Level (OPL) Model-Level (Policies)
Design Time Runtime
owner (Represents a user/
+ group) Read Permission
Attribute “budget” +
OPL – Delete Permission (owner)
Managers
Group
Only the user/group that‟s linked
through the owner attribute, can delete
Projects Model
the instance. Unless... Full Control
(runtime) You get a permission rule that
only users of group “Managers”
can read attribute “budget” in
instances of “Project”.
7 11/8/2011
8. Agenda
Web Interface
“JSF-like” Component-based approach
Form
Tab Backing
Bean
Grid
XEO Viewer
Control Component
Behavior
Component Behavior Renderer
XEO Runtime
Integration!
+ Ajax
Model Component
Definition Behavior
8 11/8/2011
10. Agenda
XEO Web Components
public class DemoBean extends XEOBaseBean {
public DataListConnector getDataSource(){
return new
XEOObjectListConnector(
boObjectList.list(getEboContext(), "select Ebo_Perf")
);
}
}
10 11/8/2011
11. Agenda
XEO Web Components
public class DemoBean extends XEOBaseBean {
public DataListConnector getDataSource(){
return new
XEOObjectListConnector(
boObjectList.list(getEboContext(), "select Ebo_Perf")
);
}
}
11 11/8/2011
15. Agenda
Demo Model
Speaker IndividualEvaluation
Name
Name
Evaluation (List of Values)
TalkEvaluation
Name
Speaker
Date
Evaluations
15 11/8/2011
16. Agenda
Demo Model
IndividualEvaluation
Name
Speaker Date (Default Value = Today, Disabled)
Evaluation (List of Values)
Name
TalkEvalExtended
Name (Required, 5+ chars)
Description
Speaker
Atendance (DefaultValue = 100)
Date (Default Value = Today)
Average
Evaluations
CalculateAverage()
16 11/8/2011