SlideShare a Scribd company logo
1




       Learning To Run
XPages for Lotus Notes Client Developers




                           Presenter: Kathy Brown
Who am I
• Kathy Brown
  • Lotus Notes Developer, primarily for the Notes client, until recently
  • Co-author of the Lotus User Group Notes Developer Tips Newsletter
  • Speaker at Lotusphere and various LUGs
  • Twitter addict
  • Runner
What this session is...
 • Tips and transitions for Notes client developers
What this session is not...
 • A step-by-step how to
 • Best practices
 • Advanced topics
Building Blocks
 •   Forms
 •   Views
 •   Subforms
 •   Framesets
 •   Outlines
 •   Pages
Building Blocks
 •   XPages
 •   Core Controls
 •   Container Controls
 •   Custom Controls
Separation of Data and UI
 • Traditional Notes Dev
   • Forms combine data and UI




 • XPages
   • Separate data from UI
     • Create forms just as data
       holders, no need to prettify
     • Create views for lookups, no
       need to prettify (no need for
       dual sorting!)
Customer Name
Customer ID
Customer Address
Customer Purchases


                 Customer Name
                 Customer Address
                 Widget ID
                 Widget Name
                 Widget Description


                                      Widget ID
                                      Widget Name
                                      Widget Description
                                      Widget Image
Data Binding
 • Because data and UI are separate, we need to “bind” data to our
   elements
 • Xpage
   • Can define a domino document or view as a data source
 • Custom Controls and Container Controls like Panel
   • Can define a domino document or view as a data source
 • Repeat Controls and certain Core Controls
   • Use data binding
Data Binding
 • Simple data binding
   • Select a source from a list, or add another source
   • Select an item to bind to
     • Example: select a document from the source and a field from that
       document to bind to
 • Javascript
   • Utilize the JavaScript editor to write Server Side Javascript (SSJS)
     • Example:
     database.getView(“movies”).getAllDocumentsByKey(genre);
 • Advanced
   • Use expression language, scoped variable, component parameter or
     custom code for data binding
DDE
Quick Tip
 • Window --> Reset Perspective is your friend
The Outline
 • Easily locate items on the Xpage
 • Drag & drop items to new locations
Source
• Easily change values or properties
• See the Matrix
Design Pane
Properties
Core Controls
What’s with those “group” controls?
Something familiar*
 •   Edit Box
 •   Rich Text
 •   Multiline Edit Box
 •   List Box
 •   Combo Box




 * Sort of
Quick Tip
 • When adding @formula values for a combo box or list box, the default
   condition is “Compute on Page Load”. Remember to change that to
   “Compute Dynamically” in the script editor



                                   OR go to the Source tab and change the
                                   “$” to “#”
More Core Controls
Core Controls - Label
 • Why use a label?

 • More control
 • More programmability
Core Controls - Errors
 • Use to display ... errors
Panel Control
 • Sort of, kind of, like a layer...
       on steroids
 • Or like an embedded view...
       on steroids
 • Or like if a layer and an embedded view had a baby
Repeat Controls
 • No traditional Notes Client equivalent
      and that’s a good thing

 • A repeat control allows you place controls inside it (like Edit boxes or
   computed values, but also more repeat controls!) that repeat on the
   page
Container Controls
 •   Include Page - allows you to include an Xpage on another Xpage
 •   Table - we all know about this one!
 •   View - kind of like an embedded view, but better
 •   Tabbed Panel - multiple panels with...wait for it...tabs!
 •   Section - we know about these, too
Custom Controls
 • Closest traditional equivalent are subforms
 • Create custom controls to hold other controls stored together
 • Can be a “create once, use multiple times for footers and headers, for
   example
Quick Tip
 • CTRL+SHIFT+F in the source
@Formula in Xpages
• @Formula is available for use in Server Side JavaScript (SSJS)
• Not all @Formula are supported in Xpages
@Functions Not Supported in Xpages
 @AbstractSimple     @CheckAlarms          @DeleteField         @DoWhile

 @Accessed           @CheckFormulaSyntax   @DialogBox           @EditECL

 @ACos               @Command              @DocChildren         @EditUserECL

 @AddToFolder        @Compare              @DocDescendants      @EnableAlarms

 @AdminECLIsLocked   @ConfigFile            @DocFields           @Environment

 @All                @Cos                  @DocLength           @Eval

 @AllChildren        @DB2Schema            @DocLevel            @Exp

 @AllDescendants     @DbCommand            @DocLock             @FileDir

 @Ascii              @DbExists             @DocMark             @FloatEq

 @ASin               @DbManager            @DocNumber           @FontList

 @ATan               @DDEExecute           @DocOmmittedLength   @For

 @ATan2              @DDEInitiate          @DocParentNumber     @FormLanguage

 @BrowserInfo        @DDEPoke              @DocSiblings         @GetAddressBooks

 @BusinessDays       @DDETerminate         @DocumentUniqueID    @GetCurrentTimeZone

 @Certificate         @DeleteDocument       @Domain              @GetDocField
@Functions Not Supported in Xpages
 @GetFocusTable               @IsDocBeingRecalculated @Locale                        @OrgDir

 @GetHTTPHeader               @IsDocTruncated           @Log                         @Password

 @GetIMContactListGroupNames @IsEmbeddedInsideWCT       @MailDbName                  @PasswordQuality

 @GetPortsList                @IsExpandable             @MailEncryptSavedPreference @Pi

 @GetProfileField              @IsInCompositeApp         @MailEncryptSentPreference   @PickList

 @GetViewInfo                 @IsModalHelp              @MailSavePreference          @Platform

 @HardDeleteDocument          @IsUsingJavaElement       @MailSend                    @PolicyIsFieldLocked

 @HashPassword                @IsValid                  @MailSignPreference          @PostedCommand

 @InheritedDocumentUniqueID   @IsVirtualizedDirectory   @Matches                     @Power

 @IsAgentEnabled              @Keywords                 @NameLookup                  @Prompt

 @IsAppInstalled              @LanguagePreference       @Narrow                      @RefreshECL

 @IsCategory                  @LaunchApp                @NoteID                      @RegQueryValue

 @IsDB2                       @LDAPServer               @Nothing                     @Responses

 @IsDocBeingEdited            @Like                     @OpenInNewWindow             @ServerAccess

 @IsDocBeingMailed            @Ln                       @OptimizeMailAddress         @ServerName
@Functions Not Supported in Xpages
  @Set                 @TemplateVersion        @URLHistory                @ViewTitle

  @SetDocField         @ThisName               @URLOpen                   @WebDbName

  @SetEnvironment      @ThisValue              @UrlQueryString            @WhichFolders

  @SetHTTPHeader       @TimeMerge              @UserAccess                @While

  @SetProfileField      @TimeToTextInZone       @UserNameLanguage          @Wide

  @SetTargetFrame      @TimeZoneToText         @UserNamesList             @Zone

  @SetViewInfo         @ToNumber               @UserPrivileges            DEFAULT

  @ShowParentPreview   @ToTime                 @UserRoles                 ENVIRONMENT

  @Sign                @Transform              @V2If                      FIELD

  @Sin                 @Unavailable            @V3UserName                REM

  @Sort                @UndeleteDocument       @V4UserAccess              SELECT

  @Soundex             @UpdateFormulaContext   @ValidateInternetAddress

  @Sqrt                @URLDecode              @VerifyPassword

  @StatusBar           @URLEncode              @Version

  @Tan                 @URLGetHeader           @ViewShowThisUnread
@Formula Syntax
• Three syntactic changes to use @Formula in Xpages:
  • Use commas rather than semicolons
  • Use exact case
           Example:
           var uname = @Name(“[CN]”, @UserName())
  • “null” should be used in place of 0 for formulas such as @Adjust
           Example:
           var aDate = @Adjust(@Created(), null, null, 5, null, null, null)
@Formula Help
@Formula Help
• Help file is not very helpful!
• @Name(“[CN]”, name) - needs those quotes!
• @UserName() - needs those parentheses!
@Name in Help
Server Side Javascript (SSJS)
 • Server side Javascript is not LotusScript
 • BUT it is close enough to fool you
      var someValue = entry.getColumnValues()[3]
 • Get a map
      http://bit.ly/XpagesMap
 • Go green!
      http://bit.ly/Recycle1
      http://bit.ly/Recycle2
Xpages Domino Object Map
Close...
But Not Quite
Scoped Variables
 •   applicationScope
 •   sessionScope
 •   viewScope
 •   requestScope
Quick Tip
 • Turn off “Synchronize Navigator with Editor Tab”
CSS and Themes
• Roll your own or
• Start with a framework*
  • http://bit.ly/XpageFramework
  • http://blueprintcss.org




  ✴Start with a framework
Firebug
 • Use it
Where To Get Help
 • http://www-10.lotus.com/ldd/ddwiki.nsf
 • http://www-10.lotus.com/ldd/ddwiki.nsf/dx/
   NotesDocumentCollection_sample_JavaScript_code_for_XPages
 • Help files not so helpful
Quick Tip
 • Create different search scopes for the not-so-helpful help file
Learn Javascript and Java
 • Javascript
   • http://www.w3schools.com/js/default.asp
   • http://bit.ly/JavaScriptDefinitive
 • Java
   • http://bit.ly/HeadFirstJava
   • http://www.javavideotutes.com/
Test Server - Get One
 • Typical Lotus Client development can get away with “testing” on a
   production server
 • Doing that with Xpages...
Sample Applications - Get Some
 • Download applications and dig through them to see how they were
   created
   • Frameworks on OpenNTF
   • Matt White and Tim Clark’s Show and Tell sample app
Quick Tip
 • Turn on “Select controls dialog box”
Quick Tip
 • Visible versus Hide When
Quick Tip
 • Turn off Build Automatically
Quick Tip
Quick Tips
 • Upgrade whenever possible
 • Learn Eclipse
Resources
•   http://xpages101.net
•   http://notesin9.com
•   http://xpag.es/?cheatsheet
•   http://planetlotus.org
•   http://openntf.org
•   http://tlcc.com
•   http://ntf.gbs.com/nathan/escape.nsf/d6plinks/NTFN-8GP6RP
THANK YOU
• kathy@runningnotes.net
• @RunningKathy or @NotesDevTips
• http://runningnotes.net
Ad

More Related Content

What's hot (20)

Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An Introduction
Thorsten Kamann
 
Documenting from the Trenches
Documenting from the TrenchesDocumenting from the Trenches
Documenting from the Trenches
Xavier Noria
 
HTML 5 Step By Step - Ebook
HTML 5 Step By Step - EbookHTML 5 Step By Step - Ebook
HTML 5 Step By Step - Ebook
Scottperrone
 
Java Web Programming [5/9] : EL, JSTL and Custom Tags
Java Web Programming [5/9] : EL, JSTL and Custom TagsJava Web Programming [5/9] : EL, JSTL and Custom Tags
Java Web Programming [5/9] : EL, JSTL and Custom Tags
IMC Institute
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshell
Lennart Schoors
 
ePUB 3 and Publishing e-books
ePUB 3 and Publishing e-booksePUB 3 and Publishing e-books
ePUB 3 and Publishing e-books
Kerem Karatal
 
Wt unit 6 ppts web services
Wt unit 6 ppts web servicesWt unit 6 ppts web services
Wt unit 6 ppts web services
PUNE VIDYARTHI GRIHA'S COLLEGE OF ENGINEERING, NASHIK
 
Wt unit 2 ppts client side technology
Wt unit 2 ppts client side technologyWt unit 2 ppts client side technology
Wt unit 2 ppts client side technology
PUNE VIDYARTHI GRIHA'S COLLEGE OF ENGINEERING, NASHIK
 
HTML5 and CSS3 refresher
HTML5 and CSS3 refresherHTML5 and CSS3 refresher
HTML5 and CSS3 refresher
Ivano Malavolta
 
Spring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingSpring 3 - Der dritte Frühling
Spring 3 - Der dritte Frühling
Thorsten Kamann
 
Introduction to Html5
Introduction to Html5Introduction to Html5
Introduction to Html5
www.netgains.org
 
Expression Language in JSP
Expression Language in JSPExpression Language in JSP
Expression Language in JSP
corneliuskoo
 
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
Carles Farré
 
Abstracting functionality with centralised content
Abstracting functionality with centralised contentAbstracting functionality with centralised content
Abstracting functionality with centralised content
Michael Peacock
 
Frontend for developers
Frontend for developersFrontend for developers
Frontend for developers
Hernan Mammana
 
JSP Standart Tag Lİbrary - JSTL
JSP Standart Tag Lİbrary - JSTLJSP Standart Tag Lİbrary - JSTL
JSP Standart Tag Lİbrary - JSTL
seleciii44
 
EVOLVE'14 | Enhance | Gabriel Walt | Sightly Component Development
EVOLVE'14 | Enhance | Gabriel Walt | Sightly Component DevelopmentEVOLVE'14 | Enhance | Gabriel Walt | Sightly Component Development
EVOLVE'14 | Enhance | Gabriel Walt | Sightly Component Development
Evolve The Adobe Digital Marketing Community
 
Config management
Config managementConfig management
Config management
Alexei Goja
 
Intoduction to php web services and json
Intoduction to php  web services and jsonIntoduction to php  web services and json
Intoduction to php web services and json
baabtra.com - No. 1 supplier of quality freshers
 
Django workshop : let's make a blog
Django workshop : let's make a blogDjango workshop : let's make a blog
Django workshop : let's make a blog
Pierre Sudron
 
Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An Introduction
Thorsten Kamann
 
Documenting from the Trenches
Documenting from the TrenchesDocumenting from the Trenches
Documenting from the Trenches
Xavier Noria
 
HTML 5 Step By Step - Ebook
HTML 5 Step By Step - EbookHTML 5 Step By Step - Ebook
HTML 5 Step By Step - Ebook
Scottperrone
 
Java Web Programming [5/9] : EL, JSTL and Custom Tags
Java Web Programming [5/9] : EL, JSTL and Custom TagsJava Web Programming [5/9] : EL, JSTL and Custom Tags
Java Web Programming [5/9] : EL, JSTL and Custom Tags
IMC Institute
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshell
Lennart Schoors
 
ePUB 3 and Publishing e-books
ePUB 3 and Publishing e-booksePUB 3 and Publishing e-books
ePUB 3 and Publishing e-books
Kerem Karatal
 
HTML5 and CSS3 refresher
HTML5 and CSS3 refresherHTML5 and CSS3 refresher
HTML5 and CSS3 refresher
Ivano Malavolta
 
Spring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingSpring 3 - Der dritte Frühling
Spring 3 - Der dritte Frühling
Thorsten Kamann
 
Expression Language in JSP
Expression Language in JSPExpression Language in JSP
Expression Language in JSP
corneliuskoo
 
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
Carles Farré
 
Abstracting functionality with centralised content
Abstracting functionality with centralised contentAbstracting functionality with centralised content
Abstracting functionality with centralised content
Michael Peacock
 
Frontend for developers
Frontend for developersFrontend for developers
Frontend for developers
Hernan Mammana
 
JSP Standart Tag Lİbrary - JSTL
JSP Standart Tag Lİbrary - JSTLJSP Standart Tag Lİbrary - JSTL
JSP Standart Tag Lİbrary - JSTL
seleciii44
 
Config management
Config managementConfig management
Config management
Alexei Goja
 
Django workshop : let's make a blog
Django workshop : let's make a blogDjango workshop : let's make a blog
Django workshop : let's make a blog
Pierre Sudron
 

Viewers also liked (9)

Lotusphere 2007AD302 WHAT’S NEW IN THE IBM LOTUS DOMINO WEB SERVER
Lotusphere 2007AD302 WHAT’S NEW IN THE IBM LOTUS DOMINO WEB SERVERLotusphere 2007AD302 WHAT’S NEW IN THE IBM LOTUS DOMINO WEB SERVER
Lotusphere 2007AD302 WHAT’S NEW IN THE IBM LOTUS DOMINO WEB SERVER
dominion
 
Maximizing application performance
Maximizing application performanceMaximizing application performance
Maximizing application performance
dominion
 
The Top 30 LotusScript Development Tips
The Top 30 LotusScript Development TipsThe Top 30 LotusScript Development Tips
The Top 30 LotusScript Development Tips
dominion
 
Uklug2011.lotus.on.linux.report.technical.edition.v1.0
Uklug2011.lotus.on.linux.report.technical.edition.v1.0Uklug2011.lotus.on.linux.report.technical.edition.v1.0
Uklug2011.lotus.on.linux.report.technical.edition.v1.0
dominion
 
real world web services
real world web servicesreal world web services
real world web services
dominion
 
leverage dxl
leverage dxlleverage dxl
leverage dxl
dominion
 
Lotusphere 2007 BP312: Trap and Manage Your Errors Easily, Efficiently and Re...
Lotusphere 2007 BP312: Trap and Manage Your Errors Easily, Efficiently and Re...Lotusphere 2007 BP312: Trap and Manage Your Errors Easily, Efficiently and Re...
Lotusphere 2007 BP312: Trap and Manage Your Errors Easily, Efficiently and Re...
dominion
 
Domino Vs Exchange App Dev
Domino Vs Exchange App DevDomino Vs Exchange App Dev
Domino Vs Exchange App Dev
dominion
 
JavaScript blast
JavaScript blastJavaScript blast
JavaScript blast
dominion
 
Lotusphere 2007AD302 WHAT’S NEW IN THE IBM LOTUS DOMINO WEB SERVER
Lotusphere 2007AD302 WHAT’S NEW IN THE IBM LOTUS DOMINO WEB SERVERLotusphere 2007AD302 WHAT’S NEW IN THE IBM LOTUS DOMINO WEB SERVER
Lotusphere 2007AD302 WHAT’S NEW IN THE IBM LOTUS DOMINO WEB SERVER
dominion
 
Maximizing application performance
Maximizing application performanceMaximizing application performance
Maximizing application performance
dominion
 
The Top 30 LotusScript Development Tips
The Top 30 LotusScript Development TipsThe Top 30 LotusScript Development Tips
The Top 30 LotusScript Development Tips
dominion
 
Uklug2011.lotus.on.linux.report.technical.edition.v1.0
Uklug2011.lotus.on.linux.report.technical.edition.v1.0Uklug2011.lotus.on.linux.report.technical.edition.v1.0
Uklug2011.lotus.on.linux.report.technical.edition.v1.0
dominion
 
real world web services
real world web servicesreal world web services
real world web services
dominion
 
leverage dxl
leverage dxlleverage dxl
leverage dxl
dominion
 
Lotusphere 2007 BP312: Trap and Manage Your Errors Easily, Efficiently and Re...
Lotusphere 2007 BP312: Trap and Manage Your Errors Easily, Efficiently and Re...Lotusphere 2007 BP312: Trap and Manage Your Errors Easily, Efficiently and Re...
Lotusphere 2007 BP312: Trap and Manage Your Errors Easily, Efficiently and Re...
dominion
 
Domino Vs Exchange App Dev
Domino Vs Exchange App DevDomino Vs Exchange App Dev
Domino Vs Exchange App Dev
dominion
 
JavaScript blast
JavaScript blastJavaScript blast
JavaScript blast
dominion
 
Ad

Similar to Learning to run (20)

Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHP
Oscar Merida
 
Refactoring
RefactoringRefactoring
Refactoring
Artem Tabalin
 
Code decoupling from Symfony (and others frameworks) - PHP Conference Brasil ...
Code decoupling from Symfony (and others frameworks) - PHP Conference Brasil ...Code decoupling from Symfony (and others frameworks) - PHP Conference Brasil ...
Code decoupling from Symfony (and others frameworks) - PHP Conference Brasil ...
Miguel Gallardo
 
Spring data presentation
Spring data presentationSpring data presentation
Spring data presentation
Oleksii Usyk
 
presentation
presentationpresentation
presentation
tutorialsruby
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
Leslie Doherty
 
Java development with the dynamo framework
Java development with the dynamo frameworkJava development with the dynamo framework
Java development with the dynamo framework
Patrick Deenen
 
Rename with Confidence – Building Dynamic FileMaker Systems
Rename with Confidence – Building Dynamic FileMaker SystemsRename with Confidence – Building Dynamic FileMaker Systems
Rename with Confidence – Building Dynamic FileMaker Systems
DB Services
 
presentation
presentationpresentation
presentation
tutorialsruby
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
reedmaniac
 
An introduction to DOM , JAVASCRIPT , JQUERY, AJAX and JSON
An introduction to DOM , JAVASCRIPT , JQUERY, AJAX and JSONAn introduction to DOM , JAVASCRIPT , JQUERY, AJAX and JSON
An introduction to DOM , JAVASCRIPT , JQUERY, AJAX and JSON
Syed Moosa Kaleem
 
SharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentialsSharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentials
Mark Rackley
 
Elements for an iOS Backend
Elements for an iOS BackendElements for an iOS Backend
Elements for an iOS Backend
Laurent Cerveau
 
GDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App EngineGDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App Engine
Yared Ayalew
 
Web Development with Python and Django
Web Development with Python and DjangoWeb Development with Python and Django
Web Development with Python and Django
Michael Pirnat
 
Awesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescriptAwesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescript
Amir Barylko
 
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EEJavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
Rodrigo Cândido da Silva
 
Lessons from the Trenches - Building Enterprise Applications with RavenDB
Lessons from the Trenches - Building Enterprise Applications with RavenDBLessons from the Trenches - Building Enterprise Applications with RavenDB
Lessons from the Trenches - Building Enterprise Applications with RavenDB
Oren Eini
 
Customizing ERModernLook Applications
Customizing ERModernLook ApplicationsCustomizing ERModernLook Applications
Customizing ERModernLook Applications
WO Community
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government Developers
Frank La Vigne
 
Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHP
Oscar Merida
 
Code decoupling from Symfony (and others frameworks) - PHP Conference Brasil ...
Code decoupling from Symfony (and others frameworks) - PHP Conference Brasil ...Code decoupling from Symfony (and others frameworks) - PHP Conference Brasil ...
Code decoupling from Symfony (and others frameworks) - PHP Conference Brasil ...
Miguel Gallardo
 
Spring data presentation
Spring data presentationSpring data presentation
Spring data presentation
Oleksii Usyk
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
Leslie Doherty
 
Java development with the dynamo framework
Java development with the dynamo frameworkJava development with the dynamo framework
Java development with the dynamo framework
Patrick Deenen
 
Rename with Confidence – Building Dynamic FileMaker Systems
Rename with Confidence – Building Dynamic FileMaker SystemsRename with Confidence – Building Dynamic FileMaker Systems
Rename with Confidence – Building Dynamic FileMaker Systems
DB Services
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
reedmaniac
 
An introduction to DOM , JAVASCRIPT , JQUERY, AJAX and JSON
An introduction to DOM , JAVASCRIPT , JQUERY, AJAX and JSONAn introduction to DOM , JAVASCRIPT , JQUERY, AJAX and JSON
An introduction to DOM , JAVASCRIPT , JQUERY, AJAX and JSON
Syed Moosa Kaleem
 
SharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentialsSharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentials
Mark Rackley
 
Elements for an iOS Backend
Elements for an iOS BackendElements for an iOS Backend
Elements for an iOS Backend
Laurent Cerveau
 
GDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App EngineGDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App Engine
Yared Ayalew
 
Web Development with Python and Django
Web Development with Python and DjangoWeb Development with Python and Django
Web Development with Python and Django
Michael Pirnat
 
Awesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescriptAwesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescript
Amir Barylko
 
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EEJavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
Rodrigo Cândido da Silva
 
Lessons from the Trenches - Building Enterprise Applications with RavenDB
Lessons from the Trenches - Building Enterprise Applications with RavenDBLessons from the Trenches - Building Enterprise Applications with RavenDB
Lessons from the Trenches - Building Enterprise Applications with RavenDB
Oren Eini
 
Customizing ERModernLook Applications
Customizing ERModernLook ApplicationsCustomizing ERModernLook Applications
Customizing ERModernLook Applications
WO Community
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government Developers
Frank La Vigne
 
Ad

More from dominion (20)

What is a itil and how does it relate to your collaborative environment uklug
What is a itil and how does it relate to your collaborative environment   uklugWhat is a itil and how does it relate to your collaborative environment   uklug
What is a itil and how does it relate to your collaborative environment uklug
dominion
 
iOS enterprise
iOS enterpriseiOS enterprise
iOS enterprise
dominion
 
cloud session uklug
cloud session uklugcloud session uklug
cloud session uklug
dominion
 
Uklug 2011 administrator development synergy
Uklug 2011 administrator development synergyUklug 2011 administrator development synergy
Uklug 2011 administrator development synergy
dominion
 
Uklug 2011 client management
Uklug 2011 client managementUklug 2011 client management
Uklug 2011 client management
dominion
 
Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...
dominion
 
Uklug2011 Know your Notes
Uklug2011 Know your NotesUklug2011 Know your Notes
Uklug2011 Know your Notes
dominion
 
Quickr
QuickrQuickr
Quickr
dominion
 
Taking themes to the next level
Taking themes to the next levelTaking themes to the next level
Taking themes to the next level
dominion
 
Supersize me
Supersize meSupersize me
Supersize me
dominion
 
Aussie outback
Aussie outbackAussie outback
Aussie outback
dominion
 
Implementing xpages extension library
Implementing xpages extension libraryImplementing xpages extension library
Implementing xpages extension library
dominion
 
Abb presentation uklug
Abb presentation uklugAbb presentation uklug
Abb presentation uklug
dominion
 
Domino testing presentation
Domino testing presentationDomino testing presentation
Domino testing presentation
dominion
 
Composite applications tutorial
Composite applications tutorialComposite applications tutorial
Composite applications tutorial
dominion
 
Error handling in XPages
Error handling in XPagesError handling in XPages
Error handling in XPages
dominion
 
wcm domino
wcm dominowcm domino
wcm domino
dominion
 
Ajax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schrittAjax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schritt
dominion
 
lotus notes r851 -training
lotus notes r851 -traininglotus notes r851 -training
lotus notes r851 -training
dominion
 
Inside notes
Inside notesInside notes
Inside notes
dominion
 
What is a itil and how does it relate to your collaborative environment uklug
What is a itil and how does it relate to your collaborative environment   uklugWhat is a itil and how does it relate to your collaborative environment   uklug
What is a itil and how does it relate to your collaborative environment uklug
dominion
 
iOS enterprise
iOS enterpriseiOS enterprise
iOS enterprise
dominion
 
cloud session uklug
cloud session uklugcloud session uklug
cloud session uklug
dominion
 
Uklug 2011 administrator development synergy
Uklug 2011 administrator development synergyUklug 2011 administrator development synergy
Uklug 2011 administrator development synergy
dominion
 
Uklug 2011 client management
Uklug 2011 client managementUklug 2011 client management
Uklug 2011 client management
dominion
 
Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...
dominion
 
Uklug2011 Know your Notes
Uklug2011 Know your NotesUklug2011 Know your Notes
Uklug2011 Know your Notes
dominion
 
Taking themes to the next level
Taking themes to the next levelTaking themes to the next level
Taking themes to the next level
dominion
 
Supersize me
Supersize meSupersize me
Supersize me
dominion
 
Aussie outback
Aussie outbackAussie outback
Aussie outback
dominion
 
Implementing xpages extension library
Implementing xpages extension libraryImplementing xpages extension library
Implementing xpages extension library
dominion
 
Abb presentation uklug
Abb presentation uklugAbb presentation uklug
Abb presentation uklug
dominion
 
Domino testing presentation
Domino testing presentationDomino testing presentation
Domino testing presentation
dominion
 
Composite applications tutorial
Composite applications tutorialComposite applications tutorial
Composite applications tutorial
dominion
 
Error handling in XPages
Error handling in XPagesError handling in XPages
Error handling in XPages
dominion
 
wcm domino
wcm dominowcm domino
wcm domino
dominion
 
Ajax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schrittAjax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schritt
dominion
 
lotus notes r851 -training
lotus notes r851 -traininglotus notes r851 -training
lotus notes r851 -training
dominion
 
Inside notes
Inside notesInside notes
Inside notes
dominion
 

Recently uploaded (20)

#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 

Learning to run

  • 1. 1 Learning To Run XPages for Lotus Notes Client Developers Presenter: Kathy Brown
  • 2. Who am I • Kathy Brown • Lotus Notes Developer, primarily for the Notes client, until recently • Co-author of the Lotus User Group Notes Developer Tips Newsletter • Speaker at Lotusphere and various LUGs • Twitter addict • Runner
  • 3. What this session is... • Tips and transitions for Notes client developers
  • 4. What this session is not... • A step-by-step how to • Best practices • Advanced topics
  • 5. Building Blocks • Forms • Views • Subforms • Framesets • Outlines • Pages
  • 6. Building Blocks • XPages • Core Controls • Container Controls • Custom Controls
  • 7. Separation of Data and UI • Traditional Notes Dev • Forms combine data and UI • XPages • Separate data from UI • Create forms just as data holders, no need to prettify • Create views for lookups, no need to prettify (no need for dual sorting!)
  • 8. Customer Name Customer ID Customer Address Customer Purchases Customer Name Customer Address Widget ID Widget Name Widget Description Widget ID Widget Name Widget Description Widget Image
  • 9. Data Binding • Because data and UI are separate, we need to “bind” data to our elements • Xpage • Can define a domino document or view as a data source • Custom Controls and Container Controls like Panel • Can define a domino document or view as a data source • Repeat Controls and certain Core Controls • Use data binding
  • 10. Data Binding • Simple data binding • Select a source from a list, or add another source • Select an item to bind to • Example: select a document from the source and a field from that document to bind to • Javascript • Utilize the JavaScript editor to write Server Side Javascript (SSJS) • Example: database.getView(“movies”).getAllDocumentsByKey(genre); • Advanced • Use expression language, scoped variable, component parameter or custom code for data binding
  • 11. DDE
  • 12. Quick Tip • Window --> Reset Perspective is your friend
  • 13. The Outline • Easily locate items on the Xpage • Drag & drop items to new locations
  • 14. Source • Easily change values or properties • See the Matrix
  • 18. What’s with those “group” controls?
  • 19. Something familiar* • Edit Box • Rich Text • Multiline Edit Box • List Box • Combo Box * Sort of
  • 20. Quick Tip • When adding @formula values for a combo box or list box, the default condition is “Compute on Page Load”. Remember to change that to “Compute Dynamically” in the script editor OR go to the Source tab and change the “$” to “#”
  • 22. Core Controls - Label • Why use a label? • More control • More programmability
  • 23. Core Controls - Errors • Use to display ... errors
  • 24. Panel Control • Sort of, kind of, like a layer... on steroids • Or like an embedded view... on steroids • Or like if a layer and an embedded view had a baby
  • 25. Repeat Controls • No traditional Notes Client equivalent and that’s a good thing • A repeat control allows you place controls inside it (like Edit boxes or computed values, but also more repeat controls!) that repeat on the page
  • 26. Container Controls • Include Page - allows you to include an Xpage on another Xpage • Table - we all know about this one! • View - kind of like an embedded view, but better • Tabbed Panel - multiple panels with...wait for it...tabs! • Section - we know about these, too
  • 27. Custom Controls • Closest traditional equivalent are subforms • Create custom controls to hold other controls stored together • Can be a “create once, use multiple times for footers and headers, for example
  • 28. Quick Tip • CTRL+SHIFT+F in the source
  • 29. @Formula in Xpages • @Formula is available for use in Server Side JavaScript (SSJS) • Not all @Formula are supported in Xpages
  • 30. @Functions Not Supported in Xpages @AbstractSimple @CheckAlarms @DeleteField @DoWhile @Accessed @CheckFormulaSyntax @DialogBox @EditECL @ACos @Command @DocChildren @EditUserECL @AddToFolder @Compare @DocDescendants @EnableAlarms @AdminECLIsLocked @ConfigFile @DocFields @Environment @All @Cos @DocLength @Eval @AllChildren @DB2Schema @DocLevel @Exp @AllDescendants @DbCommand @DocLock @FileDir @Ascii @DbExists @DocMark @FloatEq @ASin @DbManager @DocNumber @FontList @ATan @DDEExecute @DocOmmittedLength @For @ATan2 @DDEInitiate @DocParentNumber @FormLanguage @BrowserInfo @DDEPoke @DocSiblings @GetAddressBooks @BusinessDays @DDETerminate @DocumentUniqueID @GetCurrentTimeZone @Certificate @DeleteDocument @Domain @GetDocField
  • 31. @Functions Not Supported in Xpages @GetFocusTable @IsDocBeingRecalculated @Locale @OrgDir @GetHTTPHeader @IsDocTruncated @Log @Password @GetIMContactListGroupNames @IsEmbeddedInsideWCT @MailDbName @PasswordQuality @GetPortsList @IsExpandable @MailEncryptSavedPreference @Pi @GetProfileField @IsInCompositeApp @MailEncryptSentPreference @PickList @GetViewInfo @IsModalHelp @MailSavePreference @Platform @HardDeleteDocument @IsUsingJavaElement @MailSend @PolicyIsFieldLocked @HashPassword @IsValid @MailSignPreference @PostedCommand @InheritedDocumentUniqueID @IsVirtualizedDirectory @Matches @Power @IsAgentEnabled @Keywords @NameLookup @Prompt @IsAppInstalled @LanguagePreference @Narrow @RefreshECL @IsCategory @LaunchApp @NoteID @RegQueryValue @IsDB2 @LDAPServer @Nothing @Responses @IsDocBeingEdited @Like @OpenInNewWindow @ServerAccess @IsDocBeingMailed @Ln @OptimizeMailAddress @ServerName
  • 32. @Functions Not Supported in Xpages @Set @TemplateVersion @URLHistory @ViewTitle @SetDocField @ThisName @URLOpen @WebDbName @SetEnvironment @ThisValue @UrlQueryString @WhichFolders @SetHTTPHeader @TimeMerge @UserAccess @While @SetProfileField @TimeToTextInZone @UserNameLanguage @Wide @SetTargetFrame @TimeZoneToText @UserNamesList @Zone @SetViewInfo @ToNumber @UserPrivileges DEFAULT @ShowParentPreview @ToTime @UserRoles ENVIRONMENT @Sign @Transform @V2If FIELD @Sin @Unavailable @V3UserName REM @Sort @UndeleteDocument @V4UserAccess SELECT @Soundex @UpdateFormulaContext @ValidateInternetAddress @Sqrt @URLDecode @VerifyPassword @StatusBar @URLEncode @Version @Tan @URLGetHeader @ViewShowThisUnread
  • 33. @Formula Syntax • Three syntactic changes to use @Formula in Xpages: • Use commas rather than semicolons • Use exact case Example: var uname = @Name(“[CN]”, @UserName()) • “null” should be used in place of 0 for formulas such as @Adjust Example: var aDate = @Adjust(@Created(), null, null, 5, null, null, null)
  • 35. @Formula Help • Help file is not very helpful! • @Name(“[CN]”, name) - needs those quotes! • @UserName() - needs those parentheses!
  • 37. Server Side Javascript (SSJS) • Server side Javascript is not LotusScript • BUT it is close enough to fool you var someValue = entry.getColumnValues()[3] • Get a map http://bit.ly/XpagesMap • Go green! http://bit.ly/Recycle1 http://bit.ly/Recycle2
  • 41. Scoped Variables • applicationScope • sessionScope • viewScope • requestScope
  • 42. Quick Tip • Turn off “Synchronize Navigator with Editor Tab”
  • 43. CSS and Themes • Roll your own or • Start with a framework* • http://bit.ly/XpageFramework • http://blueprintcss.org ✴Start with a framework
  • 45. Where To Get Help • http://www-10.lotus.com/ldd/ddwiki.nsf • http://www-10.lotus.com/ldd/ddwiki.nsf/dx/ NotesDocumentCollection_sample_JavaScript_code_for_XPages • Help files not so helpful
  • 46. Quick Tip • Create different search scopes for the not-so-helpful help file
  • 47. Learn Javascript and Java • Javascript • http://www.w3schools.com/js/default.asp • http://bit.ly/JavaScriptDefinitive • Java • http://bit.ly/HeadFirstJava • http://www.javavideotutes.com/
  • 48. Test Server - Get One • Typical Lotus Client development can get away with “testing” on a production server • Doing that with Xpages...
  • 49. Sample Applications - Get Some • Download applications and dig through them to see how they were created • Frameworks on OpenNTF • Matt White and Tim Clark’s Show and Tell sample app
  • 50. Quick Tip • Turn on “Select controls dialog box”
  • 51. Quick Tip • Visible versus Hide When
  • 52. Quick Tip • Turn off Build Automatically
  • 54. Quick Tips • Upgrade whenever possible • Learn Eclipse
  • 55. Resources • http://xpages101.net • http://notesin9.com • http://xpag.es/?cheatsheet • http://planetlotus.org • http://openntf.org • http://tlcc.com • http://ntf.gbs.com/nathan/escape.nsf/d6plinks/NTFN-8GP6RP
  • 56. THANK YOU • [email protected] @RunningKathy or @NotesDevTips • http://runningnotes.net