Upload
ddrschiw
View
7.651
Download
3
Tags:
Embed Size (px)
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!
Citation preview
AD108: XPages in the IBM Lotus® Notes® Client - A Deep Dive!Martin Donnelly | Software ArchitectTeresa Monahan | Software Developer
Before We Begin...● Please turn off:
▬ Pagers▬ Cellphones▬ Anything else that buzzes, sings, screams, beeps, chirps, barks, etc.
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
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
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
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
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
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
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
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
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
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
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>
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
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
16
XPiNC Demo
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
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
19
XPages in Composite ApplicationsXPages Discussion
Component
Notes Mail View
Google Widget
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
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
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
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
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
25
Debug & Security Demo
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
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
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
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
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
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
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
33
Questions
● Your turn -- contact information:▬ Martin Donnelly, [email protected]▬ Teresa Monahan, [email protected]
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.