SlideShare una empresa de Scribd logo
1 de 51
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

SharePoint Development 101
SharePoint Development 101SharePoint Development 101
SharePoint Development 101
Greg Hurlman
 

La actualidad más candente (20)

AD1542 Get Hands On With Bluemix
AD1542 Get Hands On With BluemixAD1542 Get Hands On With Bluemix
AD1542 Get Hands On With Bluemix
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications
 
An Introduction to Web Components
An Introduction to Web ComponentsAn Introduction to Web Components
An Introduction to Web Components
 
XPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 WebinarXPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 Webinar
 
SharePoint Development 101
SharePoint Development 101SharePoint Development 101
SharePoint Development 101
 
Connect 2014 - EXTJS in XPages: Modernizing IBM Notes Views Without Sacrifici...
Connect 2014 - EXTJS in XPages: Modernizing IBM Notes Views Without Sacrifici...Connect 2014 - EXTJS in XPages: Modernizing IBM Notes Views Without Sacrifici...
Connect 2014 - EXTJS in XPages: Modernizing IBM Notes Views Without Sacrifici...
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
 
Naked and afraid Offline Mobile
Naked and afraid Offline MobileNaked and afraid Offline Mobile
Naked and afraid Offline Mobile
 
MWLUG - Universal Java
MWLUG  -  Universal JavaMWLUG  -  Universal Java
MWLUG - Universal Java
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
 
Your Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web ComponentsYour Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web Components
 
Introduction to Development for the Internet
Introduction to Development for the InternetIntroduction to Development for the Internet
Introduction to Development for the Internet
 
How adding a further tool can be a good thing
How adding a further tool can be a good thingHow adding a further tool can be a good thing
How adding a further tool can be a good thing
 
Untangling - fall2017 - week 8
Untangling - fall2017 - week 8Untangling - fall2017 - week 8
Untangling - fall2017 - week 8
 
SmartNSF - 100% Smart - and in Color!
SmartNSF - 100% Smart - and in Color!SmartNSF - 100% Smart - and in Color!
SmartNSF - 100% Smart - and in Color!
 
Untangling spring week6
Untangling spring week6Untangling spring week6
Untangling spring week6
 
WordPress as a Service
WordPress as a ServiceWordPress as a Service
WordPress as a Service
 
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
 
[Delimon] Unraveling Teams vs Skype for Business
[Delimon] Unraveling Teams vs Skype for Business[Delimon] Unraveling Teams vs Skype for Business
[Delimon] Unraveling Teams vs Skype for Business
 
SharePoint Framework 101 (SPFx)
SharePoint Framework 101 (SPFx)SharePoint Framework 101 (SPFx)
SharePoint Framework 101 (SPFx)
 

Destacado

Aveedo - Your application framework
Aveedo - Your application frameworkAveedo - Your application framework
Aveedo - Your application framework
We4IT Group
 
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
Bruce Elgort
 

Destacado (20)

OpenNTF Domino API - Overview Introduction
OpenNTF Domino API - Overview IntroductionOpenNTF Domino API - Overview Introduction
OpenNTF Domino API - Overview Introduction
 
Speed up your XPages Application performance
Speed up your XPages Application performanceSpeed up your XPages Application performance
Speed up your XPages Application performance
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Aveedo - Your application framework
Aveedo - Your application frameworkAveedo - Your application framework
Aveedo - Your application framework
 
How to share a File using IBM Connections.Cloud
How to share a File using IBM Connections.CloudHow to share a File using IBM Connections.Cloud
How to share a File using IBM Connections.Cloud
 
How to upload a file to an IBM Connections.Cloud Community using the Plugins ...
How to upload a file to an IBM Connections.Cloud Community using the Plugins ...How to upload a file to an IBM Connections.Cloud Community using the Plugins ...
How to upload a file to an IBM Connections.Cloud Community using the Plugins ...
 
Show110 | Using the XPages Extension Library for the Real World
Show110 | Using the XPages Extension Library for the Real WorldShow110 | Using the XPages Extension Library for the Real World
Show110 | Using the XPages Extension Library for the Real World
 
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTFIBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
 
BP110: The Mobile Distruption - Why XPages Development is targeting Mobile First
BP110: The Mobile Distruption - Why XPages Development is targeting Mobile FirstBP110: The Mobile Distruption - Why XPages Development is targeting Mobile First
BP110: The Mobile Distruption - Why XPages Development is targeting Mobile First
 
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
 
XPages and Java (DanNotes 50th conference, November 2013)
XPages and Java (DanNotes 50th conference, November 2013)XPages and Java (DanNotes 50th conference, November 2013)
XPages and Java (DanNotes 50th conference, November 2013)
 
Bootstrap4XPages webinar
Bootstrap4XPages webinarBootstrap4XPages webinar
Bootstrap4XPages webinar
 
Java for XPages Development
Java for XPages DevelopmentJava for XPages Development
Java for XPages Development
 
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
 
xe:objectData
xe:objectDataxe:objectData
xe:objectData
 
IBM Domino Designer: Tips and tricks for maximum productivity
IBM Domino Designer: Tips and tricks for maximum productivityIBM Domino Designer: Tips and tricks for maximum productivity
IBM Domino Designer: Tips and tricks for maximum productivity
 
Connect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneConnect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast Lane
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational Controls
 
XPages Workshop: Concepts And Exercises
XPages Workshop:   Concepts And ExercisesXPages Workshop:   Concepts And Exercises
XPages Workshop: Concepts And Exercises
 
Angular.js in XPages
Angular.js in XPagesAngular.js in XPages
Angular.js in XPages
 

Similar a Optimus XPages: An Explosion of Techniques and Best Practices

Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
SPTechCon
 

Similar a Optimus XPages: An Explosion of Techniques and Best Practices (20)

Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014
 
AD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension LibraryAD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension Library
 
Everything XControls
Everything XControlsEverything XControls
Everything XControls
 
Building high performance and scalable share point applications
Building high performance and scalable share point applicationsBuilding high performance and scalable share point applications
Building high performance and scalable share point applications
 
(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies
 
ALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the CloudALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the Cloud
 
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
 
Sai_Resume
Sai_ResumeSai_Resume
Sai_Resume
 
Anupam chaturvedi resume latest
Anupam chaturvedi resume  latestAnupam chaturvedi resume  latest
Anupam chaturvedi resume latest
 
Transformations: Smart Application Migration to XPages
Transformations: Smart Application Migration to XPagesTransformations: Smart Application Migration to XPages
Transformations: Smart Application Migration to XPages
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From Production
 
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
 
Keeping Pace with Product Evolution - UI Automation Framework Guidelines
Keeping Pace with Product Evolution - UI Automation Framework GuidelinesKeeping Pace with Product Evolution - UI Automation Framework Guidelines
Keeping Pace with Product Evolution - UI Automation Framework Guidelines
 
How to build a JavaScript toolkit
How to build a JavaScript toolkitHow to build a JavaScript toolkit
How to build a JavaScript toolkit
 
Angular JS - Introduction
Angular JS - IntroductionAngular JS - Introduction
Angular JS - Introduction
 
Ahmedabad Salesforce Meetup
Ahmedabad Salesforce MeetupAhmedabad Salesforce Meetup
Ahmedabad Salesforce Meetup
 
Browser-Based Load Testing with Grafana K6
Browser-Based Load Testing with Grafana K6Browser-Based Load Testing with Grafana K6
Browser-Based Load Testing with Grafana K6
 
Cloud Based Cognitive Learning & IT Project Performance Platform (CLIPP Platf...
Cloud Based Cognitive Learning & IT Project Performance Platform (CLIPP Platf...Cloud Based Cognitive Learning & IT Project Performance Platform (CLIPP Platf...
Cloud Based Cognitive Learning & IT Project Performance Platform (CLIPP Platf...
 
Rapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackRapid Application Development with MEAN Stack
Rapid Application Development with MEAN Stack
 
Introduction to the web engineering Process.pdf
Introduction to the web engineering Process.pdfIntroduction to the web engineering Process.pdf
Introduction to the web engineering Process.pdf
 

Más de Teamstudio

Wireless Wednesdays: Introduction to XControls
Wireless Wednesdays: Introduction to XControlsWireless Wednesdays: Introduction to XControls
Wireless Wednesdays: Introduction to XControls
Teamstudio
 

Más de Teamstudio (20)

Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Search Terms and Design Complexity: A Tutorial Before Modernizing or MigratingSearch Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
 
Back from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerBack from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good Server
 
Understand Usage with Detailed Access Information
Understand Usage with Detailed Access InformationUnderstand Usage with Detailed Access Information
Understand Usage with Detailed Access Information
 
Marty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth DimensionallyMarty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth Dimensionally
 
IBM Presents the IBM Notes and Domino Roadmap
IBM Presents the IBM Notes and Domino RoadmapIBM Presents the IBM Notes and Domino Roadmap
IBM Presents the IBM Notes and Domino Roadmap
 
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
 
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
 
Getting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APIGetting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino API
 
Understand the True Business Usage of Notes Applications with Usage Auditor
Understand the True Business Usage of Notes Applications with Usage AuditorUnderstand the True Business Usage of Notes Applications with Usage Auditor
Understand the True Business Usage of Notes Applications with Usage Auditor
 
An Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller PatternAn Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller Pattern
 
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
 
Domino, Notes, and Verse - Where are We and Whats the Future?
Domino, Notes, and Verse - Where are We and Whats the Future?Domino, Notes, and Verse - Where are We and Whats the Future?
Domino, Notes, and Verse - Where are We and Whats the Future?
 
App.Next - The Future of Domino Application Development
App.Next - The Future of Domino Application DevelopmentApp.Next - The Future of Domino Application Development
App.Next - The Future of Domino Application Development
 
Presenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View ControlPresenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View Control
 
A Notes Developer's Journey into Java
A Notes Developer's Journey into JavaA Notes Developer's Journey into Java
A Notes Developer's Journey into Java
 
Mobilize Your Business, Not Just an App
Mobilize Your Business, Not Just an AppMobilize Your Business, Not Just an App
Mobilize Your Business, Not Just an App
 
Tips for Building your First XPages Java Application
Tips for Building your First XPages Java ApplicationTips for Building your First XPages Java Application
Tips for Building your First XPages Java Application
 
Wireless Wednesdays: Introduction to XControls
Wireless Wednesdays: Introduction to XControlsWireless Wednesdays: Introduction to XControls
Wireless Wednesdays: Introduction to XControls
 
The XPages Mobile Controls: What's New in Notes 9.0.1
The XPages Mobile Controls: What's New in Notes 9.0.1The XPages Mobile Controls: What's New in Notes 9.0.1
The XPages Mobile Controls: What's New in Notes 9.0.1
 

Último

Último (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Optimus XPages: An Explosion of Techniques and Best Practices

  • 1. OPTIMUS XPAGES:AN EXPLOSION OF TECHNIQUES AND BEST PRACTICES Mar. 15, 2016
  • 2. Courtney Carter @Teamstudio Howard Greenberg @TLCC Paul Della-Nebbia @PaulDN John Jardin @JohnJardinCodes
  • 3. Asking Questions Use the “Questions” pane to ask questions.  
  • 4. Teamstudio provides products that help organizations with customized business applications implement best practices, work more efficiently, and prepare for the future. AboutTeamstudio
  • 5. Develop and manage your Notes applications faster, better, and more easily.
  • 6. Reveal true business usage with Usage Auditor. http://www.teamstudio.com/solutions/notestools/usage-auditor
  • 7. OPTIMUS XPAGES:AN EXPLOSION OF TECHNIQUES AND BEST PRACTICES
  • 8. 1 #XPages Your Hosts Today: Howard Greenberg TLCC @TLCCLtd Optimus XPages Paul Della-Nebbia TLCC @PaulDN
  • 9. 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
  • 10. 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
  • 11. 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
  • 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
  • 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)
  • 17. Agenda • Overview • Application Architecture • User Experience • Optimization • Closing
  • 19. “A developer in today’s world needs to look both ways before crossing a one- way street.” - Doug Linder
  • 20. 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
  • 22. Application Architecture • Single Page Application  One entry point to your Application • One URL  One XPage. Many custom controls
  • 23. 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
  • 24. 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
  • 26. 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
  • 27. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 34. 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
  • 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 • XAgents cont.  Example XPage acting as an XAgent:
  • 37. Application Architecture • XAgents cont.  Example scheduled Java agent executing XAgent:
  • 39. 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
  • 40. 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
  • 43. “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
  • 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 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
  • 48. 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/
  • 49. 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
  • 50. 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
  • 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