Are you starting a new XPages project, but not sure it’s going to be done right the first time? Do you have an existing application that doesn’t seem to have that “X” Factor? In this webinar, John Jardin demonstrates how XPages developers can apply proven techniques and best practices to take their applications to a game-changing level.
You'll learn how to:
-Rapidly develop responsive applications,
-Improve user experience and response times with background and multi-threaded operations,
-Keep your XPages lightweight with code injection,
-Create scheduled tasks the XPages way,
-And much more.
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
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
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)
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
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
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