OPTIMUS XPAGES:AN EXPLOSION OF
TECHNIQUES AND BEST PRACTICES	

Mar. 15, 2016
Courtney Carter	

@Teamstudio	

Howard Greenberg	

@TLCC	

Paul Della-Nebbia	

@PaulDN	

John Jardin	

@JohnJardinCodes
Asking Questions	

Use the “Questions” pane to ask questions.	
  
Teamstudio provides products that help
organizations with customized business
applications implement best practices, work
more efficiently, and prepare for the future.	

AboutTeamstudio
Develop and manage your Notes applications	

faster, better, and more easily.
Reveal true business usage with Usage Auditor.	

http://www.teamstudio.com/solutions/notestools/usage-auditor
OPTIMUS XPAGES:AN EXPLOSION OF
TECHNIQUES AND BEST PRACTICES
1
#XPages
Your Hosts Today:
Howard Greenberg
TLCC
@TLCCLtd
Optimus XPages
Paul Della-Nebbia
TLCC
@PaulDN
TLCC Courses
• The Leader in Notes and Domino Training since 1997
• Self Paced Distance Learning Courses
– XPages, Development, and Administration
• XPages from basic to advanced
– Two Java courses
– JavaScript course
– XPages 2 course
– Rapid Application Development
• Free demo courses
– Intro. To XPages Development
2
TLCC Application Development Services
3
• Let us help with your development
needs
– Bootstrap
– Java
• Convert Notes Apps to mobile and the
web!
• Modernize old Domino web
applications
• Interface with backend data systems
• Skills transfer
Upcoming and Recorded Webinars
4
www.tlcc.com/xpages-webinar
View Previous Webinars
(use url above)
• April – Getting Started with the Domino API with Paul Withers and
Jesse Gallagher
Asking Questions – Q and A at the end
5
Use the Orange Arrow button to
expand the GoToWebinar panel
Then ask your questions in the
Questions pane!
We will answer your questions
verbally at the end of the
webinar
6
#XPages
John Jardin
Ukuvuma
@JohnJardinCodes
Optimus XPages
Optimus XPages – An Explosion of
Techniques and Best Practices
About John Jardin
• CTO of Ukuvuma Solutions
• Over 14 years development and consulting
• Core Focus
 IBM Domino and XPages
 Web technologies
 Mobile Development
 IBM Bluemix
 Internet of Things
• IBM Champion (2013-2016)
My Alter Ego
Agenda
• Overview
• Application Architecture
• User Experience
• Optimization
• Closing
Overview
“A developer in today’s world needs to
look both ways before crossing a one-
way street.”
- Doug Linder
Overview
• A reality most developers are facing is that businesses are
moving to the Cloud
• This means:
 Applications need to be Cloud ready
 APIs, APIs, APIs
 Modular Services
 Mobile strategy. No exceptions
 Optimized user experience and application performance
Application Architecture
Application Architecture
• Single Page Application
 One entry point to your Application
• One URL
 One XPage. Many custom controls
Application Architecture
• Single Page Application cont.
 Advantages:
• Full page reloading no longer required
• Actions can have as little as one server request
• Request and response data can be measured in bytes
• Core CSS/JS resources are loaded once
Application Architecture
• Single Page Application cont.
 Disadvantages:
• JavaScript dependency
• Optimization is essential
• Knowledge of 3rd party UI libraries a must
• Single entry point to application makes navigating a bit more
complex
Demonstration
Application Architecture
• OpenNTF Domino API
 Extends Domino Object Classes
• Additional methods and properties
• Improved code
 Quick to install and configure
• This also applies to existing XPages applications
 No need to recycle Domino Objects in Java
 Multi-threaded processing
Application Architecture
• Model View Controller Strategy
 Model
• A Java class for each document type
• Define field names as class properties
• Use a constructor to default property values
• Generate getters and setters for each property
Application Architecture
Application Architecture
• Model View Controller Strategy cont.
 View
• XPage or Custom Control
• Should only contain HTML and XML tags where possible
• Styling exists mostly in style sheets
• Logic exists in JavaScript files or Java classes
– i.e. Controllers
Application Architecture
• Model View Controller Strategy cont.
 Controller
• A Java class for each document type
• Manages all logic related to its Model and View
– Validating content
– Saving data
– Fetching data
– Special functions
Application Architecture
• Model View Controller Strategy cont.
 A Controller should exist for each of the following:
• The application as a whole (e.g. Global Controller)
• For the user’s session (e.g. Session Controller)
• For each document type that can be submitted or viewed
• For each primary feature of your application:
– Report Controller
– API Controller
– User Controller
Application Architecture
Demonstration
Application Architecture
• XPages Extension Library
 A plethora of additional controls
 Application Layout for rapid UI design
 Twitter Bootstrap and jQuery enablement
• If enabled, your UI is automatically bootstrapped and responsive
Application Architecture
• XAgents
 A XPage that does not render a user interface but executes logic
and returns data as a result
• Accessed via a URL with optional parameters (aka Web Service)
 Expose your XPages application through APIs
• For mobile apps
• 3rd party platforms and applications
 Run scheduled Java agents that execute XPages logic
Application Architecture
• XAgents cont.
 Example XPage acting as an XAgent:
Application Architecture
• XAgents cont.
 Example scheduled Java agent executing XAgent:
User Experience
User Experience
• Twitter Bootstrap
 HTML, CSS and JavaScript framework for developing responsive
applications
 Intelligent styling that re-adjusts web page based on device’s
form factor
• Laptops/Desktops
• Smartphones
• Tablet devices
 Modern UI controls
 Offered as part of the XPages Extension Library
User Experience
• 3rd Party Libraries
 Animate.css – Provides animations to your XPages controls
 Toastr – Provides non-blocking notifications
 Font Awesome – A collection of vector icons that are easily
customizable:
• Grouping
• Sizing
• Animating
 Sweet Alert – Provides animated alert notifications
Demonstration
Optimization
“A developer achieves perfection not when
there is nothing more to add, but when there’s
nothing more to take away”
- Antoine de Saint-Exupery
Optimization
• Multi-threaded Operations
 Powered by ODA XOTS
 Execution of logic in its own thread that user does not depend on:
• i.e. Asynchronous operations in Java code
 Allows for quicker response times when performing server side
operations
 Especially important for Web Services accessed by mobile apps
Optimization
• Switch and Dynamic Content Controls
 Divide web page into HTML blocks that are rendered/removed
when relevant
 This means:
• Only populate the HTML you need
• Hidden HTML is not rendered to the browser until it’s required
• Less HTML for jQuery/Dojo to work through
• Web page is lightweight
Demonstration
Closing
Closing
• For more information, please check out:
 IBM XPages – www.xpages.info
 OpenNTF – www.openntf.org
 XPages Knowledge Base - wiki.openntf.org
 Animate.css - daneden.github.io/animate.css
 Toastr - github.com/CodeSeven/toastr
 Sweet Alert – t4t5.github.io/sweetalert/
Contact Information
• John Jardin
 Email: john.jardin@ukuvuma.co.za
 Blog: http://johnjardin.ukuvuma.co.za
 Blog: http://www.bleedingcode.com
 Twitter: @JohnJardinCodes
 Skype: john.v.jardin
• Ukuvuma Solutions
 Website: www.ukuvuma.co.za
 Twitter: @ukuvuma
Questions????
7
Use the Orange Arrow button to
expand the GoToWebinar panel
Then ask your questions in the
Questions panel!
Remember, we will answer your
questions verbally
#XPages
@JohnJardinCodes
@TLCCLtd
@Teamstudio
@PaulDN
Upcoming Events:
 Engage, Eindhoven, the Netherlands – Mar. 23 to 24
 EntwicklerCamp, Gelsenkirchen, Germany – April 11 to 13
 ICON US Virtual User Group – May 9 and 10th
 Social Connections, Toronto, Canada – June 6th and 7th
 MWLUG, Austin, TX – August 17 to 19
Question and Answer Time!
8
Teamstudio Questions?
contactus@teamstudio.com
978-712-0924
TLCC Questions?
howardg@tlcc.com paul@tlcc.com
888-241-8522 or 561-953-0095
Howard Greenberg
Courtney Carter
John Jardin Paul Della-Nebbia

Optimus XPages: An Explosion of Techniques and Best Practices

  • 1.
    OPTIMUS XPAGES:AN EXPLOSIONOF TECHNIQUES AND BEST PRACTICES Mar. 15, 2016
  • 2.
    Courtney Carter @Teamstudio Howard Greenberg @TLCC PaulDella-Nebbia @PaulDN John Jardin @JohnJardinCodes
  • 3.
    Asking Questions Use the“Questions” pane to ask questions.  
  • 4.
    Teamstudio provides productsthat help organizations with customized business applications implement best practices, work more efficiently, and prepare for the future. AboutTeamstudio
  • 5.
    Develop and manageyour Notes applications faster, better, and more easily.
  • 6.
    Reveal true businessusage with Usage Auditor. http://www.teamstudio.com/solutions/notestools/usage-auditor
  • 7.
    OPTIMUS XPAGES:AN EXPLOSIONOF TECHNIQUES AND BEST PRACTICES
  • 8.
    1 #XPages Your Hosts Today: HowardGreenberg TLCC @TLCCLtd Optimus XPages Paul Della-Nebbia TLCC @PaulDN
  • 9.
    TLCC Courses • TheLeader in Notes and Domino Training since 1997 • Self Paced Distance Learning Courses – XPages, Development, and Administration • XPages from basic to advanced – Two Java courses – JavaScript course – XPages 2 course – Rapid Application Development • Free demo courses – Intro. To XPages Development 2
  • 10.
    TLCC Application DevelopmentServices 3 • Let us help with your development needs – Bootstrap – Java • Convert Notes Apps to mobile and the web! • Modernize old Domino web applications • Interface with backend data systems • Skills transfer
  • 11.
    Upcoming and RecordedWebinars 4 www.tlcc.com/xpages-webinar View Previous Webinars (use url above) • April – Getting Started with the Domino API with Paul Withers and Jesse Gallagher
  • 12.
    Asking Questions –Q and A at the end 5 Use the Orange Arrow button to expand the GoToWebinar panel Then ask your questions in the Questions pane! We will answer your questions verbally at the end of the webinar
  • 13.
  • 14.
    Optimus XPages –An Explosion of Techniques and Best Practices
  • 15.
    About John Jardin •CTO of Ukuvuma Solutions • Over 14 years development and consulting • Core Focus  IBM Domino and XPages  Web technologies  Mobile Development  IBM Bluemix  Internet of Things • IBM Champion (2013-2016)
  • 16.
  • 17.
    Agenda • Overview • ApplicationArchitecture • User Experience • Optimization • Closing
  • 18.
  • 19.
    “A developer intoday’s world needs to look both ways before crossing a one- way street.” - Doug Linder
  • 20.
    Overview • A realitymost developers are facing is that businesses are moving to the Cloud • This means:  Applications need to be Cloud ready  APIs, APIs, APIs  Modular Services  Mobile strategy. No exceptions  Optimized user experience and application performance
  • 21.
  • 22.
    Application Architecture • SinglePage Application  One entry point to your Application • One URL  One XPage. Many custom controls
  • 23.
    Application Architecture • SinglePage Application cont.  Advantages: • Full page reloading no longer required • Actions can have as little as one server request • Request and response data can be measured in bytes • Core CSS/JS resources are loaded once
  • 24.
    Application Architecture • SinglePage Application cont.  Disadvantages: • JavaScript dependency • Optimization is essential • Knowledge of 3rd party UI libraries a must • Single entry point to application makes navigating a bit more complex
  • 25.
  • 26.
    Application Architecture • OpenNTFDomino API  Extends Domino Object Classes • Additional methods and properties • Improved code  Quick to install and configure • This also applies to existing XPages applications  No need to recycle Domino Objects in Java  Multi-threaded processing
  • 27.
    Application Architecture • ModelView Controller Strategy  Model • A Java class for each document type • Define field names as class properties • Use a constructor to default property values • Generate getters and setters for each property
  • 28.
  • 29.
    Application Architecture • ModelView Controller Strategy cont.  View • XPage or Custom Control • Should only contain HTML and XML tags where possible • Styling exists mostly in style sheets • Logic exists in JavaScript files or Java classes – i.e. Controllers
  • 30.
    Application Architecture • ModelView Controller Strategy cont.  Controller • A Java class for each document type • Manages all logic related to its Model and View – Validating content – Saving data – Fetching data – Special functions
  • 31.
    Application Architecture • ModelView Controller Strategy cont.  A Controller should exist for each of the following: • The application as a whole (e.g. Global Controller) • For the user’s session (e.g. Session Controller) • For each document type that can be submitted or viewed • For each primary feature of your application: – Report Controller – API Controller – User Controller
  • 32.
  • 33.
  • 34.
    Application Architecture • XPagesExtension Library  A plethora of additional controls  Application Layout for rapid UI design  Twitter Bootstrap and jQuery enablement • If enabled, your UI is automatically bootstrapped and responsive
  • 35.
    Application Architecture • XAgents A XPage that does not render a user interface but executes logic and returns data as a result • Accessed via a URL with optional parameters (aka Web Service)  Expose your XPages application through APIs • For mobile apps • 3rd party platforms and applications  Run scheduled Java agents that execute XPages logic
  • 36.
    Application Architecture • XAgentscont.  Example XPage acting as an XAgent:
  • 37.
    Application Architecture • XAgentscont.  Example scheduled Java agent executing XAgent:
  • 38.
  • 39.
    User Experience • TwitterBootstrap  HTML, CSS and JavaScript framework for developing responsive applications  Intelligent styling that re-adjusts web page based on device’s form factor • Laptops/Desktops • Smartphones • Tablet devices  Modern UI controls  Offered as part of the XPages Extension Library
  • 40.
    User Experience • 3rdParty Libraries  Animate.css – Provides animations to your XPages controls  Toastr – Provides non-blocking notifications  Font Awesome – A collection of vector icons that are easily customizable: • Grouping • Sizing • Animating  Sweet Alert – Provides animated alert notifications
  • 41.
  • 42.
  • 43.
    “A developer achievesperfection not when there is nothing more to add, but when there’s nothing more to take away” - Antoine de Saint-Exupery
  • 44.
    Optimization • Multi-threaded Operations Powered by ODA XOTS  Execution of logic in its own thread that user does not depend on: • i.e. Asynchronous operations in Java code  Allows for quicker response times when performing server side operations  Especially important for Web Services accessed by mobile apps
  • 45.
    Optimization • Switch andDynamic Content Controls  Divide web page into HTML blocks that are rendered/removed when relevant  This means: • Only populate the HTML you need • Hidden HTML is not rendered to the browser until it’s required • Less HTML for jQuery/Dojo to work through • Web page is lightweight
  • 46.
  • 47.
  • 48.
    Closing • For moreinformation, please check out:  IBM XPages – www.xpages.info  OpenNTF – www.openntf.org  XPages Knowledge Base - wiki.openntf.org  Animate.css - daneden.github.io/animate.css  Toastr - github.com/CodeSeven/toastr  Sweet Alert – t4t5.github.io/sweetalert/
  • 49.
    Contact Information • JohnJardin  Email: john.jardin@ukuvuma.co.za  Blog: http://johnjardin.ukuvuma.co.za  Blog: http://www.bleedingcode.com  Twitter: @JohnJardinCodes  Skype: john.v.jardin • Ukuvuma Solutions  Website: www.ukuvuma.co.za  Twitter: @ukuvuma
  • 50.
    Questions???? 7 Use the OrangeArrow button to expand the GoToWebinar panel Then ask your questions in the Questions panel! Remember, we will answer your questions verbally
  • 51.
    #XPages @JohnJardinCodes @TLCCLtd @Teamstudio @PaulDN Upcoming Events:  Engage,Eindhoven, the Netherlands – Mar. 23 to 24  EntwicklerCamp, Gelsenkirchen, Germany – April 11 to 13  ICON US Virtual User Group – May 9 and 10th  Social Connections, Toronto, Canada – June 6th and 7th  MWLUG, Austin, TX – August 17 to 19 Question and Answer Time! 8 Teamstudio Questions? contactus@teamstudio.com 978-712-0924 TLCC Questions? howardg@tlcc.com paul@tlcc.com 888-241-8522 or 561-953-0095 Howard Greenberg Courtney Carter John Jardin Paul Della-Nebbia