AD503: XPages Mobile Development in IBM Domino 9.0.1 and Beyond
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applications to Domino XPages
-
Upload
stephan-wissel -
Category
Technology
-
view
6.102 -
download
4
description
Transcript of AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applications to Domino XPages
© 2012 IBM Corporation
AD111: The X Path: Practical Guide to taking your IBM Lotus® Notes® Applications to XPages
Hunter R. Medney | X-Man | IBMStephan H. Wissel | X-Man | IBM
2 | © 2012 IBM Corporation
Agenda■ Introduction
■ Conversion Guide (“The X Path”)
■ Best Practices
■ Tools
■ Large #s of Databases
3 | © 2012 IBM Corporation
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
4 | © 2012 IBM Corporation
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!
© 2012 IBM Corporation
Conversion Guide
6 | © 2012 IBM Corporation
Conversion Guide – An Agile Approach
Planning PreparationMinimum Working
AppVersion 1.0 Version 2.0+
Lower Risk
Higher Quality
Key decisions
Get your Notes app ready
Lay the foundation
Functional app Optimize and make it beautiful
Releases
7 | © 2012 IBM Corporation
Planning
Planning PreparationMinimum Working
AppVersion 1.0 Version 2.0+
■ Key questions that will drive approach and effort
Releases
8 | © 2012 IBM Corporation
Key Decisions■ Should the app be converted?
─ Ensure XPages is really needed, then target high visibility, low complexity apps first
■ Behave like the Notes client?─ Notes-like or web-like user experience?
■ External dependencies?─ Microsoft Office / IBM Lotus Symphony™
integration, COM, DLL calls?■ Coexistence with Notes interface?
─ Increase development and testing time, especially if maintaining field-level compatibility
■ Notes features not supported yet in XPages?
─ Does your app have signatures, encryption, embedded objects? Deep rich text usage?
■ Reuse or rewrite LotusScript?─ Decide whether app logic will be reused
■ User interface approach?─ Look & feel, branding, navigation
■ Enhancements?─ Opportunity to implement new
requirements?■ Testing?
─ Decide how much testing the converted app requires. Coexistence.
■ Code analysis─ Uncover code in forms, subforms and
views that may not be obvious and understand the magnitude of effort
9 | © 2012 IBM Corporation
Should the app be converted?
■ 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?
Avoid conversion if:
10 | © 2012 IBM Corporation
Conversion Sweet Spot
Sweet spot
11 | © 2012 IBM Corporation
? Behave like the Notes client?
Behave like a Notes app? Behave like a modern web app?
12 | © 2012 IBM CorporationYour user experience can be more than outlines, views, documents and action bars
13 | © 2012 IBM Corporation
“Notes-like” vs “web-like”
OneUI is very intuitive (low training)
Notes-like can complicate user expectations
Notes model is not natural for the web
Users resistant to new way of working
Task-oriented vs document-oriented
Exciting possibilities!
14 | © 2012 IBM Corporation
Group Business Software (GBS) Transformer
15 | © 2012 IBM Corporation
GBS Transformer 2.0
* Most apps will require manual effort on top of Transformer
1-click*
16 | © 2012 IBM Corporation
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)
17 | © 2012 IBM Corporation
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
18 | © 2012 IBM Corporation
Unless you have5 good reasonsyou will use theIBM OneUI
19 | © 2012 IBM Corporation
IBM OneUI■ Fully documented■ Debugged■ Included with Domino■ Evolving■ Consistent■ Colorful■ Intuitive■ Extendible
Use it as starting point,allow your designer tochange anything insidethe curly brackets
csszengarden.com
20 | © 2012 IBM Corporation
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...
21 | © 2012 IBM Corporation
Code Analysis■ Generate report of all @formula and LS code in each form and view■ DXLMagic■ CoCoMo
22 | © 2012 IBM Corporation
CoCoMo Analysis■ Know your magnitude■ Identify large code bases■ Lines of code can be translated to $$$
23 | © 2012 IBM Corporation
Preparation
Planning PreparationMinimum Working
AppVersion 1.0 Version 2.0+
■ Prepare your Notes app for conversion─ Minimize server impact─ Simplify porting application logic─ Reduce maintenance
Releases
24 | © 2012 IBM Corporation
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
25 | © 2012 IBM Corporation
■ Separating-out backend code into script library
■ XPages can now call this function via an agent
26 | © 2012 IBM Corporation
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
27 | © 2012 IBM Corporation
Releases
Build
Planning PreparationMinimum Working
AppVersion 1.0 Version 2.0+
■ Structure development around 3+ releases■ Key concerns are addressed in each release■ Solicit feedback and adjust
28 | © 2012 IBM Corporation
Build in 3 releases
Minimum Working
AppVersion 1.0 Version 2.0+
■ One completely functional “form” and “view”
■ Validation■ Coexistence■ Theme, layout,
navigation, look & feel■ Prototyping■ Common functions■ Extension Library?
■ Complete application, backend focus
■ More: application logic, working UI
■ Less: optimization, performance, elegance, ideal user experience
■ Coexistence■ Easiest approaches■ Incremental / hybrid
■ Optimize frontend and backend
■ Performance■ Reduce interaction time■ Look for code reuse■ Mobile■ Trend toward MVC■ Services■ Sharing
Feedback Feedback Feedback
29 | © 2012 IBM Corporation
Declining effort per application
© 2012 IBM Corporation
Best Practices
31 | © 2012 IBM Corporation
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
32 | © 2012 IBM Corporation
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
33 | © 2012 IBM Corporation
Styling Content 1
Avoid setting display attributes for each individual element
Instead, apply display attributes through a style sheet to all elements
34 | © 2012 IBM Corporation
Styling Content 2
http://infolib.lotus.com/resources/oneui/2.1/docPublic/index.htm
■ 1. Find the visual element in your theme
35 | © 2012 IBM Corporation
Styling Content 3
2. Copy the HTML
3. Apply to XPage and tweak as needed
36 | © 2012 IBM Corporation
Styling Content 4
Result
37 | © 2012 IBM Corporation
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─ Dialog content evaluates only when invoked─ Close via SSJS and continue processing
SSJS to open dialog
SSJS to handle submit
38 | © 2012 IBM Corporation
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?
39 | © 2012 IBM Corporation
Document Discovery
Search always available
Navigate categories using tag cloud
Filters also help
40 | © 2012 IBM Corporation
Document Interaction■ Read and edit
mode do not need to be the same XPage
Read
Edit
■ Team Room follows the OneUI style for forms via Extension Library form controls
41 | © 2012 IBM Corporation
Source Control and Team Development■ Horizontal development■ Split along skills
─ UI─ Interaction─ Logic / Flow─ Back-end
■ Start 2day■ Allow for ramp up
© 2012 IBM Corporation
Tools
43 | © 2012 IBM Corporation
Code Analysis■ DXLMagic■ CoCoMo■ TeamStudio■ XSLT■ Visustin■ DB/2 Pure XML
(when you look at thousands)
44 | © 2012 IBM Corporation
■ Views■ Forms■ Roll your own■ Tools
─ XSLT─ Apache ANTTM
─ Designer Version Control
PMXC - Poor Mans XPages Conversion
© 2012 IBM Corporation
Large Numbers of Databases
46 | © 2012 IBM Corporation
What if you have large #s of databases?■ GBS Transformer 2.0■ Development factory
47 | © 2012 IBM Corporation
GBS Transformer 2.0
Gather key info to create a prioritized list of target applications
INVESTIGATE
Detailed Assessment
of application
ANALYZE
UI and business
logic converted to
XPages
CONVERT BUILD
Compiles final
XPages
48 | © 2012 IBM Corporation
XPages upgrade factory
■ Move to higher level components─ Workflow─ Social enablement─ Search─ Embedded experiences─ Internal systems
■ Look for professional help
■ Use the extension library■ Build your own extension library■ Standardize UI artifacts■ Single Copy Design■ Switch to horizontal development
─ By layer / module─ Functionality across applications
Use a factory approach
49 | © 2012 IBM Corporation
Standardization
!=
50 | © 2012 IBM Corporation
Factory impact
51 | © 2012 IBM Corporation
Questions
52 | © 2012 IBM Corporation
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!
■ Hunter Medney■ IBM Software Services for Lotus■ Twitter: @hmedney■ Blog: developWorks (hmedney)■ Email: [email protected]■ Staffing Meet The Developers lab
■ Stephan H Wissela.k.a NotesSensei
■ Presales engineer in Singapore■ Twitter: @notessensei■ Blog: http://www.wissel.net/■ Email: [email protected]
Contact
53 | © 2012 IBM Corporation
Thank you & fill in your session evaluations!
54 | © 2012 IBM Corporation
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.