Advertisement
Advertisement

More Related Content

Advertisement
Advertisement

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

  1. AD108: XPages in the IBM Lotus® Notes® Client - A Deep Dive! Martin Donnelly | Software Architect Teresa Monahan | Software Developer
  2. Before We Begin... ● Please turn off: ▬ Pagers ▬ Cellphones ▬ Anything else that buzzes, sings, screams, beeps, chirps, barks, etc.
  3. Financial Disclaimer 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
  4. 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 5
  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 6
  7. XPages in the Notes Client ● How it works – pretty much the same as on the server ;-) Notes Client XPages requests sent to an embedded Java Web Web Container container Embedded XULRunner The XPages runtime XPages UI Container inserts as a generic web XPages Runtime module and provides a virtual container for NSFs Each NSF can be In Short projected as an auto-  NSF apps have a new XPages client launch option When app is opened, this URL is passed to XPages client container deployed Web Module. The container further transforms the URL ... •Creates a instance of the XULRunner browser NSF design elements •Sends a secure request to client web container (XSP, Java™ class files…) The web container routes all XSP requests to the XPages runtime are made available as XPages runtime renders pages back to the XULRunner browser module resources to the servlet API. 7
  8. Launching XPages in the Notes Client ● Launch Properties can be set in both Lotus Notes and Lotus Domino Designer Notes Client: Lotus Domino Designer: 8
  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 9
  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 10
  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 11
  12. Customization of XPages in Notes ● SWT Dialogs instead of JavaScript™ Alert / Confirm Dialogs Web Notes Client ● Client Side JavaScript Access to Java Platform Services ▬ XSP.Alert() XSP.Xxx(); ▬ XSP._NotPublished(); 12
  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> 13
  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 14
  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 15
  16. XPiNC Demo 16
  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 17
  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 18
  19. XPages in Composite Applications XPages Discussion Component Google Widget Notes Mail View 19
  20. XPages Comp App Demo How to use XPages in a Composite Application Online video available on developer.lotus.com http://www-10.lotus.com/ldd/ddwiki.nsf/dx/XPage_Components_in_Notes_851_Videos.htm 20
  21. Client Web XPiNC Testing / Debugging Preview Preview ● Lotus Domino Designer Preview ● XPages Client Toolbar ▬ View Source Cache View Source View Config ▬ Clear Private Data / Refresh Management ▬ View Browser Configuration ● Error Logging ▬ <NOTES_INSTALL_DIR>/data/IBM_TECHNICAL_SUPPORT ▬ Help > Support > View Trace ▬ Help > Support > View Log 21
  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:Notesnotes.exe -RPARAMS -console ▬ Notes Client will launch with a console window ▬ print() and _dump() statements output to the console 22
  23. All Permissions Security Properties Network File ● 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 23
  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 24
  25. Debug & Security Demo 25
  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 26
  27. Client Consistent Behaviors ● Enabling appropriate Menu items ▬ File Replicate, Open in Designer etc 8.5.1 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
  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 28
  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 29
  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 30
  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 31
  32. Other XPages Sessions... JMP101 IBM Lotus Domino Designer 101 - Dan O'Connor and Ishfak Bhagat AD101 IBM Lotus Domino Designer: Full Speed Ahead! - Maureen Leland and Peter Janzen AD102 Extreme Makeover -- LotusScript and Java Editor Edition - David Taieb and Santosh Kumar AD103 Have it Your Way: Extending IBM Lotus Domino Designer - Andre Guirard and Xin Rang Wang AD106 XPages Just Keep Getting Better - Philippe Riand and Eamon Muldoon AD107 Enhance Your Existing Applications with XPages - Steve Castledine and Stephan Wissel AD109 XPages Performance and Scalability - Mark Gargan and Tony McGuckin AD110 Unleash the Power of Xpages - Philippe Riand and Maire Kehoe AD111 Harnessing the Power of Server-Side JavaScript and Other Advanced XPage Techniques - Tim Tripcony and Stephan Wissel AD112 Development and Deployment of Lotus Product Documentation Wikis - Craig Lordan and Kevin Giles AD113 IBM Lotus Notes Discussion Template: Next Generation and Other OpenNTF Assets - Niklas Heidloff and Steve Castledine BP207 Make Your XPage Apps "Pop!" with CSS and Themes - Declan Lynch and David Leedy SHOW112 How to Build an XPages Application from Start to Finish - Tim Clark and Matt White Security in IBM Lotus Notes Client ID105 What's New in IBM Lotus Notes Client Security - Srinivas Kolaparthi and John Banks-Binici 32
  33. Questions ● Your turn -- contact information: ▬ Martin Donnelly, martin_donnelly@ie.ibm.com ▬ Teresa Monahan, monahant@ie.ibm.com 33
  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. 34
Advertisement