ad111 - the x path: practical guide to taking your ibm lotus notes applications to domino xpages

54
© 2012 IBM Corporation 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

Upload: stephan-wissel

Post on 22-Nov-2014

6.103 views

Category:

Technology


4 download

DESCRIPTION

Process and strategy to upgrade existing Notes client applications using XPages

TRANSCRIPT

Page 1: 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

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

2 | © 2012 IBM Corporation

Agenda■ Introduction

■ Conversion Guide (“The X Path”)

■ Best Practices

■ Tools

■ Large #s of Databases

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

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

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

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!

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

© 2012 IBM Corporation

Conversion Guide

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

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

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

7 | © 2012 IBM Corporation

Planning

Planning PreparationMinimum Working

AppVersion 1.0 Version 2.0+

■ Key questions that will drive approach and effort

Releases

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

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

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

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:

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

10 | © 2012 IBM Corporation

Conversion Sweet Spot

Sweet spot

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

11 | © 2012 IBM Corporation

? Behave like the Notes client?

Behave like a Notes app? Behave like a modern web app?

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

12 | © 2012 IBM CorporationYour user experience can be more than outlines, views, documents and action bars

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

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!

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

14 | © 2012 IBM Corporation

Group Business Software (GBS) Transformer

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

15 | © 2012 IBM Corporation

GBS Transformer 2.0

* Most apps will require manual effort on top of Transformer

1-click*

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

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)

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

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

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

18 | © 2012 IBM Corporation

Unless you have5 good reasonsyou will use theIBM OneUI

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

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

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

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...

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

21 | © 2012 IBM Corporation

Code Analysis■ Generate report of all @formula and LS code in each form and view■ DXLMagic■ CoCoMo

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

22 | © 2012 IBM Corporation

CoCoMo Analysis■ Know your magnitude■ Identify large code bases■ Lines of code can be translated to $$$

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

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

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

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

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

25 | © 2012 IBM Corporation

■ Separating-out backend code into script library

■ XPages can now call this function via an agent

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

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

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

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

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

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

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

29 | © 2012 IBM Corporation

Declining effort per application

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

© 2012 IBM Corporation

Best Practices

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

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

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

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

Page 33: AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applications to Domino 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

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

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

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

35 | © 2012 IBM Corporation

Styling Content 3

2. Copy the HTML

3. Apply to XPage and tweak as needed

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

36 | © 2012 IBM Corporation

Styling Content 4

Result

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

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

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

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?

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

39 | © 2012 IBM Corporation

Document Discovery

Search always available

Navigate categories using tag cloud

Filters also help

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

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

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

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

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

© 2012 IBM Corporation

Tools

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

43 | © 2012 IBM Corporation

Code Analysis■ DXLMagic■ CoCoMo■ TeamStudio■ XSLT■ Visustin■ DB/2 Pure XML

(when you look at thousands)

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

44 | © 2012 IBM Corporation

■ Views■ Forms■ Roll your own■ Tools

─ XSLT─ Apache ANTTM

─ Designer Version Control

PMXC - Poor Mans XPages Conversion

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

© 2012 IBM Corporation

Large Numbers of Databases

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

46 | © 2012 IBM Corporation

What if you have large #s of databases?■ GBS Transformer 2.0■ Development factory

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

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

Page 48: AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applications to Domino 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

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

49 | © 2012 IBM Corporation

Standardization

!=

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

50 | © 2012 IBM Corporation

Factory impact

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

51 | © 2012 IBM Corporation

Questions

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

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

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

53 | © 2012 IBM Corporation

Thank you & fill in your session evaluations!

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

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.