SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An IntroductionThorsten Kamann
 
Documenting from the Trenches
Documenting from the TrenchesDocumenting from the Trenches
Documenting from the TrenchesXavier Noria
 
HTML 5 Step By Step - Ebook
HTML 5 Step By Step - EbookHTML 5 Step By Step - Ebook
HTML 5 Step By Step - EbookScottperrone
 
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 TagsIMC Institute
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshellLennart Schoors
 
ePUB 3 and Publishing e-books
ePUB 3 and Publishing e-booksePUB 3 and Publishing e-books
ePUB 3 and Publishing e-booksKerem Karatal
 
HTML5 and CSS3 refresher
HTML5 and CSS3 refresherHTML5 and CSS3 refresher
HTML5 and CSS3 refresherIvano Malavolta
 
Spring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingSpring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingThorsten Kamann
 
Expression Language in JSP
Expression Language in JSPExpression Language in JSP
Expression Language in JSPcorneliuskoo
 
[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 contentMichael Peacock
 
Frontend for developers
Frontend for developersFrontend for developers
Frontend for developersHernan Mammana
 
JSP Standart Tag Lİbrary - JSTL
JSP Standart Tag Lİbrary - JSTLJSP Standart Tag Lİbrary - JSTL
JSP Standart Tag Lİbrary - JSTLseleciii44
 
Config management
Config managementConfig management
Config managementAlexei 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 blogPierre Sudron
 

Mais procurados (20)

Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An Introduction
 
Documenting from the Trenches
Documenting from the TrenchesDocumenting from the Trenches
Documenting from the Trenches
 
HTML 5 Step By Step - Ebook
HTML 5 Step By Step - EbookHTML 5 Step By Step - Ebook
HTML 5 Step By Step - Ebook
 
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
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshell
 
ePUB 3 and Publishing e-books
ePUB 3 and Publishing e-booksePUB 3 and Publishing e-books
ePUB 3 and Publishing e-books
 
Wt unit 6 ppts web services
Wt unit 6 ppts web servicesWt unit 6 ppts web services
Wt unit 6 ppts web services
 
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
 
HTML5 and CSS3 refresher
HTML5 and CSS3 refresherHTML5 and CSS3 refresher
HTML5 and CSS3 refresher
 
Spring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingSpring 3 - Der dritte Frühling
Spring 3 - Der dritte Frühling
 
Introduction to Html5
Introduction to Html5Introduction to Html5
Introduction to Html5
 
Expression Language in JSP
Expression Language in JSPExpression Language in JSP
Expression Language in JSP
 
[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)
 
Abstracting functionality with centralised content
Abstracting functionality with centralised contentAbstracting functionality with centralised content
Abstracting functionality with centralised content
 
Frontend for developers
Frontend for developersFrontend for developers
Frontend for developers
 
JSP Standart Tag Lİbrary - JSTL
JSP Standart Tag Lİbrary - JSTLJSP Standart Tag Lİbrary - JSTL
JSP Standart Tag Lİbrary - JSTL
 
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
 
Config management
Config managementConfig management
Config management
 
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
 
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
 

Destaque

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 SERVERdominion
 
Maximizing application performance
Maximizing application performanceMaximizing application performance
Maximizing application performancedominion
 
The Top 30 LotusScript Development Tips
The Top 30 LotusScript Development TipsThe Top 30 LotusScript Development Tips
The Top 30 LotusScript Development Tipsdominion
 
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.0dominion
 
real world web services
real world web servicesreal world web services
real world web servicesdominion
 
leverage dxl
leverage dxlleverage dxl
leverage dxldominion
 
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 Devdominion
 
JavaScript blast
JavaScript blastJavaScript blast
JavaScript blastdominion
 

Destaque (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
 
Maximizing application performance
Maximizing application performanceMaximizing application performance
Maximizing application performance
 
The Top 30 LotusScript Development Tips
The Top 30 LotusScript Development TipsThe Top 30 LotusScript Development Tips
The Top 30 LotusScript Development Tips
 
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
 
real world web services
real world web servicesreal world web services
real world web services
 
leverage dxl
leverage dxlleverage dxl
leverage dxl
 
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...
 
Domino Vs Exchange App Dev
Domino Vs Exchange App DevDomino Vs Exchange App Dev
Domino Vs Exchange App Dev
 
JavaScript blast
JavaScript blastJavaScript blast
JavaScript blast
 

Semelhante a Learning to run

Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPOscar 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 presentationOleksii 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 DutyLeslie Doherty
 
Java development with the dynamo framework
Java development with the dynamo frameworkJava development with the dynamo framework
Java development with the dynamo frameworkPatrick 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 SystemsDB 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 Dutyreedmaniac
 
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 JSONSyed Moosa Kaleem
 
SharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentialsSharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentialsMark Rackley
 
Elements for an iOS Backend
Elements for an iOS BackendElements for an iOS Backend
Elements for an iOS BackendLaurent 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 EngineYared Ayalew
 
Web Development with Python and Django
Web Development with Python and DjangoWeb Development with Python and Django
Web Development with Python and DjangoMichael 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 coffeescriptAmir 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 EERodrigo 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 RavenDBOren Eini
 
Customizing ERModernLook Applications
Customizing ERModernLook ApplicationsCustomizing ERModernLook Applications
Customizing ERModernLook ApplicationsWO Community
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government DevelopersFrank La Vigne
 

Semelhante a Learning to run (20)

Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHP
 
Refactoring
RefactoringRefactoring
Refactoring
 
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 ...
 
Spring data presentation
Spring data presentationSpring data presentation
Spring data presentation
 
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
 
presentation
presentationpresentation
presentation
 
Java development with the dynamo framework
Java development with the dynamo frameworkJava development with the dynamo framework
Java development with the dynamo framework
 
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
 
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
 
presentation
presentationpresentation
presentation
 
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
 
SharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentialsSharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentials
 
Elements for an iOS Backend
Elements for an iOS BackendElements for an iOS Backend
Elements for an iOS Backend
 
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
 
Web Development with Python and Django
Web Development with Python and DjangoWeb Development with Python and Django
Web Development with Python and Django
 
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
 
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
 
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
 
Customizing ERModernLook Applications
Customizing ERModernLook ApplicationsCustomizing ERModernLook Applications
Customizing ERModernLook Applications
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government Developers
 

Mais de 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 uklugdominion
 
iOS enterprise
iOS enterpriseiOS enterprise
iOS enterprisedominion
 
cloud session uklug
cloud session uklugcloud session uklug
cloud session uklugdominion
 
Uklug 2011 administrator development synergy
Uklug 2011 administrator development synergyUklug 2011 administrator development synergy
Uklug 2011 administrator development synergydominion
 
Uklug 2011 client management
Uklug 2011 client managementUklug 2011 client management
Uklug 2011 client managementdominion
 
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 Notesdominion
 
Taking themes to the next level
Taking themes to the next levelTaking themes to the next level
Taking themes to the next leveldominion
 
Supersize me
Supersize meSupersize me
Supersize medominion
 
Aussie outback
Aussie outbackAussie outback
Aussie outbackdominion
 
Implementing xpages extension library
Implementing xpages extension libraryImplementing xpages extension library
Implementing xpages extension librarydominion
 
Abb presentation uklug
Abb presentation uklugAbb presentation uklug
Abb presentation uklugdominion
 
Domino testing presentation
Domino testing presentationDomino testing presentation
Domino testing presentationdominion
 
Composite applications tutorial
Composite applications tutorialComposite applications tutorial
Composite applications tutorialdominion
 
Error handling in XPages
Error handling in XPagesError handling in XPages
Error handling in XPagesdominion
 
wcm domino
wcm dominowcm domino
wcm dominodominion
 
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 schrittdominion
 
lotus notes r851 -training
lotus notes r851 -traininglotus notes r851 -training
lotus notes r851 -trainingdominion
 
Inside notes
Inside notesInside notes
Inside notesdominion
 

Mais de 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
 
iOS enterprise
iOS enterpriseiOS enterprise
iOS enterprise
 
cloud session uklug
cloud session uklugcloud session uklug
cloud session uklug
 
Uklug 2011 administrator development synergy
Uklug 2011 administrator development synergyUklug 2011 administrator development synergy
Uklug 2011 administrator development synergy
 
Uklug 2011 client management
Uklug 2011 client managementUklug 2011 client management
Uklug 2011 client management
 
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...
 
Uklug2011 Know your Notes
Uklug2011 Know your NotesUklug2011 Know your Notes
Uklug2011 Know your Notes
 
Quickr
QuickrQuickr
Quickr
 
Taking themes to the next level
Taking themes to the next levelTaking themes to the next level
Taking themes to the next level
 
Supersize me
Supersize meSupersize me
Supersize me
 
Aussie outback
Aussie outbackAussie outback
Aussie outback
 
Implementing xpages extension library
Implementing xpages extension libraryImplementing xpages extension library
Implementing xpages extension library
 
Abb presentation uklug
Abb presentation uklugAbb presentation uklug
Abb presentation uklug
 
Domino testing presentation
Domino testing presentationDomino testing presentation
Domino testing presentation
 
Composite applications tutorial
Composite applications tutorialComposite applications tutorial
Composite applications tutorial
 
Error handling in XPages
Error handling in XPagesError handling in XPages
Error handling in XPages
 
wcm domino
wcm dominowcm domino
wcm domino
 
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
 
lotus notes r851 -training
lotus notes r851 -traininglotus notes r851 -training
lotus notes r851 -training
 
Inside notes
Inside notesInside notes
Inside notes
 

Último

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 

Último (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 

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 • kathy@runningnotes.net • @RunningKathy or @NotesDevTips • http://runningnotes.net