Published on March 16, 2016
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 efﬁciently, 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
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
13. 6 #XPages John Jardin Ukuvuma @JohnJardinCodes Optimus XPages
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. My Alter Ego
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
21. Application Architecture
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
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
28. Application Architecture
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
32. Application Architecture
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:
38. User Experience
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: firstname.lastname@example.org 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? email@example.com 978-712-0924 TLCC Questions? firstname.lastname@example.org email@example.com 888-241-8522 or 561-953-0095 Howard Greenberg Courtney Carter John Jardin Paul Della-Nebbia
... proven techniques and best practices to ... Optimus XPages: An Explosion of Techniques ... how XPages developers can apply proven techniques and ...
In this article are videos to the TLCC webinars I presented called Optimus XPages: An explosion of techniques and best practices
[Webinar] Optimus XPages: An Explosion of Techniques and Best Practices ... how XPages developers can apply proven techniques and best ...
Upcoming XPages Webinar - Optimus XPages: An Explosion of Techniques and Best Practices On March 15th a very interesting webinar will be organized ...
In this webinar, John Jardin continues his series, "Optimus XPages: An Explosion of Techniques and Best Practices,” by providing an end-to-end, deep dive ...
My 2 webinars on Optimus XPages: An explosion of techniques and best practices John Jardin I’m happy to announce that both my webinar ...
On March 15th a very interesting webinar was organized by TLCC and Team Studio, Optimus XPages: An Explosion of Techniques and Best Practices, by John ...
So, to my utter surprise, my second Abstract for IBM Connect 2016 was approved. It’s titled “Optimus XPages: An Explosion of Techniques and Best Practices