SlideShare a Scribd company logo
1 of 75
Download to read offline
UKLUG 2012

 XPages
 Beyond the Basics
02. – 04.09.2012
Cardiff University, Wales

Ulrich Krause, industrial services AG
About: Ulrich Krause
§ Lotus Notes / Domino Administrator & Developer since V3
§ Business Application Developer
  Industrial Services, Nuremberg / Ratingen

§ OpenNTF Contributor


§ IBM Champion 2011/2012
§ Blog http://www.eknori.de
§ Notes Forum (http://www.atnotes.de)
Agenda
JavaScript/CSS Aggregation
§ Aggregates multiple Dojo modules, or multiple CSSs into a
  single file
   • a decrease in requests sent from the browser to the server
   • an increase in user performance, particularly in the context of
     networks with high latency
   • an increase in the speed of JS/CSS parsing from the browser
   • the freeing up of server connections to fulfill other requests




                                             On Sever: xsp.properties:
                                             xsp.resources.aggregate=true
JavaScript/CSS Aggregation
Enable Pre-Load for XPages
 • New feature as of Notes / Domino 8.5.3

 • Works on Server AND Client
 • XPagesPreload=1
    • Loads XPages runtime components at server startup
 • XPagesPreloadDB=Server!!Db.nsf/XPage.xsp,myLocalDb.nsf
    • Loads XPages runtime Java classes
JAVA Design Element (8.5.3)
§ A Java design element is created just like you create any
  other design element.
§ Categorization in the Designer views is shown by using the
  "/" character to demark levels
§ In the virtual file system, the class file appears separate
  from the .java file, under WebContentWEB-INFclasses
JAR Design Element ( 8.5.4 )
§ Work with packaged Java code/libraries that are included in
  the application NSF
§ Frees you from having to deploy the JARS to a server
  and/or include the source files uniquely in the application
  database
§ Automatically manages the classpath and places the JAR
  file into web-inf/lib
§ Only available to XPages
  applications
   •   automatically loaded by the
       XPages runtime
Faces-Config Design Element ( 8.5.4 )
Themes
§ Single Document Containing References to all your CSS
  Resources
   • resource sections reference the CSS files used
   • control section define what CSS classes are applied to specific
     controls
§ XML Based and Easy To Learn
   • creating a new theme document prefills sample content
§ Can Extend Other Themes
   • <theme extends="webstandard">
   • will automatically include all the resource and control definitions from
     that theme
   • built-in themes to extend
       • webstandard, notes, oneUI
Themes – Resources Basics
§ Can be simple
  • Just reference an internal CSS resource

§ Can be complex
  • Multiple CSS Resources
       • Internal
       • External
  •   Specify client Side JavaScript Resources
  •   Server Side does work, but is not available until page is rendered
  •   Specify ‘Rendered’ properties on resources
  •   Send certain CSS resources to certain web browsers
Themes - Complex
§ Specify If A Resource Is Only Used When Dojo Controls Are
  detected.
      • <resource dojoTheme=”true”>




§ Browser / Client Detection
      • <resource rendered="#{javascript:context.getUserAgent().isFirefox()}">
§ Reference Server Based / External Files
      • <href>/.ibmxspres/global/theme/oneui/IEReallySucks.css</href>
      • <href>http://www.someserver.com/resources/myCSS.css</href>
Theme Controls – The Basics
§ Theme Controls are used to define default values for
  properties
   • mode=”concat”
       • Will append the properties onto any existing properties
   • mode=”override”
       • Will override the properties with those defined in the control
§ Theme Control Names matchup with the types on controls
  on pages
   • or you can create your own Theme Control names
   • and then tell it what control to apply to using the themeID property



§ C:Program Files (x86)IBMLotusNotesxspnsfthemes
Open Themes Demo
Extension Library
§ The XPages Extension Library provides
  a set of new XPages artifacts that are
  ready to use. It contains a set of new
  XPages controls that supplement the
  existing ones by providing new
  capabilities like:
      • An application layout object for rendering the
        main frame
      • Improved UI components, like dialogs, in
        context forms, etc.
      • A set of data pickers (value and name pickers
        )
      • .... and a lot more!
XPages Extension Library OpenNTF
§ There are 2 sets of plugins included in OpenNTF delivery
      • “extlib” and “extlibx”
§ Each set is wrapped into its own XPages specific library
      • com.ibm.xsp.extlib.library
      • com.ibm.xsp.extlibx.library
§ The “extlibx” library contains eXperimental code
      • RDBMS support
      • Social Enabler and others
§ Experimental code can get added to the “extlib” library
   • once the code has matured and there is sufficient customer demand
§ XPages apps can depend on both the extlib and extlibx
  libraries
      • RDBMS access requires both dependencies
XPages ExtLib Deployment (Client)
§ Open Domino Designer.
§ In File -> Preferences for Domino Designer, check Enable Eclipse plug-
  in install if it is not already checked.
§ Unpack downloaded file
XPages ExtLib Deployment (Client)
§ Click
  File -> Application -> Install to
  open the Install/Update dialog
§ Select Search for new features to
  install and click Next
XPages ExtLib Deployment (Client)
§ Use the Add Zip/Jar Location
  button to add
  updateSiteOpenNTF-
  designer.zip if it is not already
  there.
§ Ensure that
  updateSiteOpenNTF-
  designer.zip is selected and
  click Finish
XPages ExtLib Deployment (Client)
§ Select all features if asked
§ Click the Next Button
XPages ExtLib Deployment (Client)
§ Accept the feature license
§ Click the Next Button
XPages ExtLib Deployment (Client)
§ Select Install this plug-in for each unsigned plug-in
§ Restart Domino Designer and Notes® after the update
  completes
Previewing Ext Lib features in a browser
§ Unpack updateSiteOpenNTF-designer.zip to
  dominoworkspaceapplicationseclipse in the Domino
  data directory.
§ Take care to strictly respect the directory hierarchy.
XPages ExtLib Deployment (Server)
§ Unpack updatesite.zip
§ Copy „features“ and „plugins“ to server
§ Stop / Start HTTP task




     <Domino-Data>dominoworkspaceapplicationseclipse
Verify Installation
§ To verify the plugins for the extlib and extlibx XPages
  libraries are properly installed, you should use the OSGI
  command on the server console
§ tell http osgi ss com.ibm.xsp.extlib
XPages ExtLib Deployment in Domino 8.5.3
§ Unzip download
§ Unzip "updateSiteOpenNTF-designer.zip„
§ Create a new application dbname.nsf on server
  Use template (Eclipse Update Site)
§ Modify ACL, Anonymous at least needs Reader Access.
§ Open Application
§ Click "Import Local Update Site„
§ OSGI_HTTP_DYNAMIC_BUNDLES=dbname.nsf



§ Start / Stop HTTP task on server
8.5.3 Upgrade Pack 1
§   http://www-10.lotus.com/ldd/ddwiki.nsf/xpViewCategories.xsp?
    lookupName=What%20is%20new%20in%20Domino%20Designer
    %208.5.3%20Upgrade%20Pack%201
8.5.3 Upgrade Pack 1
§ Uninstall
  existing
  components
  first !!
8.5.3 Upgrade Pack 1- What is installed?




     Source Code


  Designer Tooling


   App Templates                  App Templates                   App Templates*


   ExtLib Runtime                ExtLib Runtime                   ExtLib Runtime

* Discussion template installed with Notes client (no Teamroom)
XPages Extension Library Upgrade Pack 1
§   A set of Java plug-ins that greatly extend XPages functionality
§   Works on web, Notes client and mobile devices
§   Applicable to Domino, XWork Server, Notes, Domino Designer
§   Cool new Domino Designer enhancements for Ext Lib controls
§   Enhanced TeamRoom and Discussion templates
§   A fully accessible runtime library and templates
§   Implemented using the XPages Extensibility API
§   Built to IBM globalization standards
§   Online documentation
§   Runtime is localized
§   Officially supported by IBM
§   Includes source code !
Product, OpenSource, Upgrade Pack
§ Code is first released on OpenNTF
   • Available early and gives full transparency on what is being done
   • Facilitates quicker user evaluation, feedback and contributions
§ Pieces from OpenNTF are selected and delivered as UP
§ Upgrade Packs are supported by IBM
   • Upgrade Packs are delivered on a shorter release cycle than
     products
   • Upgrade Packs are integrated into the next revision of the product
   • Upgrade Packs do not modify the core base platform in any way !
Extension Library Demo Application




Open Extlib Demo
Debugging
dBar.info(message:String, context:String);
 dBar.warn(message:String, context:String);
 dBar.debug(message:String, context:String);
 dBar.error(message:String, context:String);

 dBar.dump( anyObject )

 dBar.startTimer( timerId:String );
 dBar.stopTimer( timerId:String );


http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=XPage%20Debug%20Toolbar
Debug Java Code / Extension Library
§   Install Eclipse
§   Install Debug Plugin
§   Install XPages SDK
§   Import Source Code
§   Configure Debug




    Set up Eclipse for XPages Development and debug Extension Library:
    http://planetlotus.org/profiles/openNTF_100945
com.ibm.xsp.extlib.util.ExtLibUtil
§ Get version of installed Extension Library

   • var v = com.ibm.xsp.extlib.util.ExtLibUtil.getExtLibVersion();
   • return "XPages ExtLib version: "+ v
com.ibm.xsp.extlib.util.ExtLibUtil
§ Contains many common methods
   • import static com.ibm.xsp.extlib.util.ExtLibUtil.*;


§ getCurrentSession(), getCurrentDatabase() …

§ Many more to access scoped variables etc.
XPages Relational Database Support
§ Leverages JDBC when connecting to relational databases
   • Accesses any database with a JDBC driver available
   • You could access
      • DB2,Oracle,MS SQL,MySQL,Derby... you name it!
   • You need to obtain the JDBC driver from the database vendor or
     third party provider
§ RDBMS data is accessed directly – no synchronization is
  performed with NSF
§ Xpages efficiently manages the connections through a
  connections pool
§ Uses NSF specific connections
§ The data is accessed using a set of dedicated data sources
XPages Relational Database Support
§ extlibx library adds 2 new data sources:
   • JDBC Query for Read Only access
   • JDBC RowSet for CRUD (create/read/update/delete) access.
      • Current implementation is based on com.sun.rowset.CachedRowSetImpl
      • Could be configured to use your own via the rowSetJavaClass property


§ Each of the provided new data sources could be easily
  utilized either by:
   • the core View Container Control (xp:viewPanel element)
   • the XPage itself (xp:view element)

§ The new data sources are now available in the Domino
  Designer Property Panel
XPages Relational Database Support




Open JDBC Demo
XPages Relational Database Support
§ To connect to your RDBMS you need to create a special file
  resource
   • .jdbc extension (for example “db2test.jdbc”)
   • specify the JDBC driver class to be used
   • the database host/port/name and users' credentials
Server Side JavaScript APIs and @Functions
§ Currently implemented @Functions:

   •   @JdbcInsert
   •   @JdbcUpdate
   •   @JdbcDelete
   •   @JdbcExecuteQuery
   •   @JdbcDbColumn
   •   @JdbcGetConnection



§ Used to simplify various RDBMS operations
§ Allows programmatic access to RDBMS data
XPages Relational Database Support
§ Do I need the extension Library ?????? …

§ What do we need??
§ Application
§ JDBC – Driver

   • MySQL http://dev.mysql.com/downloads/connector/j/
   • Available for all major databases


§ Code to access the database using the driver
  (Query / Insert / Update / Delete )
XPages Relational Database Support




                    MySQL Workbench

                       http://www.mysql.de/products/workbench/
XPages Relational Database Support
§ Install Driver (Client)
   • Open Package Explorer

   • Create Folder
       • WebContent WEB-INF  lib


   • Drag/Drop driver file into folder

   • Buildpath
       • RightClick  Build Path  Use as Source Folder
XPages Relational Database Support
§ Install Driver (Server)
   • datadominoworkspaceapplicationseclipseplugins
   • Stop / Start HTTP task
XPages Relational Database Support
§ de.eknori.jdbc.MySQL
   • executeQuery()
   • executeUpdate()
XPages Relational Database Support
§ JavaScript Library
RDBMS Future
§ XPages Extension Library OpenNTF and Relational support
  continues to evolve further and expected features in the
  pipeline include:
   • Global Domino server based RDBMS connection definition ability
   • Domino Designer tooling to work with the RDBMS tables' metadata
   • Even better JDBC connection pooling implementation using Apache
     DBCP
   • JDBC Query via REST services
   • Additional @Functions
§ Another new interesting OpenNTF project
   • JDBC Access for IBM Lotus Domino (DomSQL)
          – http://www.openntf.org/internal/home.nsf/project.xsp?
            action=openDocument&name=JDBC%20Access%20for%20IBM%20Lotus
            %20Domino
Domino JDBC Access (DomSQL)
§ Exposes Domino data as relational tables and provides
  easy access to the tables using a JDBC driver
   • Expand the query capability of Note/Domino (N/D)
      • Native N/D views lack some key features like dynamic queries and joins
        between views. The features Domino views lack are exactly those at
        which SQL excels
   • Reporting – Data analytics
      • SQL is the de facto standard used by reporting/data analysis tools.
        Making N/D data behave like relational data suddenly opens it to a large
        set of tools that understand JDBC
§ As of now, it only does read-only
§ Uses another very popular open source project called
  SQLite (http://www.sqlite.org/)
Domino JDBC Access (DomSQL)
§ How does it compare to NotesSQL?
  • NotesSQL is a full implementation including write operations, while
    DomSQL only allows read only operations
  • NotesSQL is based on top of ODBC while DomSQL uses JDBC.
  • DomSQL doesn't require any configuration
      • DomSQL is provided as a set of OSGi plug-ins and does not require any
        installation steps beyond installing the plug-ins
  • DomSQL not only exposes the views as is, but allows some fine
    grained customization of the tables, as well as a selection of the
    views being exposed.
  • DomSQL allows some SQL statements to be executed when the DB
    is first accessed, to create actual SQL views for example
  • The entire source code for DomSQL is provided. It only uses public
    Notes/Domino APIs
Domino JDBC Access (DomSQL)
§ Download
   • JDBC Access for IBM Lotus Domino
      • http://www.openntf.org/internal/home.nsf/project.xsp?
        action=openDocument&name=JDBC%20Access%20for%20IBM
        %20Lotus%20Domino

      • It currently only works on Windows, 32 and 64 bits; other platforms in
        future releases depending on “time, tests and use cases”


§ Prerequisites
   • OSGI Tasklet Service for IBM Lotus Domino
      • http://www.openntf.org/internal/home.nsf/project.xsp?
        action=openDocument&name=OSGI%20Tasklet%20Service%20for
        %20IBM%20Lotus%20Domino
Domino JDBC Access (DomSQL)
§ Installation: Read the documentation !!
      • There are some more things to download if you not already have them
        available …
   • OSGI Tasklet Service
   • Install JDBC Access
Domino JDBC Access (DomSQL)




Open DomSQL SampleDb
Domino JDBC Access (DomSQL) + BIRT
§ BIRT is an open source Eclipse-based reporting system that
  integrates with your Java/Java EE application to produce
  compelling reports




http://www.eclipse.org/birt/phoenix
Domino JDBC Access (DomSQL) + BIRT
§ Create configuration in your application
Domino JDBC Access (DomSQL) + BIRT
Domino JDBC Access (DomSQL) + BIRT
Virtual Tables
§ Structure of the .foosql XML file
Export Data to Excel
§ Using an XAgent
Embed an ExcelSheet in XPages
§ ZK Spreadsheet for Xpages (http://www.zkoss.org/)

 “In this project, we will integrate
 ZK fancy components (such as ZK
 Spreadsheet and ZK Pivottable)
 into XPages, providing extension
 libraries that can bridge the
 XPages to ZK so that you can use
 powerful ZK components in your
 XPages applications.” –Dennis
 Chen


http://www.openntf.org/internal/home.ns
f/project.xsp?
action=openDocument&name=ZK
%20Spreadsheet%20for%20XPages
JSF Lifecycle




Richard Hightower: JSF for NonBelievers - The JSF application lifecycle (2005)
http://www.ibm.com/developerworks/java/library/j-jsf2/index.html

Paul Withers: Eureka! The Padawan's Guide to the Dark Side of XPages
XPages Request Processing Lifecycle explorer
§ Study the Domino console output to learn what is happening
  with your requests




    Ulrich Krause: http://openntf.org/XSnippets.nsf/snippet.xsp?id=a-simple-
    lifecyclelistener-
Language Switcher
§ The problem: Switching the language resource file does not
  change the locale variable in <head>.
  Switching the Browser language does not switch the
  language resource.

§ The solution: Use a Phase Listener to enable multi
  language capability of an application.
  It does not depend on OS language or Browser language.
Edit Resources
§ Use a Notes Document to edit the content of resource files
      • Matt White, XPages 101
Workflow for XPages
§ Set of XPages controls that lets you integrate workflow
  capability into your XPages application




 http://www.openntf.org/internal/home.nsf/
 project.xsp?
 action=openDocument&name=Workflow
 %20for%20XPages
Running LotusScript in XPages
§ Wouldn‘t it be nice, if we could work with LotusScript (or any
  other language ) in XPages?
   • Sven Hasselbach, Wiesbaden, Germany
          – http://hasselba.ch/blog/?p=611




   • Jesse Gallagher
      • Ruby-In-XPages http://frostillic.us/f.nsf/
Create Your Own Control / Extension
§ Xpages Extensibility API
§   http://www-
    10.lotus.com/ldd/ddwiki.nsf/dx/Master_Table_of_Contents_for_XPages_Extensibility_APIs_Developer_
    Guide#What+is+the+XPages+Extensibility+API%3F



§ Create a control in an NSF
§   http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Creating_a_Java_Control_in_an_NSF



§ Create a control that can be used globally
§   http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Creating_an_XPages_Library


§ Extend SSJS @Functions
Resources
§ Making Domino Designer work like you want
      • http://ntf.gbs.com/nathan/escape.nsf/d6plinks/NTFN-8GP6RP
§ NotesIn9 ( David Leedy )
      • http://notesin9.com/
§ Xpages Development Forum
      • http://www-10.lotus.com/ldd/xpagesforum.nsf
§ Xpages 101 ( Matt White )
      • http://xpages101.net
§ OpenNTF
      • http://openntf.org
§ Planet Lotus
      • http://planetlotus.org
OpenNTF Code Snippets
§ http://openntf.org/XSnippets.nsf/home.xsp
   • Download „XSnippets“ http://xsnippets.openntf.org/
Books of Interest
Q&A
•   Blog: http://www.eknori.de
•   Sametime: bleedyellow.com
•   Twitter: eknori
•   Stackoverflow
UKLUG 2012 - XPages, Beyond the basics

More Related Content

What's hot

Bootstrap4XPages
Bootstrap4XPagesBootstrap4XPages
Bootstrap4XPagesTeamstudio
 
Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Mark Leusink
 
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014Mark Leusink
 
ILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates EverywhereILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates EverywhereKevin Pettitt
 
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Serdar Basegmez
 
CollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPagesCollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPagesJesse Gallagher
 
Getting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APIGetting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APITeamstudio
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoSerdar Basegmez
 
DanNotes XPages Mobile Controls
DanNotes XPages Mobile ControlsDanNotes XPages Mobile Controls
DanNotes XPages Mobile ControlsPaul Withers
 
JMP402 Master Class: Managed beans and XPages: Your Time Is Now
JMP402 Master Class: Managed beans and XPages: Your Time Is NowJMP402 Master Class: Managed beans and XPages: Your Time Is Now
JMP402 Master Class: Managed beans and XPages: Your Time Is NowRussell Maher
 
Ask the XPages Experts
Ask the XPages ExpertsAsk the XPages Experts
Ask the XPages ExpertsTeamstudio
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xGeertjan Wielenga
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Frank van der Linden
 
How adding a further tool can be a good thing
How adding a further tool can be a good thingHow adding a further tool can be a good thing
How adding a further tool can be a good thingBelsoft
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience NeededKathy Brown
 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...Howard Greenberg
 
Move Your XPages Applications to the Fast Lane
Move Your XPages Applications to the Fast LaneMove Your XPages Applications to the Fast Lane
Move Your XPages Applications to the Fast LaneTeamstudio
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Paul Withers
 

What's hot (20)

Bootstrap4XPages
Bootstrap4XPagesBootstrap4XPages
Bootstrap4XPages
 
Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)
 
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
 
ILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates EverywhereILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates Everywhere
 
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
 
CollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPagesCollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPages
 
Getting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APIGetting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino API
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
 
DanNotes XPages Mobile Controls
DanNotes XPages Mobile ControlsDanNotes XPages Mobile Controls
DanNotes XPages Mobile Controls
 
Netbeans IDE & Platform
Netbeans IDE & PlatformNetbeans IDE & Platform
Netbeans IDE & Platform
 
JMP402 Master Class: Managed beans and XPages: Your Time Is Now
JMP402 Master Class: Managed beans and XPages: Your Time Is NowJMP402 Master Class: Managed beans and XPages: Your Time Is Now
JMP402 Master Class: Managed beans and XPages: Your Time Is Now
 
Ask the XPages Experts
Ask the XPages ExpertsAsk the XPages Experts
Ask the XPages Experts
 
Pantheon basics
Pantheon basicsPantheon basics
Pantheon basics
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.x
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
 
How adding a further tool can be a good thing
How adding a further tool can be a good thingHow adding a further tool can be a good thing
How adding a further tool can be a good thing
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience Needed
 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
 
Move Your XPages Applications to the Fast Lane
Move Your XPages Applications to the Fast LaneMove Your XPages Applications to the Fast Lane
Move Your XPages Applications to the Fast Lane
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications
 

Viewers also liked

La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!Ulrich Krause
 
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware PlatformIBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware PlatformUlrich Krause
 
Life In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesLife In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesUlrich Krause
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the BasicsUlrich Krause
 
Dnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basicDnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basicUlrich Krause
 
Life in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPagesLife in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPagesUlrich Krause
 
Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)Ulrich Krause
 
AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 PerformanceUlrich Krause
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookUlrich Krause
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondUlrich Krause
 
DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011Ulrich Krause
 

Viewers also liked (14)

XPages - The Basics
XPages - The BasicsXPages - The Basics
XPages - The Basics
 
Ec13 xpages-basic
Ec13 xpages-basicEc13 xpages-basic
Ec13 xpages-basic
 
La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!
 
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware PlatformIBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
 
Life In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesLife In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPages
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
Dnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basicDnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basic
 
XPages Performance
XPages PerformanceXPages Performance
XPages Performance
 
Life in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPagesLife in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPages
 
Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)
 
AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 Performance
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
 
DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011
 

Similar to UKLUG 2012 - XPages, Beyond the basics

IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...Paul Withers
 
Apex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEXApex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEXSergei Martens
 
APEX Application Lifecycle and Deployment 20220714.pdf
APEX Application Lifecycle and Deployment 20220714.pdfAPEX Application Lifecycle and Deployment 20220714.pdf
APEX Application Lifecycle and Deployment 20220714.pdfRichard Martens
 
DevOps with Elastic Beanstalk - TCCC-2014
DevOps with Elastic Beanstalk - TCCC-2014DevOps with Elastic Beanstalk - TCCC-2014
DevOps with Elastic Beanstalk - TCCC-2014scolestock
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersRob Windsor
 
Lecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdfLecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdfShaimaaMohamedGalal
 
Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - JavaAnkit Chohan
 
Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1asim78
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...E. Camden Fisher
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Coremohamed elshafey
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScriptkoppenolski
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topicGourav Varma
 
BP-7 Share Customization Best Practices
BP-7 Share Customization Best PracticesBP-7 Share Customization Best Practices
BP-7 Share Customization Best PracticesAlfresco Software
 
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...Anupam Ranku
 
Windows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementWindows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementSharkrit JOBBO
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityTeamstudio
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeededm00se
 
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalk
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalkDistribua, gerencie e escale suas aplicações com o aws elastic beanstalk
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalkAmazon Web Services LATAM
 

Similar to UKLUG 2012 - XPages, Beyond the basics (20)

IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
 
Apex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEXApex world 2018 continuously delivering APEX
Apex world 2018 continuously delivering APEX
 
APEX Application Lifecycle and Deployment 20220714.pdf
APEX Application Lifecycle and Deployment 20220714.pdfAPEX Application Lifecycle and Deployment 20220714.pdf
APEX Application Lifecycle and Deployment 20220714.pdf
 
DevOps with Elastic Beanstalk - TCCC-2014
DevOps with Elastic Beanstalk - TCCC-2014DevOps with Elastic Beanstalk - TCCC-2014
DevOps with Elastic Beanstalk - TCCC-2014
 
Devops
DevopsDevops
Devops
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint Developers
 
Lecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdfLecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdf
 
Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - Java
 
Presentation
PresentationPresentation
Presentation
 
Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1Asp.Net 3 5 Part 1
Asp.Net 3 5 Part 1
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Core
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScript
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
 
BP-7 Share Customization Best Practices
BP-7 Share Customization Best PracticesBP-7 Share Customization Best Practices
BP-7 Share Customization Best Practices
 
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
 
Windows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementWindows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server Management
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
 
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalk
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalkDistribua, gerencie e escale suas aplicações com o aws elastic beanstalk
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalk
 

More from Ulrich Krause

What is new in Notes & Domino Deleopment V10.x
What is new in Notes & Domino Deleopment V10.xWhat is new in Notes & Domino Deleopment V10.x
What is new in Notes & Domino Deleopment V10.xUlrich Krause
 
When Plato Left The Cave - A brief history of Lotus Notes
When Plato Left The Cave - A brief history of Lotus NotesWhen Plato Left The Cave - A brief history of Lotus Notes
When Plato Left The Cave - A brief history of Lotus NotesUlrich Krause
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & DominoUlrich Krause
 
The Lotus Code Cookbook
The Lotus Code CookbookThe Lotus Code Cookbook
The Lotus Code CookbookUlrich Krause
 
AdminCamp2010, Closing General Session
AdminCamp2010, Closing General SessionAdminCamp2010, Closing General Session
AdminCamp2010, Closing General SessionUlrich Krause
 
Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Ulrich Krause
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicateUlrich Krause
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for BeginnersUlrich Krause
 

More from Ulrich Krause (11)

What is new in Notes & Domino Deleopment V10.x
What is new in Notes & Domino Deleopment V10.xWhat is new in Notes & Domino Deleopment V10.x
What is new in Notes & Domino Deleopment V10.x
 
When Plato Left The Cave - A brief history of Lotus Notes
When Plato Left The Cave - A brief history of Lotus NotesWhen Plato Left The Cave - A brief history of Lotus Notes
When Plato Left The Cave - A brief history of Lotus Notes
 
EntwicklerCamp CGS
EntwicklerCamp CGSEntwicklerCamp CGS
EntwicklerCamp CGS
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
The Lotus Code Cookbook
The Lotus Code CookbookThe Lotus Code Cookbook
The Lotus Code Cookbook
 
Ccd
CcdCcd
Ccd
 
AdminCamp2010, Closing General Session
AdminCamp2010, Closing General SessionAdminCamp2010, Closing General Session
AdminCamp2010, Closing General Session
 
Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicate
 
Daos
DaosDaos
Daos
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 

Recently uploaded

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

UKLUG 2012 - XPages, Beyond the basics

  • 1. UKLUG 2012 XPages Beyond the Basics 02. – 04.09.2012 Cardiff University, Wales Ulrich Krause, industrial services AG
  • 2. About: Ulrich Krause § Lotus Notes / Domino Administrator & Developer since V3 § Business Application Developer Industrial Services, Nuremberg / Ratingen § OpenNTF Contributor § IBM Champion 2011/2012 § Blog http://www.eknori.de § Notes Forum (http://www.atnotes.de)
  • 4. JavaScript/CSS Aggregation § Aggregates multiple Dojo modules, or multiple CSSs into a single file • a decrease in requests sent from the browser to the server • an increase in user performance, particularly in the context of networks with high latency • an increase in the speed of JS/CSS parsing from the browser • the freeing up of server connections to fulfill other requests On Sever: xsp.properties: xsp.resources.aggregate=true
  • 6. Enable Pre-Load for XPages • New feature as of Notes / Domino 8.5.3 • Works on Server AND Client • XPagesPreload=1 • Loads XPages runtime components at server startup • XPagesPreloadDB=Server!!Db.nsf/XPage.xsp,myLocalDb.nsf • Loads XPages runtime Java classes
  • 7. JAVA Design Element (8.5.3) § A Java design element is created just like you create any other design element. § Categorization in the Designer views is shown by using the "/" character to demark levels § In the virtual file system, the class file appears separate from the .java file, under WebContentWEB-INFclasses
  • 8. JAR Design Element ( 8.5.4 ) § Work with packaged Java code/libraries that are included in the application NSF § Frees you from having to deploy the JARS to a server and/or include the source files uniquely in the application database § Automatically manages the classpath and places the JAR file into web-inf/lib § Only available to XPages applications • automatically loaded by the XPages runtime
  • 10. Themes § Single Document Containing References to all your CSS Resources • resource sections reference the CSS files used • control section define what CSS classes are applied to specific controls § XML Based and Easy To Learn • creating a new theme document prefills sample content § Can Extend Other Themes • <theme extends="webstandard"> • will automatically include all the resource and control definitions from that theme • built-in themes to extend • webstandard, notes, oneUI
  • 11. Themes – Resources Basics § Can be simple • Just reference an internal CSS resource § Can be complex • Multiple CSS Resources • Internal • External • Specify client Side JavaScript Resources • Server Side does work, but is not available until page is rendered • Specify ‘Rendered’ properties on resources • Send certain CSS resources to certain web browsers
  • 12. Themes - Complex § Specify If A Resource Is Only Used When Dojo Controls Are detected. • <resource dojoTheme=”true”> § Browser / Client Detection • <resource rendered="#{javascript:context.getUserAgent().isFirefox()}"> § Reference Server Based / External Files • <href>/.ibmxspres/global/theme/oneui/IEReallySucks.css</href> • <href>http://www.someserver.com/resources/myCSS.css</href>
  • 13. Theme Controls – The Basics § Theme Controls are used to define default values for properties • mode=”concat” • Will append the properties onto any existing properties • mode=”override” • Will override the properties with those defined in the control § Theme Control Names matchup with the types on controls on pages • or you can create your own Theme Control names • and then tell it what control to apply to using the themeID property § C:Program Files (x86)IBMLotusNotesxspnsfthemes
  • 15. Extension Library § The XPages Extension Library provides a set of new XPages artifacts that are ready to use. It contains a set of new XPages controls that supplement the existing ones by providing new capabilities like: • An application layout object for rendering the main frame • Improved UI components, like dialogs, in context forms, etc. • A set of data pickers (value and name pickers ) • .... and a lot more!
  • 16. XPages Extension Library OpenNTF § There are 2 sets of plugins included in OpenNTF delivery • “extlib” and “extlibx” § Each set is wrapped into its own XPages specific library • com.ibm.xsp.extlib.library • com.ibm.xsp.extlibx.library § The “extlibx” library contains eXperimental code • RDBMS support • Social Enabler and others § Experimental code can get added to the “extlib” library • once the code has matured and there is sufficient customer demand § XPages apps can depend on both the extlib and extlibx libraries • RDBMS access requires both dependencies
  • 17. XPages ExtLib Deployment (Client) § Open Domino Designer. § In File -> Preferences for Domino Designer, check Enable Eclipse plug- in install if it is not already checked. § Unpack downloaded file
  • 18. XPages ExtLib Deployment (Client) § Click File -> Application -> Install to open the Install/Update dialog § Select Search for new features to install and click Next
  • 19. XPages ExtLib Deployment (Client) § Use the Add Zip/Jar Location button to add updateSiteOpenNTF- designer.zip if it is not already there. § Ensure that updateSiteOpenNTF- designer.zip is selected and click Finish
  • 20. XPages ExtLib Deployment (Client) § Select all features if asked § Click the Next Button
  • 21. XPages ExtLib Deployment (Client) § Accept the feature license § Click the Next Button
  • 22. XPages ExtLib Deployment (Client) § Select Install this plug-in for each unsigned plug-in § Restart Domino Designer and Notes® after the update completes
  • 23. Previewing Ext Lib features in a browser § Unpack updateSiteOpenNTF-designer.zip to dominoworkspaceapplicationseclipse in the Domino data directory. § Take care to strictly respect the directory hierarchy.
  • 24. XPages ExtLib Deployment (Server) § Unpack updatesite.zip § Copy „features“ and „plugins“ to server § Stop / Start HTTP task <Domino-Data>dominoworkspaceapplicationseclipse
  • 25. Verify Installation § To verify the plugins for the extlib and extlibx XPages libraries are properly installed, you should use the OSGI command on the server console § tell http osgi ss com.ibm.xsp.extlib
  • 26. XPages ExtLib Deployment in Domino 8.5.3 § Unzip download § Unzip "updateSiteOpenNTF-designer.zip„ § Create a new application dbname.nsf on server Use template (Eclipse Update Site) § Modify ACL, Anonymous at least needs Reader Access. § Open Application § Click "Import Local Update Site„ § OSGI_HTTP_DYNAMIC_BUNDLES=dbname.nsf § Start / Stop HTTP task on server
  • 27. 8.5.3 Upgrade Pack 1 § http://www-10.lotus.com/ldd/ddwiki.nsf/xpViewCategories.xsp? lookupName=What%20is%20new%20in%20Domino%20Designer %208.5.3%20Upgrade%20Pack%201
  • 28. 8.5.3 Upgrade Pack 1 § Uninstall existing components first !!
  • 29. 8.5.3 Upgrade Pack 1- What is installed? Source Code Designer Tooling App Templates App Templates App Templates* ExtLib Runtime ExtLib Runtime ExtLib Runtime * Discussion template installed with Notes client (no Teamroom)
  • 30. XPages Extension Library Upgrade Pack 1 § A set of Java plug-ins that greatly extend XPages functionality § Works on web, Notes client and mobile devices § Applicable to Domino, XWork Server, Notes, Domino Designer § Cool new Domino Designer enhancements for Ext Lib controls § Enhanced TeamRoom and Discussion templates § A fully accessible runtime library and templates § Implemented using the XPages Extensibility API § Built to IBM globalization standards § Online documentation § Runtime is localized § Officially supported by IBM § Includes source code !
  • 31. Product, OpenSource, Upgrade Pack § Code is first released on OpenNTF • Available early and gives full transparency on what is being done • Facilitates quicker user evaluation, feedback and contributions § Pieces from OpenNTF are selected and delivered as UP § Upgrade Packs are supported by IBM • Upgrade Packs are delivered on a shorter release cycle than products • Upgrade Packs are integrated into the next revision of the product • Upgrade Packs do not modify the core base platform in any way !
  • 32. Extension Library Demo Application Open Extlib Demo
  • 34. dBar.info(message:String, context:String); dBar.warn(message:String, context:String); dBar.debug(message:String, context:String); dBar.error(message:String, context:String); dBar.dump( anyObject ) dBar.startTimer( timerId:String ); dBar.stopTimer( timerId:String ); http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=XPage%20Debug%20Toolbar
  • 35. Debug Java Code / Extension Library § Install Eclipse § Install Debug Plugin § Install XPages SDK § Import Source Code § Configure Debug Set up Eclipse for XPages Development and debug Extension Library: http://planetlotus.org/profiles/openNTF_100945
  • 36. com.ibm.xsp.extlib.util.ExtLibUtil § Get version of installed Extension Library • var v = com.ibm.xsp.extlib.util.ExtLibUtil.getExtLibVersion(); • return "XPages ExtLib version: "+ v
  • 37. com.ibm.xsp.extlib.util.ExtLibUtil § Contains many common methods • import static com.ibm.xsp.extlib.util.ExtLibUtil.*; § getCurrentSession(), getCurrentDatabase() … § Many more to access scoped variables etc.
  • 38. XPages Relational Database Support § Leverages JDBC when connecting to relational databases • Accesses any database with a JDBC driver available • You could access • DB2,Oracle,MS SQL,MySQL,Derby... you name it! • You need to obtain the JDBC driver from the database vendor or third party provider § RDBMS data is accessed directly – no synchronization is performed with NSF § Xpages efficiently manages the connections through a connections pool § Uses NSF specific connections § The data is accessed using a set of dedicated data sources
  • 39. XPages Relational Database Support § extlibx library adds 2 new data sources: • JDBC Query for Read Only access • JDBC RowSet for CRUD (create/read/update/delete) access. • Current implementation is based on com.sun.rowset.CachedRowSetImpl • Could be configured to use your own via the rowSetJavaClass property § Each of the provided new data sources could be easily utilized either by: • the core View Container Control (xp:viewPanel element) • the XPage itself (xp:view element) § The new data sources are now available in the Domino Designer Property Panel
  • 40. XPages Relational Database Support Open JDBC Demo
  • 41. XPages Relational Database Support § To connect to your RDBMS you need to create a special file resource • .jdbc extension (for example “db2test.jdbc”) • specify the JDBC driver class to be used • the database host/port/name and users' credentials
  • 42. Server Side JavaScript APIs and @Functions § Currently implemented @Functions: • @JdbcInsert • @JdbcUpdate • @JdbcDelete • @JdbcExecuteQuery • @JdbcDbColumn • @JdbcGetConnection § Used to simplify various RDBMS operations § Allows programmatic access to RDBMS data
  • 43. XPages Relational Database Support § Do I need the extension Library ?????? … § What do we need?? § Application § JDBC – Driver • MySQL http://dev.mysql.com/downloads/connector/j/ • Available for all major databases § Code to access the database using the driver (Query / Insert / Update / Delete )
  • 44. XPages Relational Database Support MySQL Workbench http://www.mysql.de/products/workbench/
  • 45. XPages Relational Database Support § Install Driver (Client) • Open Package Explorer • Create Folder • WebContent WEB-INF  lib • Drag/Drop driver file into folder • Buildpath • RightClick  Build Path  Use as Source Folder
  • 46. XPages Relational Database Support § Install Driver (Server) • datadominoworkspaceapplicationseclipseplugins • Stop / Start HTTP task
  • 47. XPages Relational Database Support § de.eknori.jdbc.MySQL • executeQuery() • executeUpdate()
  • 48. XPages Relational Database Support § JavaScript Library
  • 49.
  • 50. RDBMS Future § XPages Extension Library OpenNTF and Relational support continues to evolve further and expected features in the pipeline include: • Global Domino server based RDBMS connection definition ability • Domino Designer tooling to work with the RDBMS tables' metadata • Even better JDBC connection pooling implementation using Apache DBCP • JDBC Query via REST services • Additional @Functions § Another new interesting OpenNTF project • JDBC Access for IBM Lotus Domino (DomSQL) – http://www.openntf.org/internal/home.nsf/project.xsp? action=openDocument&name=JDBC%20Access%20for%20IBM%20Lotus %20Domino
  • 51. Domino JDBC Access (DomSQL) § Exposes Domino data as relational tables and provides easy access to the tables using a JDBC driver • Expand the query capability of Note/Domino (N/D) • Native N/D views lack some key features like dynamic queries and joins between views. The features Domino views lack are exactly those at which SQL excels • Reporting – Data analytics • SQL is the de facto standard used by reporting/data analysis tools. Making N/D data behave like relational data suddenly opens it to a large set of tools that understand JDBC § As of now, it only does read-only § Uses another very popular open source project called SQLite (http://www.sqlite.org/)
  • 52. Domino JDBC Access (DomSQL) § How does it compare to NotesSQL? • NotesSQL is a full implementation including write operations, while DomSQL only allows read only operations • NotesSQL is based on top of ODBC while DomSQL uses JDBC. • DomSQL doesn't require any configuration • DomSQL is provided as a set of OSGi plug-ins and does not require any installation steps beyond installing the plug-ins • DomSQL not only exposes the views as is, but allows some fine grained customization of the tables, as well as a selection of the views being exposed. • DomSQL allows some SQL statements to be executed when the DB is first accessed, to create actual SQL views for example • The entire source code for DomSQL is provided. It only uses public Notes/Domino APIs
  • 53. Domino JDBC Access (DomSQL) § Download • JDBC Access for IBM Lotus Domino • http://www.openntf.org/internal/home.nsf/project.xsp? action=openDocument&name=JDBC%20Access%20for%20IBM %20Lotus%20Domino • It currently only works on Windows, 32 and 64 bits; other platforms in future releases depending on “time, tests and use cases” § Prerequisites • OSGI Tasklet Service for IBM Lotus Domino • http://www.openntf.org/internal/home.nsf/project.xsp? action=openDocument&name=OSGI%20Tasklet%20Service%20for %20IBM%20Lotus%20Domino
  • 54. Domino JDBC Access (DomSQL) § Installation: Read the documentation !! • There are some more things to download if you not already have them available … • OSGI Tasklet Service • Install JDBC Access
  • 55. Domino JDBC Access (DomSQL) Open DomSQL SampleDb
  • 56. Domino JDBC Access (DomSQL) + BIRT § BIRT is an open source Eclipse-based reporting system that integrates with your Java/Java EE application to produce compelling reports http://www.eclipse.org/birt/phoenix
  • 57. Domino JDBC Access (DomSQL) + BIRT § Create configuration in your application
  • 58. Domino JDBC Access (DomSQL) + BIRT
  • 59. Domino JDBC Access (DomSQL) + BIRT
  • 60. Virtual Tables § Structure of the .foosql XML file
  • 61.
  • 62. Export Data to Excel § Using an XAgent
  • 63. Embed an ExcelSheet in XPages § ZK Spreadsheet for Xpages (http://www.zkoss.org/) “In this project, we will integrate ZK fancy components (such as ZK Spreadsheet and ZK Pivottable) into XPages, providing extension libraries that can bridge the XPages to ZK so that you can use powerful ZK components in your XPages applications.” –Dennis Chen http://www.openntf.org/internal/home.ns f/project.xsp? action=openDocument&name=ZK %20Spreadsheet%20for%20XPages
  • 64. JSF Lifecycle Richard Hightower: JSF for NonBelievers - The JSF application lifecycle (2005) http://www.ibm.com/developerworks/java/library/j-jsf2/index.html Paul Withers: Eureka! The Padawan's Guide to the Dark Side of XPages
  • 65. XPages Request Processing Lifecycle explorer § Study the Domino console output to learn what is happening with your requests Ulrich Krause: http://openntf.org/XSnippets.nsf/snippet.xsp?id=a-simple- lifecyclelistener-
  • 66. Language Switcher § The problem: Switching the language resource file does not change the locale variable in <head>. Switching the Browser language does not switch the language resource. § The solution: Use a Phase Listener to enable multi language capability of an application. It does not depend on OS language or Browser language.
  • 67. Edit Resources § Use a Notes Document to edit the content of resource files • Matt White, XPages 101
  • 68. Workflow for XPages § Set of XPages controls that lets you integrate workflow capability into your XPages application http://www.openntf.org/internal/home.nsf/ project.xsp? action=openDocument&name=Workflow %20for%20XPages
  • 69. Running LotusScript in XPages § Wouldn‘t it be nice, if we could work with LotusScript (or any other language ) in XPages? • Sven Hasselbach, Wiesbaden, Germany – http://hasselba.ch/blog/?p=611 • Jesse Gallagher • Ruby-In-XPages http://frostillic.us/f.nsf/
  • 70. Create Your Own Control / Extension § Xpages Extensibility API § http://www- 10.lotus.com/ldd/ddwiki.nsf/dx/Master_Table_of_Contents_for_XPages_Extensibility_APIs_Developer_ Guide#What+is+the+XPages+Extensibility+API%3F § Create a control in an NSF § http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Creating_a_Java_Control_in_an_NSF § Create a control that can be used globally § http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Creating_an_XPages_Library § Extend SSJS @Functions
  • 71. Resources § Making Domino Designer work like you want • http://ntf.gbs.com/nathan/escape.nsf/d6plinks/NTFN-8GP6RP § NotesIn9 ( David Leedy ) • http://notesin9.com/ § Xpages Development Forum • http://www-10.lotus.com/ldd/xpagesforum.nsf § Xpages 101 ( Matt White ) • http://xpages101.net § OpenNTF • http://openntf.org § Planet Lotus • http://planetlotus.org
  • 72. OpenNTF Code Snippets § http://openntf.org/XSnippets.nsf/home.xsp • Download „XSnippets“ http://xsnippets.openntf.org/
  • 74. Q&A • Blog: http://www.eknori.de • Sametime: bleedyellow.com • Twitter: eknori • Stackoverflow