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

Post on 22-Nov-2014

6,097 views 4 download

description

Process and strategy to upgrade existing Notes client applications using XPages

transcript

© 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: hunter_medney@us.ibm.com■ Staffing Meet The Developers lab

■ Stephan H Wissela.k.a NotesSensei

■ Presales engineer in Singapore■ Twitter: @notessensei■ Blog: http://www.wissel.net/■ Email: notessensei@sg.ibm.com

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.