AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applications to Domino XPages


Published on

Process and strategy to upgrade existing Notes client applications using XPages

Published in: Technology, Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applications to Domino XPages

  1. 1. AD111: The X Path: PracticalGuide to taking your IBMLotus® Notes® Applications toXPagesHunter R. Medney | X-Man | IBMStephan H. Wissel | X-Man | IBM© 2012 IBM Corporation
  2. 2. Agenda■ Introduction■ Conversion Guide (“The X Path”)■ Best Practices■ Tools■ Large #s of Databases 2 | © 2012 IBM Corporation
  3. 3. Typical reasons for doing this■ Web-enable Notes client applications?■ Remove the Notes client?■ Facelift applications?■ Decouple data model from presentation?■ Mobile enable applications?■ Pay technical debt*? * 3 | © 2012 IBM Corporation
  4. 4. Why take your Notes client apps to XPages?■ No data migration ─ Data migration is common point of failure ─ Preserve reader/author field security■ Incremental migration ─ Keep old app while rolling-out new app in phases■ Reuse ─ Code ─ Authentication and authorization■ Skills ─ Notes skills carry-over■ Enterprise-class platform ─ Domino just works! ─ You wouldnt have so many Notes apps if it didnt! 4 | © 2012 IBM Corporation
  5. 5. Conversion Guide© 2012 IBM Corporation
  6. 6. Conversion Guide – An Agile Approach Releases Minimum Planning Preparation Working Version 1.0 Version 2.0+ AppKey Get your Notes Lay the Functional app Optimize anddecisions app ready foundation make it beautiful Higher Lower Quality Risk 6 | © 2012 IBM Corporation
  7. 7. Planning Releases Minimum Planning Preparation Working Version 1.0 Version 2.0+ App ■ Key questions that will drive approach and effort 7 | © 2012 IBM Corporation
  8. 8. Key Decisions■ Should the app be converted? ■ Reuse or rewrite LotusScript? ─ Ensure XPages is really needed, then ─ Decide whether app logic will be reused target high visibility, low complexity apps first ■ User interface approach?■ Behave like the Notes client? ─ Look & feel, branding, navigation ─ Notes-like or web-like user experience? ■ Enhancements?■ External dependencies? ─ Opportunity to implement new requirements? ─ Microsoft Office / IBM Lotus Symphony™ integration, COM, DLL calls? ■ Testing?■ Coexistence with Notes interface? ─ Decide how much testing the converted app requires. Coexistence. ─ Increase development and testing time, especially if maintaining field-level ■ Code analysis compatibility ─ Uncover code in forms, subforms and■ Notes features not supported yet in views that may not be obvious and understand the magnitude of effort XPages? ─ Does your app have signatures, encryption, embedded objects? Deep rich text usage? 8 | © 2012 IBM Corporation
  9. 9. Should the app be converted?Avoid conversion if: ■ Standard template or variant thereof ■ Can be migrated to a standard application platform ─ IBM Connections or IBM Quickr® ■ Used only by administrators and developers ■ Already has a functional web UI? (ensure ROI) ■ Is it better suited for archival? 9 | © 2012 IBM Corporation
  10. 10. Conversion Sweet Spot Sweet spot 10 | © 2012 IBM Corporation
  11. 11. Behave like the Notes client? ?Behave like a Notes app? Behave like a modern web app? 11 | © 2012 IBM Corporation
  12. 12. Your user experience can be more than outlines, views, documents and action bars 12 | © 2012 IBM Corporation
  13. 13. “Notes-like” vs “web-like” Exciting possibilities! Task-oriented vs document-oriented Notes model is not natural for the web Notes-like can complicate user expectations OneUI is very intuitive (low training) Users resistant to new way of working 13 | © 2012 IBM Corporation
  14. 14. Group Business Software(GBS) Transformer 14 | © 2012 IBM Corporation
  15. 15. GBS Transformer 2.0 1-click* * Most apps will require manual effort on top of Transformer 15 | © 2012 IBM Corporation
  16. 16. Coexistence with Notes interface■ Coexistence with Notes client is likely ─ Phased conversions preferred over “big bang” conversions■ Will Notes and XPages need to update the same document? ─ If yes, you need field-level compatibility in both interfaces ─ Requires additional testing ─ Reuse Notes code where possible – Wrap LotusScript write operations – Compute with form■ Hybrid approaches ─ Some users stay in Notes, others use XPages ─ Some XPages views open a document in Notes (notes:// links) ─ Other XPages views open a document in browser (http:// links) 16 | © 2012 IBM Corporation
  17. 17. Reuse or rewrite LotusScript®?■ Reuse LotusScript (via agent): ─ Maintain 1 code base between Notes client and XPages for extended coexistence period ─ Large chunks of backend code ─ Field-level compatibility ─ New to XPages ─ Only for write operations■ Do not reuse LotusScript: ─ Frontend code – rewrite as CSJS or SSJS ─ Code that only performs read operations■ Always consider performance: ─ App will now be running on a shared environment vs standalone on desktop ─ Minimize calls to agents 17 | © 2012 IBM Corporation
  18. 18. Unless you have5 good reasonsyou will use theIBM OneUI 18 | © 2012 IBM Corporation
  19. 19. Use it as starting point,allow your designer tochange anything inside IBM OneUIthe curly brackets ■ Fully documented ■ Debugged ■ Included with Domino ■ Evolving ■ Consistent ■ Colorful ■ Intuitive ■ Extendible 19 | © 2012 IBM Corporation
  20. 20. Not Using OneUI? ■ Alternative themes ─ Corporate standard ─ Free ones (frameworks) ─ Not-free ones (search for “css admin themes”) ─ Use a web designer ■ Things to look for in a theme: ─ Cross-browser support ─ Documentation and working sample pages ─ Comprehensive – tables, forms, buttons, sections, messages, layout, navigation, menus, help text, error text Unless you are good at web design, best to leverage existing assets so you can focus on function and not fonts / layouts / colors / etcA wise man once said... 20 | © 2012 IBM Corporation
  21. 21. Code Analysis■ Generate report of all @formula and LS code in each form and view■ DXLMagic■ CoCoMo 21 | © 2012 IBM Corporation
  22. 22. CoCoMo Analysis■ Know your magnitude■ Identify large code bases■ Lines of code can be translated to $$$ 22 | © 2012 IBM Corporation
  23. 23. Preparation Releases Minimum Planning Preparation Working Version 1.0 Version 2.0+ App■ Prepare your Notes app for conversion ─ Minimize server impact ─ Simplify porting application logic ─ Reduce maintenance 23 | © 2012 IBM Corporation
  24. 24. Prepare LotusScript for reuse■ Refactor backend LotusScript into script libraries ─ Functions in backend libraries can be called from XPages via an Agent ─ When referencing user name, use NotesSession.EffectiveUserName■ Use “Option Declare” in all LotusScript ─ Reduces variable overhead (undeclared variables are expensive Variants) ─ Usually results in code improvements■ Recompile all LotusScript ─ Expose any hidden compile errors 24 | © 2012 IBM Corporation
  25. 25. ■ Separating-out backend code into script library■ XPages can now call this function via an agent 25 | © 2012 IBM Corporation
  26. 26. Remove Duplicate Design Elements■ Mainly form/view/agent copies■ Use search in IBM Lotus® Domino® Designer to see where an element is referenced The “employeeMyClosedTickets” view is referenced by a page and outline 26 | © 2012 IBM Corporation
  27. 27. Build Releases Minimum Planning Preparation Working Version 1.0 Version 2.0+ App■ Structure development around 3+ releases■ Key concerns are addressed in each release■ Solicit feedback and adjust 27 | © 2012 IBM Corporation
  28. 28. Build in 3 releases Minimum Working Version 1.0 Version 2.0+ App■ One completely ■ Complete application, ■ Optimize frontend and functional “form” and backend focus backend “view” ■ More: application logic, ■ Performance■ Validation working UI ■ Reduce interaction time■ Coexistence ■ Less: optimization, ■ Look for code reuse■ Theme, layout, performance, elegance, ideal user experience ■ Mobile navigation, look & feel ■ Coexistence ■ Trend toward MVC■ Prototyping ■ Easiest approaches ■ Services■ Common functions ■ Incremental / hybrid ■ Sharing■ Extension Library? Feedback Feedback Feedback 28 | © 2012 IBM Corporation
  29. 29. Declining effort per application 29 | © 2012 IBM Corporation
  30. 30. Best Practices© 2012 IBM Corporation
  31. 31. SSJS vs LotusScript vs Java™■ SSJS best for: ─ Default choice; use unless LotusScript or Java work better ─ Controlling application flow; orchestration ─ Interacting with the user■ LotusScript best for: ─ Reusing significant chunks of existing backend code ─ Never frontend ─ Never read operations ─ Only if wrapping is less effort than rewriting■ Java best for: ─ Intense processing blocks ─ Complex business logic ─ Wrapping Java libraries for use by SSJS 31 | © 2012 IBM Corporation
  32. 32. Leverage Community■ Internal ─ Internal repositories / wikis for: – Code – Standards ─ Discussion forum ─ Blogs ─ ahem, IBM Connections, ahem■ External ─ ─ ─ XSnippets ─ XPages forum ─ #xpages 32 | © 2012 IBM Corporation
  33. 33. Styling Content 1 Avoid setting display attributes for Instead, apply display attributes each individual element through a style sheet to all elements 33 | © 2012 IBM Corporation
  34. 34. Styling Content 2 ■ 1. Find the visual element in your theme 34 | © 2012 IBM Corporation
  35. 35. Styling Content 32. Copy the HTML 3. Apply to XPage and tweak as needed 35 | © 2012 IBM Corporation
  36. 36. Styling Content 4 Result 36 | © 2012 IBM Corporation
  37. 37. Dialogs and Actions ■ Problem ─ Reproducing Notes actions with user input is problematic on the web ■ Solution ─ Use xe:dialog! ■ xe:dialog ─ Launch and handle dialog without leaving SSJS ─ Dialog is not part of the JSF tree until invoked SSJS to handle submit ─ Dialog content evaluates only when invoked ─ Close via SSJS and continue processingSSJS to open dialog 37 | © 2012 IBM Corporation
  38. 38. Document Discovery■ View traversal and search work well in the Notes client ─ Quick-find, full-text search, browse by category, keyboard shortcuts ─ Consistent across applications ─ Understand how your users navigate ─ Heavy reliance on keyboard shortcuts?■ XPages faithfully renders Notes views, but... ─ Not the same experience as the Notes client■ Web may work better with a different approach ─ Search/filter, tag clouds, bread crumbs, dynamic sorting ─ Think about how you find content in other large systems like discussion forums, bug tracking systems, online stores ─ How do other web apps in your enterprise work? 38 | © 2012 IBM Corporation
  39. 39. Search always availableDocument Discovery Filters also help Navigate categories using tag cloud 39 | © 2012 IBM Corporation
  40. 40. Document Interaction Read ■ Read and edit mode do not need to be the same XPage Edit ■ Team Room follows the OneUI style for forms via Extension Library form controls 40 | © 2012 IBM Corporation
  41. 41. Source Control and Team Development■ Horizontal development■ Split along skills ─ UI ─ Interaction ─ Logic / Flow ─ Back-end■ Start 2day■ Allow for ramp up 41 | © 2012 IBM Corporation
  42. 42. Tools© 2012 IBM Corporation
  43. 43. Code Analysis■ DXLMagic■ CoCoMo■ TeamStudio■ XSLT■ Visustin■ DB/2 Pure XML (when you look at thousands) 43 | © 2012 IBM Corporation
  44. 44. PMXC - Poor Mans XPages Conversion■ Views■ Forms■ Roll your own■ Tools ─ XSLT ─ Apache ANTTM ─ Designer Version Control 44 | © 2012 IBM Corporation
  45. 45. Large Numbers of Databases© 2012 IBM Corporation
  46. 46. What if you have large #s of databases?■ GBS Transformer 2.0■ Development factory 46 | © 2012 IBM Corporation
  47. 47. GBS Transformer 2.0 INVESTIGATE ANALYZE CONVERT BUILD UI and Compiles Gather key Detailed business final info to create Assessment logic XPages a prioritized of converted to list of target application XPages applications 47 | © 2012 IBM Corporation
  48. 48. Use a factory approach XPages upgrade factory■ Use the extension library ■ Move to higher level components■ Build your own extension library ─ Workflow ─ Social enablement■ Standardize UI artifacts ─ Search■ Single Copy Design ─ Embedded experiences■ Switch to horizontal development ─ Internal systems ─ By layer / module ■ Look for professional help ─ Functionality across applications 48 | © 2012 IBM Corporation
  49. 49. Standardization != 49 | © 2012 IBM Corporation
  50. 50. Factory impact 50 | © 2012 IBM Corporation
  51. 51. Questions 51 | © 2012 IBM Corporation
  52. 52. Other Sessions ■ AD103: Embracing the Eclipse Within ■ AD104: IBM Lotus Domino XPages Made Social ■ AD106: IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere ■ BP103: IBM Lotus Domino XPages Blast!Contact■ Hunter Medney ■ Stephan H Wissel a.k.a NotesSensei■ IBM Software Services for Lotus ■ Presales engineer in Singapore■ Twitter: @hmedney ■ Twitter: @notessensei■ Blog: developWorks (hmedney) ■ Blog:■ Email: ■ Email:■ Staffing Meet The Developers lab 52 | © 2012 IBM Corporation
  53. 53. Thank you & fill in your session evaluations! 53 | © 2012 IBM Corporation
  54. 54. Legal disclaimer© IBM Corporation 2012. All Rights Reserved. The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the users job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both. Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. UNIX is a registered trademark of The Open Group in the United States and other countries. Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. All references to fictitious companies refer to a fictitious company and are used for illustration purposes only. 54 | © 2012 IBM Corporation