Weitere ähnliche Inhalte
Ähnlich wie AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applications to Domino XPages (20)
Mehr von Stephan H. Wissel (6)
Kürzlich hochgeladen (20)
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applications to Domino XPages
- 1. AD111: The X Path: Practical
Guide to taking your IBM
Lotus® Notes® Applications to
XPages
Hunter R. Medney | X-Man | IBM
Stephan H. Wissel | X-Man | IBM
© 2012 IBM Corporation
- 2. Agenda
■ Introduction
■ Conversion Guide (“The X Path”)
■ Best Practices
■ Tools
■ Large #s of Databases
2 | © 2012 IBM Corporation
- 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*?
*http://en.wikipedia.org/wiki/Technical_debt
3 | © 2012 IBM Corporation
- 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 wouldn't have so many
Notes apps if it didn't!
4 | © 2012 IBM Corporation
- 6. Conversion Guide – An Agile Approach
Releases
Minimum
Planning Preparation Working Version 1.0 Version 2.0+
App
Key Get your Notes Lay the Functional app Optimize and
decisions app ready foundation make it beautiful
Higher Lower
Quality Risk
6 | © 2012 IBM Corporation
- 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. 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. 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
- 11. Behave like the Notes client?
?
Behave like a Notes app? Behave like a modern web app?
11 | © 2012 IBM Corporation
- 12. Your user experience can be more than outlines, views, documents and action bars
12 | © 2012 IBM Corporation
- 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
- 15. GBS Transformer 2.0
1-click*
* Most apps will require manual effort on top of Transformer
15 | © 2012 IBM Corporation
- 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. 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. Unless you have
5 good reasons
you will use the
IBM OneUI
18 | © 2012 IBM Corporation
- 19. Use it as starting point,
allow your designer to
change anything inside IBM OneUI
the curly brackets
■ Fully documented
■ Debugged
■ Included with Domino
■ Evolving
■ Consistent
■ Colorful
■ Intuitive
■ Extendible
csszengarden.com
19 | © 2012 IBM Corporation
- 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 / etc
A wise man once said... 20 | © 2012 IBM Corporation
- 21. Code Analysis
■ Generate report of all @formula and LS code in each form and view
■ DXLMagic
■ CoCoMo
21 | © 2012 IBM Corporation
- 22. CoCoMo Analysis
■ Know your magnitude
■ Identify large code bases
■ Lines of code can be translated to $$$
22 | © 2012 IBM Corporation
- 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. 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. ■ Separating-out backend code
into script library
■ XPages can now call this
function via an agent
25 | © 2012 IBM Corporation
- 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. 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. 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
- 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. Leverage Community
■ Internal
─ Internal repositories / wikis for:
– Code
– Standards
─ Discussion forum
─ Blogs
─ ahem, IBM Connections, ahem
■ External
─ xpages.info
─ OpenNTF.org
─ XSnippets
─ XPages forum
─ #xpages
32 | © 2012 IBM Corporation
- 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. Styling Content 2
■ 1. Find the visual
element in your theme
http://infolib.lotus.com/resources/oneui/2.1/docPublic/index.htm
34 | © 2012 IBM Corporation
- 35. Styling Content 3
2. Copy the HTML
3. Apply to XPage and tweak as needed
35 | © 2012 IBM Corporation
- 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 processing
SSJS to open dialog
37 | © 2012 IBM Corporation
- 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. Search always
available
Document Discovery
Filters also help
Navigate categories
using tag cloud
39 | © 2012 IBM Corporation
- 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. 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
- 43. Code Analysis
■ DXLMagic
■ CoCoMo
■ TeamStudio
■ XSLT
■ Visustin
■ DB/2 Pure XML
(when you look at thousands)
43 | © 2012 IBM Corporation
- 44. PMXC - Poor Mans XPages Conversion
■ Views
■ Forms
■ Roll your own
■ Tools
─ XSLT
─ Apache ANTTM
─ Designer Version Control
44 | © 2012 IBM Corporation
- 46. What if you have large #s of databases?
■ GBS Transformer 2.0
■ Development factory
46 | © 2012 IBM Corporation
- 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. 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
- 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: http://www.wissel.net/
■ Email: hunter_medney@us.ibm.com
■ Email: notessensei@sg.ibm.com
■ Staffing Meet The Developers lab
52 | © 2012 IBM Corporation
- 53. Thank you & fill in your session evaluations!
53 | © 2012 IBM Corporation
- 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 user's 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