Presented by Jeff Byrd
Who am I
XPages Resources
What are XPages
Why Use XPages
XPages Design Elements
XPages CRUD
XPages Template
Senior Developer at MAXIMUS Inc.
Lotus Notes developer since ver. 3.
Blogger at www.DominoTricks.com
◦ Current series is “Roll Your Own Rest Service”.
Developing xPages for 2 Years.
Twitter @byrd1089
www.notesin9.com
◦ Created by David Leedy
◦ 27 + hours of FREE videos on XPages
◦ Check out “Introduction to XPages”
Xpages.info
◦ Daily aggregate of XPages blogs
◦ XPages Snippets
OpenNTF.org – Free Source Code
PlanetLotus.org
StackOverflow.com – Filter for XPages
The Rabbit Hole – ( nathantfreeman.wordpress.com)
◦ Taming IBM Domino Designer
New Design Elements and tools for creating web applications
Embraces standard languages
◦ HTML, CSS, JavaScript, Java
Built on top of Java Server Faces (JSF)
◦ XPages is a JSF wrapper for Domino Developers
Everything you code gets placed inside of Java Objects
◦ You never need to deal with those Java Objects though!
You do not NEED to know Java to build XPages apps
◦ But it will help and should be something to strive for
◦ Java in XPages is somewhat similar to LotusScript Custom Classes
Separates UI from Data
◦ Allows multiple Data sources per Page
◦ Easy access to data from other databases
Improves Data capabilities
◦ Allows @DbLookup from inside a view
Similar to a JOIN in relational DB’s.
◦ Use Java Objects (Beans) as data source
◦ Iterate your data anyway you want via “Repeat Control”
Runs inside Notes Client (XPiNC - XPages in Notes Client)
◦ Replicate your web applications.
XPage
◦ Similar to Notes Form
But not really as you can have none or multiple datasources
Data source can be:
NotesDocuments, NotesViews,Java Beans, and more...
◦ It’s often used more as a container to hold custom controls
Custom Control
◦ Similar to Subform
But not really as you can have none or multiple datasources
Just like XPages
Can be used more then once on a page
Can accept Parameters that you define later
Allows high reusability
◦ Can not be viewed in the browser. They only work on an XPage
◦ Often Custom Controls are used to contain the graphical layout of your app
Sever Side JavaScript
◦ Can be on the page or in a library.
◦ Library allows you to create reusable SSJS functions using
◦ It’s not really “JavaScript” but it has the same syntax
This allows additional capability
@Formulas
Domino Object Model
Java Objects
Themes
◦ You can assign a CCS file and it’ll be available on every page of your app
Like a Global “Use” statement in LotusScript
◦ Allow consistent look and feel across apps
◦ oneUI and WebStandard are built in
◦ You can create your own
But always extend a server theme as they contain needed Dojo files
◦ Themes can override controls as well
More advanced but very powerful
Scoped Variables
◦ In memory objects to store data
◦ No need to rely on cookies / URL parsing
but you still can if you want applicationScope
◦ Like a database profile document
◦ Available to all users
Store Application settings and common lookups that all users need sessionScope
◦ Life of the user session
Store things specific to the user.
Preferences, shopping cart, etc...
viewScope
◦ Life of the current Page
Store value of a current search, or items from a particular document requestScope
◦ Life of a single request
◦ Very short - just for data you’re currently processing
Do NOT try and put Domino Objects (document, view, etc...) in Scope
◦ They will likely get recycled when you least expect it.
◦ For a document, just store a UNID as a string and grab the document again
I’m using Domino and Designer 8.5.3
◦ Latest version is 9.0
◦ Do not try Xpages development with any version below version 8.5.1 and you should be using the Update Pack or OpenNTF Extension Library
Update Pack is available from IBM for 8.5.
Ext. Library is at http://extlib.openntf.org/
What is the Update Pack / Extension Library?
◦ They are add-ons to the Domino Server / Designer
◦ Adds over 50 new tools and controls designed to speed up your application
Tools for layout, Dojo integration, etc.
Application layout control.
◦ Extends the core product without having to wait for next version
Let’s build a quick Contacts Application
◦ One Form – Contact
◦ One View – Contacts
◦ Custom Control – frmContact
◦ Custom Control – vwContacts
◦ xPage – Contact.xsp
◦ xPage – Contacts.xsp
◦ Theme – Blueprint CSS
Things we haven’t talked about
Server Side Java Script (SSJS)
Client Side Java Script (CSJS)
Repeat Controls
Managed Beans
Java!