Domino Designer & XPages 8.52 and Beyond

Martin Donnelly

IBM Ireland Software Lab Before We Begin...

● Please turn off: – Pagers – Cellphones – Anything else that buzzes, sings, screams, beeps, chirps, barks, etc. NOTE : Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.

3 Agenda

● Introduction ● XPages ● Domino Designer ● Futures ● Wrap Up ● Your Questions!

4 Agenda

● Introduction ● XPagesXPages ● DominoDomino DesignerDesigner ● FuturesFutures ● WrapWrap UpUp ● YourYour Questions!Questions!

5 Speaker Introduction

Martin Donnelly ● Software Architect: IBM Ireland

▬ IBM Lotus® Domino® Designer 8.5.x / IBM Lotus® Domino® XPages

▬ IBM Lotus® Component Designer 6.0

▬ JavaServer™ Faces (JSF) Tooling IBM® Rational® Application Developer

▬ Java Visual Editor extensions for IBM® Rational® Application Developer ● Software Developer: Iris Associates / Lotus Development

▬ IBM Lotus® Domino® Designer V4.6 to V6.01

▬ IBM Lotus® 1-2-3® for Unix®,

▬ LotusScript, etc. ● “Mastering XPages” - Author For Whom The Talk Aims

● Domino developers with some XPages experience ● Expertise not required ● IT Managers familiar with the Domino App Dev model ● Intermediate level material

● Abstract

▬ In this talk you will learn about the newest features of both Domino Designer and XPages in Notes/Domino V8.5.2, and also get a glimpse of the cool stuff coming down the pike in 8.5.x. A must-see session for any developer looking to improve the look, feel, behavior and performance of their XPages applications. Complete package for delivering business solutions

Web 2.0 Composites Notes Client ● Domino Designer Mobile Devices ● based IDE with an extensible framework ● Build new and maintain existing applications ● XPages – Web 2.0 framework ● Use industry standard Web development skills (HTML, CSS & JavaScript) ● JavaServer Faces facilitates reuse of Java libraries ● One model for Web, Rich Client and Mobile Tailored solution that Domino Domino meets with your business Designer + = XPages objectives Designer & XPages – The Road Thus Far ...

• - Source Control Integration • - Improved JavaScript Editors Domino Designer • - CSS Preview

• - Designer Framework Enhancements • - Improved Version Awareness Soon • - Customer Driven Tactical Improvements Notes/Domino 8.5.x

- Performance/Stability Improvements - Application preloading - New editors 2010 • - JavaScript Aggregation - New Extensibility APIs Notes/Domino 8.5.2 • - XULRunner Upgrade - NO CHARGE Designer Download !!! • - CKEditor Upgrade - Rebased to Eclipse platform • - Bug Fixes • - New XPage & Custom Control - Stability/performance design elements 2009 improvements • - Fully integrated XPages Notes/Domino 8.5.1 - Better client integration • development environment - Fixing pending issues/requests - Runs within the Notes client • - Extensibility APIs - Generates iWidget 2009 - Active Content Filtering Notes/Domino 8.5 - Performance/scalability improvements - First release of Xpages XPages Runtime - Runs on the Domino server

 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 9 Agenda

● IntroductionIntroduction ● XPages ● DominoDomino DesignerDesigner ● FuturesFutures ● WrapWrap UpUp ● YourYour Questions!Questions!

10 XPages Performance and Scalability

Performance and scalability improvements 8.5.2 ● Enhancements to backend classes ● Shared design elements ● Performance report published  8.5.2 XPages discussion database server performance ● http://www.ibm.com/developerworks/lotus/library/domino85-xpages-perf/index.html  “User scalability improved three times, and network bandwidth and user throughput (transactions per second) improved...” XPages Performance and Scalability - 8.5.x ● XPages preloading : – preloads XPages Java classes before the application is opened ● i.e. compiled XPages, custom controls, runtime classes etc – enabled via notes.ini (provisionable across the enterprise) – Works on Notes client and/or Domino server – XPagesPreload=1 … to preload just the core runtime XPagesPreloadDB=db.nsf/myPage.xsp … to preload specific app(s) ● Particularly relevant to XPages in Notes Client remote execution

● Data must be fetched across the network from the remote NSF … but ... ● .class files must come across also to be executed locally in XPD web container

.class files NSF XPages Performance and Scalability - 8.5.x

● JS and CSS Aggregation – Dynamically aggregates DOJO modules and . files – Drastically reduces number of browser requests for JS and CSS resources ● Latency between browser requests has significant negative impact – Dramatic improvements evident in initial application performance ● e.g. an extreme case in the Extension Library using DWA_ListView.xsp

● Settable via Application Prpoerties (sets xsp.resources.aggregate=true in xsp.properties)

XPages: Enhanced User Experience 8.5.2

● Running agents on top of in-memory documents ● Support for multiple levels of categorization – cat1\cat2 ... finally !

● View Data Source startKeys property – Not a filter, an actual starting point for the view contents ● Data collection Pager can force “last” option to be presented – Has performance implications to consider ● Document Data Source – Supports “soft delete” through a new property – Use case = Undelete documents from Trash folder ● Data Validation – Documents can be saved without validation – New property disableValidators="true" – Use case = Save As Draft XPages: Enhanced User Experience 8.5.x

● Results of a full text search can now be sorted ● Other advanced full text features also added to view data source – e.g. fuzzy matching, word variants matching, exact match only ● Based on new Java API method View.ftSearchSorted(varargs ...) – Multiple search terms can be provided via a Java Vector object

Search term = “paper”

Results for “paper”

Results sortable by any resortable column XPages: Enhanced User Experience

● CKEditor replaces Dojo rich text editor in 8.5.2 – Dojo rich text editor still available but not default choice – CKEditor provides a consistent rich text editing experience across portfolio

Full Screen Mode

Embedding Images Predefined “Emoticons” Search and replace Working with tables XPages – Miscellaneous Updates

● Technology Updates for 8.5.x – XULRunner v1.9.2.1 ● equivalent to Mozilla 3.6.1 – Dojo v1.5.0 ● improved theming, more support for HTML 5 features – CKEditor v3.4.3 ● bidi support, OneUI V2.1 skin, better accessibility support – OneUI v2.1.2 ● includes IBM Project Vulcan look and feel, among other things ● For the full skinny on 8.5.2 XPages changes – http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Whats_New_in_852_for_XPages Extend XPages using the Extensibility API

● Let people create deployable XPages libraries – Deployed as Eclipse plug-ins in the Notes client and the Domino server – Controls, render kits, data sources, simple actions, servlets, request customizers, etc – XPage libraries run in OSGi framework on Client and Server ● Make public the XPages Java APIs – Javadoc – articles and samples ● XPages extensibility API additions in 8.5.x – Pluggable Dojo releases through plug-ins – Dynamic management of themes – Many other API enhancements ● Expect to see an extended XPages Extension Library on OpenNTF leveraging these new capabilities XPages Extension Library

● Get a rich Web UI faster than ever ● Greatly improves developer productivity – 88 native XPage controls (drag / drop / configure) – Integrated within Domino Designer – Extensions delivered as plugins that run on Client and Server ● Web 2.0 controls/behaviors – Brings those long sought after client behaviors to the web ● Dialog boxes, pick lists, REST services... ● Source code, so you can see examples and try for yourself – Free, download it from openNTF Team Room and Document Library templates

● Modernize the Teamroom and Document library ● Portfolio of most common XPage templates (Discussion, TeamRoom, DocLib) ● Based on 8.5.2 and the extension library ● Delivered on OpenNTF TeamRoom with Vulcan Theme Agenda

● IntroductionIntroduction ● XPagesXPages ● Domino Designer ● FuturesFutures ● WrapWrap UpUp ● YourYour Questions!Questions!

21 Domino Designer 8.5.2 Highlights

● Redesigned “Open Application” dialog – Improved usability and supports working sets – Choose multiple databases when adding to a working set ● XPage editing enhancements – Drag and drop from control or data palette in source mode – Improved data type recognition when binding form fields – Dojo panels, re-analysis of “all properties” vs. “pretty panels” – Design XPage applications for lower level target servers ● Errors reported when you use features not available for your target ● Sign your application ● Database scripts leverage new Eclipse based LotusScript editor ● Database icon from an imported image! ● XPages available to public access users ● And much more... Get Some Perspective !

● Two new perspectives join the Domino Designer perspective to help you focus your environment to the task at hand: – XPages perspective ● Only design elements necessary for XPage applications ● Eclipse views as needed (outline, navigator, control palette, etc) – Forms/Views perspective ● Only design elements necessary for Forms/Views development ● Eclipse views as needed (remove control palette, etc.) ● Filter individual design element types ● And add some common views more easily!

New Perspectives Continued Usability Tune-Ups

● Need web preview to use a different port from 80? ● Show Infobox on opening a design element or not? – New preferences mean that now you can decide! ● Sign button consistently available ● Renaming design elements – Dialog allows you to supply both the name and the alias – Accessed by in the design list, or from navigator ● New XPage Outline feature – Expand and Collapse All Improving The Extended Designer Experience

● Create your own properties panel for XPage control extensions – Use pretty panels and not All Properties all the time ● Personalize your palette with Palette Profiles – Use different profiles for different development situations Updated JavaScript Editor ● Client JavaScript editor replaced with the newest WTP editor compatible with Designer's version of Eclipse (3.4.2) ● Provides improved validation ● Outline view support for classes, etc ● Formatting preferences ● Code templates ● Code folding Leveraging Java in XPages Applications

● Now has a proper home: the Java design element! ● Java code can be directly called from Server Side JavaScript ● Eclipse Java editor and tooling directly available from Designer perspective ● Create a new class, interface, or enum ● Class file stored within the Java element note ● No worries about deletion stubs, etc

Standard Eclipse Java Tools

New Java element Source Control Enablement

● Domino Designer's virtual file system, though indispensable, proved a barrier to working with Eclipse-enabled source control products ● Designer bridges the gap and provides synchronization with an on-disk project with which the source control product interacts

SVN

NSF RTC (we don't care)

● Source control system neutral - so far we've tested with SVN (RTC next) – Designer is agnostic, the only requirement is that they have an Eclipse plugin for their product ● Facilitates team development (of course), but also provides version control and backup for solitary developers How Does It Work?

● It is the on-disk project that interacts with the source control product ● Every design element in the NSF is synchronized with a physical file in the on- disk project ● File based design elements store actual file content in the repository, with a second file managing metadata ● Choice of binary or text based DXL for “non-file” design elements (forms, views) ● Can start with a project in a repository and bring it in to Designer or can start with an NSF and move it up to repository ● Automatic or on-demand synchronization between the NSF and the on-disk project (your preference) ● Synchronize your on disk project with the source control provider as needed, using the provider's menu options and commands ● Let's see it in action :-) And in Case You Can't Wait...

● Please try it and give us your feedback! ● http://www.openntf.org/blogs/openntf.nsf/d6plinks/NHEF-8AVEUU Agenda

● IntroductionIntroduction ● XPagesXPages ● DominoDomino DesignerDesigner ● Futures ● WrapWrap UpUp ● YourYour Questions!Questions!

31 Application Development Futures

● IBM is focusing on three key aspects of application development – Social capabilities – Mobile enablement of social apps – Speed ... enabling rapid application development and deployment

● Domino can deliver on all three today, but we want to enhance our support going forward

Get Social. Do Business. Generating OpenSocial Gadgets

● Provide an OpenSocial container, and participate in embedded experiences, generate gadgets out of XPages

OpenSocial

XPages Mobile Applications

● Seamlessly extend your applications to mobile devices – Provide a dedicated set of controls – Deliver a native look and feel – Tap into device services – Leverage dojox.mobile & HTML5 ● Delivery – Today – mobile custom controls on OpenNTF – Tomorrow – XPage controls on OpenNTF and in Domino Improving Platform Extensibility with OSGi

● OSGi - Open Service Gateway Initiative ( http://www.osgi.org) – Open source Java based framework – Highly modular: Maximize reuse of third party eclipse based components – Lifecycle: Bundle Activator improves Java resource management – Extensible: Service Registry and extension points ● Motivation – Improve server extensibility – Simplify server add-in task implementation with Tasklet container – Easily add 3rd party libraries (i.e. XPage Extension library) – Better componentization (modularization and extension points) – Maximize asset reuse – Leverage existing Eclipse based tooling for OSGi ● HTTP server capabilities in Domino Next – Full fledged Servlet container by integrating the XPD Web Container – XPages applications running as WAB (Web Applications Bundles) – Rest APIs REST Services for Domino

● Two types of services – One tied to Domino data model: Domino Access Services ● Get handle to documents and collections of documents ● JSON for easy manipulation via JavaScript or Java – One exposing higher level business services ● For example: Calendaring & Scheduling ● Base on standards where they exist and ensure consistency across the portfolio – For example: iCal ● Built on top of OSGi so both types of services are extensible – Looking at various libraries to facilitate customization of existing and building of new services Domino Designer Improvements

● In addition to supporting the platform's development strategy, Designer itself will continue to evolve ● Leverage and grow with Eclipse – “Shop” for valuable Eclipse components for Domino developers ● Leverage improved JavaScript editors – Work with Eclipse for needed enhancements ● CSS Preview, etc. ● Customer-driven usability improvements ● Improve XPage development experience – Server-Side JavaScript debugger – Continued editing enhancements ● Improve consumption of OpenNTF assets ● Multi-user support Agenda

● IntroductionIntroduction ● XPagesXPages ● DominoDomino DesignerDesigner ● FuturesFutures ● Wrap Up ● YourYour Questions!Questions!

38 Resources

● IBM DeveloperWorks® – https://www.ibm.com/developerworks/lotus/

● OpenNTF – Open source developer community

● IBM educational offerings – http://www.ibm.com/software/lotus/training/n8deducationofferings.htm

● Lotus Notes and Domino Application Development wiki – http://www.lotus.com/ldd/ddwiki.nsf

● XPages.info – One stop shopping for XPages – http://xpages.info Resources - Mastering XPages

Factoids ... ● Comprehensive 7 Part, 785 page volume ● IBM Press publication ● Authored by lead members of XPages development team

● Features contributions from other key community members ● Covers all aspects of XPages application development ● Example-driven approach focusing on practical problems ● Includes sample NSF downloads ● Available online ● www.ibmpressbooks.com/bookstore/product.asp?isbn=0132486482 ● www.amazon.com/Mastering-XPages-Step-Step-Application/dp/0132486318 Contact information: Martin Donnelly [email protected]