ad108 - xpages in the ibm lotus notes client - a deep dive!

34
AD108: XPages in the IBM Lotus® Notes® Client - A Deep Dive! Martin Donnelly | Software Architect Teresa Monahan | Software Developer

Upload: ddrschiw

Post on 14-May-2015

7.657 views

Category:

Technology


3 download

DESCRIPTION

This session gives you the grand tour of XPages in the Lotus Notes client. You'll discover how easy it is to take your XPages Web apps offline, and then add custom client behaviors that really adapt your application to Lotus Notes client platform. Spread your wings and integrate your application with other client components using real-world use cases that can make a real difference to your business. Learn how to test and debug your XPages client app along the way, and see how XPages supports traditional Lotus Notes client features and get a glimpse of where these integration points will lead in the future. If you have plans for XPages on the Lotus Notes client, this session is a must for you!

TRANSCRIPT

Page 1: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

AD108: XPages in the IBM Lotus® Notes® Client - A Deep Dive!Martin Donnelly | Software ArchitectTeresa Monahan | Software Developer

Page 2: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

Before We Begin...● Please turn off:

▬ Pagers▬ Cellphones▬ Anything else that buzzes, sings, screams, beeps, chirps, barks, etc.

Page 3: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

Financial DisclaimerThe information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion

Page 4: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

Speaker Introductions

Martin Donnelly● Software Developer: Iris Associates / Lotus Development

▬ IBM Lotus® Domino® Designer V4.6 – V6.01, IBM Lotus® 1-2-3® for Unix®, LotusScript, etc.

● Software Architect: IBM Software Group, Ireland▬ IBM® Rational® Application Developer (RAD)▬ JavaServer™ Faces (JSF) Tooling▬ Eclipse Visual Editor▬ IBM Lotus® Component Designer 6.0▬ IBM Lotus® Domino® Designer 8.5 / IBM Lotus® Domino® XPages

Teresa Monahan● Software Developer: IBM Software Group, Ireland

▬ XPages in IBM Lotus® Notes® / IBM Lotus® Domino® 8.5

Page 5: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

5

Agenda● Why XPages for the Notes Client?

● How does XPages in the Notes Client work?

● XPages & Notes Client Features and Functionality

● Demos

● XPages in the Notes Client - Summary

● XPages in the Notes Client - Futures

● Q&A

Page 6: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

6

XPages in the Notes Client *● Goals for 8.5.1

▬ Enable Lotus Notes/Domino users to run XPages web applications offline▬ Deliver the same UI experience running locally in Notes client▬ Take advantage of Notes/Domino NSF replication capabilities

▬ Support XPages in the Notes Client on all client platforms▬ Windows®▬ Mac▬ LINUX®

▬ Innovate & Integrate where practical, e.g.▬ Leverage the client composite application model▬ Integrate with Notes client workspace features as makes sense

▬ Provide a secure runtime environment for XPages client applications

* XPages in the Notes Client aka XPiNC

Page 7: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

7

XPages in the Notes Client● How it works – pretty much the same as on the server ;-)

Web Container

XPages Runtime

Notes Client

XPages UI Container

Embedded XULRunner

NSF apps have a new XPages client launch optionWhen app is opened, this URL is passed to XPages client containerThe container further transforms the URL ...

•Creates a instance of the XULRunner browser•Sends a secure request to client web container

The web container routes all XSP requests to the XPages runtimeXPages runtime renders pages back to the XULRunner browser

In Short

NSF design elements (XSP, Java™ class files…) are made available as module resources to the servlet API.

Each NSF can be projected as an auto-deployed Web Module.

The XPages runtime inserts as a generic web module and provides a virtual container for NSFs

XPages requests sent to an embedded Java Web container

Page 8: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

8

Launching XPages in the Notes Client

Notes Client:

Lotus Domino Designer:

● Launch Properties can be set in both Lotus Notes and Lotus Domino Designer

Page 9: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

9

The XPages Client URL● Built dynamically when an XPages application is invoked

▬ Based on the Client launch properties● Syntax: notes://[server]/dbName.nsf/myPage.xsp?OpenXPage● Client Address Bar:

● Opening XPages from other Lotus Notes applications● Integration with other design elements (e.g. Forms)● Bookmarking / Failover

Page 10: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

10

Execution Modes

● Local▬ NSF is in local data folder or sub-directory▬ All data and resources are loaded locally and executed in local web

container

● Remote▬ NSF resides on a Lotus Domino server▬ Data and resources are loaded across a network▬ Application logic is executed in the local web container▬ No XPages code executes on the server

● Consistent with the existing client model

Page 11: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

11

Customization of XPages in Notes● Rich Client Platform Specific Properties● Native Platform Dialogs● Client Themes

▬ Ability to customize application user experience for the Notes Client

● XPages Toolbar▬ Navigation, Clear Cache / Refresh Page, View Source, Print / Page Setup

● enableModifiedFlag▬ Prompt to save any modified content

● Bookmarking XPages● Failover Support

Page 12: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

12

Customization of XPages in Notes● SWT Dialogs instead of JavaScript™ Alert / Confirm Dialogs

● Client Side JavaScript Access to Java Platform Services▬ XSP.Alert() XSP.Xxx();▬ XSP._NotPublished();

Web Notes Client

Page 13: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

13

Customization of XPages in Notes

● Rich Client Platform Specific Properties▬ Provide a different user experience in Web and in Notes▬ In Notes, analogous to traditional 'hide/when' functionality

● e.g. Discussion Template 8.5.1 Toolbar

<xp:label value="Welcome " id="labelWelcome"><xp:label.rcp rendered="false"></xp:label.rcp>

</xp:label><xp:text escape="true" id="cfUserName" value="..">

<xp:text.rcp rendered="false"></xp:text.rcp></xp:text>

Page 14: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

14

enableModifiedFlag● Integrated with Notes Client document save model

▬ Main Save menu sensitive to modified document content▬ Hooks explicit File Save / {Ctl}{S} operations

● Alerts user to unsaved content on certain events▬ <Esc> / Close Window▬ Navigation to other page (client + web)

● Applying enableModifiedFlag▬ Can be applied to any input control▬ Default setting overrides the need to specify behavior in many places ▬ disableModifiedFlag flag allows an input control to explicitly “opt out” of the process

● Handles client side and server side validation scenarios▬ Client side JavaScript reports an error before save can be performed▬ Server side validator finds an error after the page is submitted

Page 15: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

15

XPages Client Theme

● Support for Client Themes▬ Different look and feel when applications are used in the Notes Client

● 8.5.1 Application Properties panel extended▬ Allow property setting for Application, Web and Client Themes

● No “Out of the Box” Client Theme for 8.5.1

Page 16: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

16

XPiNC Demo

Page 17: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

17

XPages & Composite Applications● Full integration with Composite Applications in 8.5.1

▬ Comp App supports XPages applications and XPages Components

● Component▬ A new 8.5.1 Component design element▬ Define Publish & Receive Events for interaction with other components▬ Define Parameters to conditionalize component behavior▬ Uses iWidget format

● Wire XPages components together or with other components▬ PIM (mail), ▬ Managed Browser▬ Symphony Containers▬ Widgets...

● New XPages Simple Actions to easily handle Publish Events● Receive Events handled with JavaScript

Page 18: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

18

XPages in Composite Applications Editor● Adding an XPages Application/Component to a Composite Application

▬ Easy peasy – select Notes URL via the design element picker or just specify manually

Page 19: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

19

XPages in Composite ApplicationsXPages Discussion

Component

Notes Mail View

Google Widget

Page 20: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

20

How to use XPages in a Composite ApplicationOnline video available on developer.lotus.comhttp://www-10.lotus.com/ldd/ddwiki.nsf/dx/XPage_Components_in_Notes_851_Videos.htm

XPages Comp App Demo

Page 21: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

21

XPiNC Testing / Debugging● Lotus Domino Designer Preview

● XPages Client Toolbar

▬ View Source▬ Clear Private Data / Refresh▬ View Browser Configuration

● Error Logging

▬ <NOTES_INSTALL_DIR>/data/IBM_TECHNICAL_SUPPORT▬ Help > Support > View Trace▬ Help > Support > View Log

Client Preview

Web Preview

Cache Management View Source View Config

Page 22: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

22

XPiNC Testing / Debugging● ClientSide JavaScript Error Reporting:

▬ In Notes status bar▬ Enable Firebug® Lite

▬ Rename xsp.properties.sample in <NotesData>/properties to xsp.properties

▬ Comment in the line: xsp.client.script.dojo.djConfig=isDebug:true▬ Restart the Notes Client.

● ServerSide JavaScript Error Reporting:▬ Append -RPARAMS -console to the shortcut that launches Notes

e.g. C:\Notes\notes.exe -RPARAMS -console▬ Notes Client will launch with a console window▬ print() and _dump() statements output to the console

Page 23: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

23

Security● Java Security Key Objective

▬ Prevent an XPages Application from executing Java code that could read data from the users workstation and transmit it to a remote host over the network.

● XPages Java Security Manager integrated with the Notes Execution Control List (ECL) service

● Notes Client “Execution Security Alert” dialog used to warn a user when code in an XPages application executes a protected operation

● User can:▬ Deny the action▬ Trust it one time only▬ Modify the ECL so that it will always be a trusted action

All Permissions

File

NetworkProperties

Page 24: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

24

Security ● Java backend classes security correctly surfaced in XPiNC● Client Side JavaScript Access to Java Platform Services

▬ Limited client platform services available via client side JavaScript▬ Mostly UI functions like dialog rendering

● Session IDs▬ Assigned when an application is opened using XPages▬ Persists until the Notes Tab is closed

● Port Number in XPages URL ▬ Randomly generated when Notes Client is launched▬ Persists until the Notes Client is closed

Page 25: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

25

Debug & Security Demo

Page 26: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

26

Future Directions● We have started to address some of these points in 8.5.x

The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion

Page 27: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

27

Client Consistent Behaviors

8.5.1 8.5.x

● Enabling appropriate Menu items▬ File \ Replicate, Open in Designer etc

The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion

Page 28: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

28

Link Handling & Document Interoperability● Domino web links / Notes client links

▬ XPages uses MIME format when storing documents on the web and client▬ No web/client interoperabiltiy issues for pure XPages apps

▬ Traditional Notes applications use a native CD binary format for rich text▬ Native rich text document must undergo a conversion for XPages to display▬ Happens automatically in 8.5.1

▬ CD / MIME conversions can be lossy on certain content types▬ Can occur when users are using regular Notes client & XPiNC on same app ▬ Same scenario as when Notes client apps also serve as Domino web apps▬ User is warned of potential format loss if writing a document that requires conversion

▬ 8.5.x aims for better round-tripping of rich text documents

Links in Traditional Notes App Same links when viewed in XPiNC

The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion

Page 29: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

29

Window Management Client Behaviors● Window Management

▬ Lift single-window restriction on XPages client applications▬ e.g. Allow documents to be opened in new window like traditional Notes client apps

▬ Dictate behavior by preference settings▬ Leverage existing client preferences▬ Enable this option for

▬ Links▬ Page navigations▬ View column selections

The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion

Page 30: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

30

Summary● Walk through of XPages in the Notes Client

▬ Launching XPages in the Notes Client▬ Local / Remote modes

● Customization of XPages in the Notes Client▬ RCP Specific Properties▬ Client Themes▬ Native Dialogs

● Notes Integration Points▬ Bookmarking XPages▬ enableModifiedFlag ▬ XPages Toolbar▬ Enhanced Menu Integration (File Replicate etc)

● Composite Application Integration● Test / Debug Utilities● Security● Possible Future Directions for XPiNC

Page 31: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

31

Resources● Developer Works

developer.lotus.com● Lotus Domino Designer wiki

www.lotus.com/ldd/ddwiki.nsf● Domino Designer Help● Open NTF – Project: XPages Wiki

www.openntf.org● Planet Lotus - an aggregation of Lotus related blogs and news

planetlotus.org● THE VIEW

www.eview.com● The XPages Blog

xpagesblog.com

Page 32: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

32

Other XPages Sessions...JMP101 IBM Lotus Domino Designer 101 - Dan O'Connor and Ishfak BhagatAD101 IBM Lotus Domino Designer: Full Speed Ahead! - Maureen Leland and Peter JanzenAD102 Extreme Makeover -- LotusScript and Java Editor Edition - David Taieb and Santosh KumarAD103 Have it Your Way: Extending IBM Lotus Domino Designer - Andre Guirard and Xin Rang WangAD106 XPages Just Keep Getting Better - Philippe Riand and Eamon MuldoonAD107 Enhance Your Existing Applications with XPages - Steve Castledine and Stephan WisselAD109 XPages Performance and Scalability - Mark Gargan and Tony McGuckinAD110 Unleash the Power of Xpages - Philippe Riand and Maire KehoeAD111 Harnessing the Power of Server-Side JavaScript and Other Advanced XPage Techniques - Tim

Tripcony and Stephan WisselAD112 Development and Deployment of Lotus Product Documentation Wikis - Craig Lordan and Kevin

GilesAD113 IBM Lotus Notes Discussion Template: Next Generation and Other OpenNTF Assets - Niklas

Heidloff and Steve CastledineBP207 Make Your XPage Apps "Pop!" with CSS and Themes - Declan Lynch and David LeedySHOW112 How to Build an XPages Application from Start to Finish - Tim Clark and Matt White

Security in IBM Lotus Notes ClientID105 What's New in IBM Lotus Notes Client Security - Srinivas Kolaparthi and John Banks-Binici

Page 33: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

33

Questions

● Your turn -- contact information:▬ Martin Donnelly, [email protected]▬ Teresa Monahan, [email protected]

Page 34: Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!

34

Legal Disclaimer© IBM Corporation 2009. 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.

IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both.

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.

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.