SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
GETTING STARTED WITHTHE
OPENNTF DOMINO API
Apr. 12, 2016
Courtney Carter
@Teamstudio
Howard Greenberg
@TLCCLTD
Paul Della-Nebbia
@PaulDN
Jesse Gallagher
@Gidgerby
Paul Withers
@PaulSWithers
Asking Questions
Use the “Questions” pane to ask questions.
Teamstudio provides products that help
organizations with customized business
applications implement best practices, work
more efficiently, and prepare for the future.
AboutTeamstudio
Develop and manage your Notes applications
faster, better, and more easily.
GETTING STARTED WITHTHE
OPENNTF DOMINO API
1
#XPages
Your Hosts Today:
Howard Greenberg
TLCC
@TLCCLtd
Getting Started with the
OpenNTF Domino API
Paul Della-Nebbia
TLCC
@PaulDN
TLCC Courses
• The Leader in Notes and Domino Training since 1997
• Self Paced Distance Learning Courses
– XPages, Development, and Administration
• XPages from basic to advanced
– Two Java courses
– JavaScript course
– XPages 2 course
– Rapid Application Development
• Free demo courses
– Intro. To XPages Development
2
3
• Spring into Savings on courses for:
– Administrators
– Developers
– XPages
– Java and JavaScript
• For example
– get both of TLCC’s Java for XPages courses
• Usually $1,400, on sale for $999!
• http://www.tlcc.com/springsale
TLCC Application Development Services
4
• Let us help with your development
needs
– Bootstrap
– Java
• Convert Notes Apps to mobile and the
web!
• Modernize old Domino web
applications
• Interface with backend data systems
• Skills transfer
Upcoming and Recorded Webinars
5
www.tlcc.com/xpages-webinar
View Previous Webinars
(use url above)
• May – Optimus XPages Part II – The Deep Dive with John Jardin
• June - Expanding XPages with Bootstrap Plugins for Ultimate
Usability with Johnny Oldenburger
Asking Questions – Q and A at the end
6
Use the Orange Arrow button to
expand the GoToWebinar panel
Then ask your questions in the
Questions pane!
We will answer your questions
verbally at the end of the
webinar
7
#XPages
Getting Started with the OpenNTF Domino API
Paul Withers
Intec
@PaulSWithers
Jesse Gallagher
I Know Some Guys
@Gidgerby
OPENNTF DOMINO
API
Also Known As ODA
MISSION
Make you more productive
Modernize, Standardize, Improve, Extend
Solve all your problems
Remove all boundaries
TEAM
First commit by Tim Tripcony #codefortim
Multiple Companies
Several IBM Champions
Many consumers
WHY WE STARTED
DateTime objects (Nathan T Freeman’s initial comment)
Out-of-date classes (Vectors)
Out-of-date iteration rules (while loops)
Lack of in-context documentation
Unhelpful parameter names
Avoid recycling
Avoid requirement to handle NotesExceptions
Inbuilt error logging (XPages OpenLog Logger)
Auto-boxing of field data types
Use from SSJS or Java
WHERE WE WENT NEXT
Transactional Processing
Only save if all related documents can be
updated
Sync Helper
Push fields and document-centric formulas to
related documents
MIME Bean
Save Java objects in any field and auto-
handle field limits
WHERE WE WENT NEXT
Event Listeners
Trigger code based on events, e.g. document
save
Email Helper
Easy email creation
Document Scanner
Index document fields
Index Database
Index a whole server
WHERE WE WENT NEXT
Document Sorter
Sort document collections on the fly
Api Path / MetaReplica ID / Mertaversal ID
Serialize database / document locations for
rapid access
At Formula Parser
Better performance than session.evaluate()
WHERE WE WENT NEXT
Better Name Handling
Improved Recycling Performance
Tinkerpop Graph Implementation
Graphs database structure stored in Domino
Framed graphs for quicker setup
Built-in graph classes – Likes, Rates, Task
Proxy Vertexes for e.g. Person documents
WHERE WE WENT NEXT
Multi-threaded processing
Enums throughout
E.g. FTSearch(String, int, FTSortOption,
Set<FTSearchOption>)
New Picker DataProviders
MapPicker, CollectionPicker, NamePicker
XOTS
Scheduled tasklets
Code in NSF, reuse existing XPages code
NSF Data handling via Java
CROSSWORLDS
Native Domino access from WAS Liberty
Potential to be used from other J2EE servers
Code using your preferred web application
language
Access Domino data using ODA APIs
Develop using Java 7 / 8
See
http://www.slideshare.net/DanieleVistalli/introduci
ng-crossworlds-for-ibm-domino
XPAGES IMPLEMENTATION
Install OSGi plugin to server
Install OSGi plugin to Domino Designer
Enable org.openntf.domino.xsp.XspLibrary in Xsp
Properties
XSP PROPERTIES
org.openntf.domino=
godmode: session and database global
objects replaced by org.openntf.domino
versions
marcel: makes the API MIME-friendly
raid: run in debug mode
khan: implement fixes, like appendItemValue()
nsa: create report of applications, modules,
sessions (experimental)
XSP PROPERTIES
xsp.openlog.filepath=openLog.nsf
xsp.openlog.displayError=true
xsp.openlog.genericErrorMessage=Sorry, we hit an
error
xsp.openlog.email=myEmail@myCompany.com
xsp.openlog.debugLevel=2
xsp.openlog.suppressEventStack=false
xsp.openlog.expireDate=30
STRUCTURE
domino – parent project
externals – 3rd party code included
core – org.openntf.domino, main core Domino
code
formula – at formula parser code
xsp – XPages-related code
STRUCTURE – EXTERNALS
guava – Google Guava
javassist – for Java byte-code manipulation
javolution – for high-performance Java and data
structs
jsr305 – annotations for software defect detection
rxjava – reactive extensions for the JVM
tinkerpop – JDBC for graph database
STRUCTURE – CORE
org.openntf.arpa – Name handling
org.openntf.calendars – calendar ranges / multi-
value calendar objects
org.openntf.domino – core classes
org.openntf.domino.annotations – @Annotations
org.openntf.domino.big /
org.openntf.domino.big.impl – prototypes and
multi-NSF solutions
STRUCTURE – CORE
org.openntf.domino.design /
org.openntf.domino.design.impl – new design
note classes
org.openntf.domino.email – email handling
org.openntf.domino.events – classes for event
listeners
org.openntf.domino.exceptions – new Exception
classes
STRUCTURE – CORE
org.openntf.domino.ext – extensions to core
domino classes
org.openntf.domino.graph – deprecated, first-
generation graph database classes
org.openntf.domino.graph2 – graph interface
classes
org.openntf.domino.graph2.annotations –
@Annotations for framed graphs
STRUCTURE – CORE
org.openntf.domino.graph2.builtin – interface
classes for built-in framed graphs
org.openntf.domino.graph2.builtin.social –
implementation classes for social built-in framed
graphs
org.openntf.domino.graph2.workflow – interface
classes for built-in workflow framed graphs
org.openntf.domino.graph2.workflow.impl –
implementation classes for workflow built framed
graphs
STRUCTURE – CORE
org.openntf.domino.graph2.exception –
exception classes for graph implementation
org.openntf.domino.graph2.impl – core graph
implementation classes
org.openntf.domino.helpers – miscellaneous
helper classes
org.openntf.domino.i18n – internationalization
classes
STRUCTURE – CORE
org.openntf.domino.impl – implementations of
core domino classes and extensions
org.openntf.domino.iterators – iterator classes to
avoid Domino-specific iterations
org.openntf.domino.junit – junit testing classes
org.openntf.domino.nsfdata – interface classes for
Domino data-handling
org.openntf.domino.nsfdata.impldxl – classes for
Domino data-handling via DXL
STRUCTURE – CORE
org.openntf.domino.nsfdata.impldxl.item – classes
for handling of Domino field-level data via DXL
org.openntf.domino.nsfdata.structs – classes for
handling of C structures
org.openntf.domino.nsfdata.structs.cd – classes for
handling of Composite Data
org.openntf.domino.schema – interfaces for
database schema definition. Schema functionality
is a work in progress
STRUCTURE – CORE
org.openntf.domino.schema.exceptions –
exception classes for schemas
org.openntf.domino.schema.impl –
implementations of schema classes
org.openntf.domino.schema.types – classes for field
/ data type schemas
org.openntf.domino.session – Session factory classes
org.openntf.domino.thread – multi-thread handling
STRUCTURE – CORE
org.openntf.domino.transactions – classes for
transactional processing
org.openntf.domino.types – various generic classes
org.openntf.domino.utils – various utility classes
org.openntf.domino.utils.xml – various XML-
processing classes
org.openntf.domino.xots – XOTS-related classes
org.openntf.domino.xots.events – XOTS event class
STRUCTURE – XSP
org.openntf.domino.xsp – generic classes
org.openntf.domino.xsp.adapter – factories and
other extensions
org.openntf.domino.xsp.components – adaptive
components
org.openntf.domino.xsp.config – xsp-related
config
org.openntf.domino.xsp.formula – SSJS access to
formulas
STRUCTURE – XSP
org.openntf.domino.xsp.helpers – various helper
classes
org.openntf.domino.xsp.junit – XPages junit runner
org.openntf.domino.xsp.junit.test – XPages junit
tests
org.openntf.domino.xsp.model – model-level
classes
org.openntf.domino.xsp.msg – message-handling
classes
STRUCTURE – XSP
org.openntf.domino.xsp.readers – LogReader class
org.openntf.domino.xsp.script – SSJS classes
org.openntf.domino.xsp.session – XPages Session
factory classes
org.openntf.domino.xsp.xots – XPages XOTS
classes
REFERENCES
https://github.com/OpenNTF/org.openntf.domino
Questions????
8
Use the Orange Arrow button to
expand the GoToWebinar panel
Then ask your questions in the
Questions panel!
Remember, we will answer your
questions verbally
#XPages
@PaulSWithers
@Gidgerby
@TLCCLtd
@Teamstudio
@PaulDN
Upcoming Events:
 ES Lug in Madrid - May 4th
 ICON US Virtual User Group – May 9 and 10th
 DNUG in Hamburg, Germany – June 2nd
 Social Connections, Toronto, Canada – June 6th and 7th
 MWLUG, Austin, TX – August 17 to 19
 ICON UK, London – Sept. 15th and 16th
 Connect 2017 in San Francisco, CA – Feb. 20th to 23rd
Question and Answer Time!
9
Teamstudio Questions?
contactus@teamstudio.com
978-712-0924
TLCC Questions?
howardg@tlcc.com paul@tlcc.com
888-241-8522 or 561-953-0095
Howard Greenberg Courtney CarterJesse Gallagher Paul Della-NebbiaPaul Withers
Save on TLCC Training with the Spring Sale!

Weitere ähnliche Inhalte

Was ist angesagt?

Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
Ulrich Krause
 

Was ist angesagt? (20)

Eureka Moment UKLUG
Eureka Moment UKLUGEureka Moment UKLUG
Eureka Moment UKLUG
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVC
 
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
 
Eureka moment
Eureka momentEureka moment
Eureka moment
 
Tips for Building your First XPages Java Application
Tips for Building your First XPages Java ApplicationTips for Building your First XPages Java Application
Tips for Building your First XPages Java Application
 
ILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates EverywhereILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates Everywhere
 
Everything XControls
Everything XControlsEverything XControls
Everything XControls
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
 
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
 
How adding a further tool can be a good thing
How adding a further tool can be a good thingHow adding a further tool can be a good thing
How adding a further tool can be a good thing
 
La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin development
 
Ask the XPages Experts
Ask the XPages ExpertsAsk the XPages Experts
Ask the XPages Experts
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016
 
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
 

Andere mochten auch

Av technika 4
Av technika 4Av technika 4
Av technika 4
olc_user
 
Servidor web lamp
Servidor web lampServidor web lamp
Servidor web lamp
yaser6700
 

Andere mochten auch (20)

Utilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino APIUtilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino API
 
OpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentOpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino Development
 
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
 
IBM Social Business Journey and IBM Verse / cloud collaboration #MWLUG2015
IBM Social Business Journey and IBM Verse / cloud collaboration #MWLUG2015IBM Social Business Journey and IBM Verse / cloud collaboration #MWLUG2015
IBM Social Business Journey and IBM Verse / cloud collaboration #MWLUG2015
 
los bracekts
los bracekts los bracekts
los bracekts
 
9Guia1
9Guia19Guia1
9Guia1
 
Magonia getxo blog
Magonia  getxo blogMagonia  getxo blog
Magonia getxo blog
 
Presentacion corporativa sevenminds agosto2012 (1)
Presentacion corporativa sevenminds agosto2012 (1)Presentacion corporativa sevenminds agosto2012 (1)
Presentacion corporativa sevenminds agosto2012 (1)
 
Adquirir una propiedad en españa en 7 pasos
Adquirir una propiedad en españa en 7 pasosAdquirir una propiedad en españa en 7 pasos
Adquirir una propiedad en españa en 7 pasos
 
Copa menstrual y esponjas vaginales
Copa menstrual y esponjas vaginalesCopa menstrual y esponjas vaginales
Copa menstrual y esponjas vaginales
 
Historia parte 2
Historia parte 2Historia parte 2
Historia parte 2
 
Av technika 4
Av technika 4Av technika 4
Av technika 4
 
Accesus - Catalogo andamio para vias ferroviarias
Accesus - Catalogo andamio para vias ferroviariasAccesus - Catalogo andamio para vias ferroviarias
Accesus - Catalogo andamio para vias ferroviarias
 
Dossier ii torneo once caballeros c.f.
Dossier ii torneo once caballeros c.f.Dossier ii torneo once caballeros c.f.
Dossier ii torneo once caballeros c.f.
 
2013 brand id&print
2013 brand id&print2013 brand id&print
2013 brand id&print
 
Servidor web lamp
Servidor web lampServidor web lamp
Servidor web lamp
 
Tams 2012
Tams 2012Tams 2012
Tams 2012
 
Pairform cci formpro
Pairform   cci formproPairform   cci formpro
Pairform cci formpro
 
Niquel
NiquelNiquel
Niquel
 
Una modesta proposición
Una modesta proposiciónUna modesta proposición
Una modesta proposición
 

Ähnlich wie Getting Started with the OpenNTF Domino API

Search Lucene
Search LuceneSearch Lucene
Search Lucene
Jeremy Coates
 
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdfHashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
ssuser705051
 

Ähnlich wie Getting Started with the OpenNTF Domino API (20)

OpenNTF Domino API - Overview Introduction
OpenNTF Domino API - Overview IntroductionOpenNTF Domino API - Overview Introduction
OpenNTF Domino API - Overview Introduction
 
X page developer
X page developerX page developer
X page developer
 
Lightweight web frameworks
Lightweight web frameworksLightweight web frameworks
Lightweight web frameworks
 
Node.js Course 1 of 2 - Introduction and first steps
Node.js Course 1 of 2 - Introduction and first stepsNode.js Course 1 of 2 - Introduction and first steps
Node.js Course 1 of 2 - Introduction and first steps
 
Version Control in Machine Learning + AI (Stanford)
Version Control in Machine Learning + AI (Stanford)Version Control in Machine Learning + AI (Stanford)
Version Control in Machine Learning + AI (Stanford)
 
Interop 2015: Hardly Enough Theory, Barley Enough Code
Interop 2015: Hardly Enough Theory, Barley Enough CodeInterop 2015: Hardly Enough Theory, Barley Enough Code
Interop 2015: Hardly Enough Theory, Barley Enough Code
 
Bp301
Bp301Bp301
Bp301
 
MWLUG 2014: ATLUG Comes To You
MWLUG 2014: ATLUG Comes To YouMWLUG 2014: ATLUG Comes To You
MWLUG 2014: ATLUG Comes To You
 
epicenter2010 Open Xml
epicenter2010   Open Xmlepicenter2010   Open Xml
epicenter2010 Open Xml
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
 
AD102 - Break out of the Box
AD102 - Break out of the BoxAD102 - Break out of the Box
AD102 - Break out of the Box
 
Search Lucene
Search LuceneSearch Lucene
Search Lucene
 
Programming intro variables constants - arithmetic and assignment operators
Programming intro variables   constants - arithmetic and assignment operatorsProgramming intro variables   constants - arithmetic and assignment operators
Programming intro variables constants - arithmetic and assignment operators
 
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdfHashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
 
Terraform-2.pdf
Terraform-2.pdfTerraform-2.pdf
Terraform-2.pdf
 
Bp106 Worst Practices Final
Bp106   Worst Practices FinalBp106   Worst Practices Final
Bp106 Worst Practices Final
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
Java for XPages Development
Java for XPages DevelopmentJava for XPages Development
Java for XPages Development
 
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersTypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack Developers
 

Mehr von Teamstudio

Mehr von Teamstudio (20)

Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Search Terms and Design Complexity: A Tutorial Before Modernizing or MigratingSearch Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
 
SmartNSF - 100% Smart - and in Color!
SmartNSF - 100% Smart - and in Color!SmartNSF - 100% Smart - and in Color!
SmartNSF - 100% Smart - and in Color!
 
Back from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerBack from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good Server
 
Understand Usage with Detailed Access Information
Understand Usage with Detailed Access InformationUnderstand Usage with Detailed Access Information
Understand Usage with Detailed Access Information
 
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
 
Marty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth DimensionallyMarty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth Dimensionally
 
IBM Presents the IBM Notes and Domino Roadmap
IBM Presents the IBM Notes and Domino RoadmapIBM Presents the IBM Notes and Domino Roadmap
IBM Presents the IBM Notes and Domino Roadmap
 
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
 
Understand the True Business Usage of Notes Applications with Usage Auditor
Understand the True Business Usage of Notes Applications with Usage AuditorUnderstand the True Business Usage of Notes Applications with Usage Auditor
Understand the True Business Usage of Notes Applications with Usage Auditor
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
 
Building Responsive Applications Using XPages
Building Responsive Applications Using XPagesBuilding Responsive Applications Using XPages
Building Responsive Applications Using XPages
 
Using Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsUsing Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino Apps
 
An Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller PatternAn Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller Pattern
 
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
 
Domino, Notes, and Verse - Where are We and Whats the Future?
Domino, Notes, and Verse - Where are We and Whats the Future?Domino, Notes, and Verse - Where are We and Whats the Future?
Domino, Notes, and Verse - Where are We and Whats the Future?
 
App.Next - The Future of Domino Application Development
App.Next - The Future of Domino Application DevelopmentApp.Next - The Future of Domino Application Development
App.Next - The Future of Domino Application Development
 
Presenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View ControlPresenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View Control
 
A Notes Developer's Journey into Java
A Notes Developer's Journey into JavaA Notes Developer's Journey into Java
A Notes Developer's Journey into Java
 
Mobilize Your Business, Not Just an App
Mobilize Your Business, Not Just an AppMobilize Your Business, Not Just an App
Mobilize Your Business, Not Just an App
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

Getting Started with the OpenNTF Domino API

  • 1. GETTING STARTED WITHTHE OPENNTF DOMINO API Apr. 12, 2016
  • 2. Courtney Carter @Teamstudio Howard Greenberg @TLCCLTD Paul Della-Nebbia @PaulDN Jesse Gallagher @Gidgerby Paul Withers @PaulSWithers
  • 3. Asking Questions Use the “Questions” pane to ask questions.
  • 4. Teamstudio provides products that help organizations with customized business applications implement best practices, work more efficiently, and prepare for the future. AboutTeamstudio
  • 5. Develop and manage your Notes applications faster, better, and more easily.
  • 7. 1 #XPages Your Hosts Today: Howard Greenberg TLCC @TLCCLtd Getting Started with the OpenNTF Domino API Paul Della-Nebbia TLCC @PaulDN
  • 8. TLCC Courses • The Leader in Notes and Domino Training since 1997 • Self Paced Distance Learning Courses – XPages, Development, and Administration • XPages from basic to advanced – Two Java courses – JavaScript course – XPages 2 course – Rapid Application Development • Free demo courses – Intro. To XPages Development 2
  • 9. 3 • Spring into Savings on courses for: – Administrators – Developers – XPages – Java and JavaScript • For example – get both of TLCC’s Java for XPages courses • Usually $1,400, on sale for $999! • http://www.tlcc.com/springsale
  • 10. TLCC Application Development Services 4 • Let us help with your development needs – Bootstrap – Java • Convert Notes Apps to mobile and the web! • Modernize old Domino web applications • Interface with backend data systems • Skills transfer
  • 11. Upcoming and Recorded Webinars 5 www.tlcc.com/xpages-webinar View Previous Webinars (use url above) • May – Optimus XPages Part II – The Deep Dive with John Jardin • June - Expanding XPages with Bootstrap Plugins for Ultimate Usability with Johnny Oldenburger
  • 12. Asking Questions – Q and A at the end 6 Use the Orange Arrow button to expand the GoToWebinar panel Then ask your questions in the Questions pane! We will answer your questions verbally at the end of the webinar
  • 13. 7 #XPages Getting Started with the OpenNTF Domino API Paul Withers Intec @PaulSWithers Jesse Gallagher I Know Some Guys @Gidgerby
  • 15. MISSION Make you more productive Modernize, Standardize, Improve, Extend Solve all your problems Remove all boundaries
  • 16. TEAM First commit by Tim Tripcony #codefortim Multiple Companies Several IBM Champions Many consumers
  • 17. WHY WE STARTED DateTime objects (Nathan T Freeman’s initial comment) Out-of-date classes (Vectors) Out-of-date iteration rules (while loops) Lack of in-context documentation Unhelpful parameter names Avoid recycling Avoid requirement to handle NotesExceptions Inbuilt error logging (XPages OpenLog Logger) Auto-boxing of field data types Use from SSJS or Java
  • 18. WHERE WE WENT NEXT Transactional Processing Only save if all related documents can be updated Sync Helper Push fields and document-centric formulas to related documents MIME Bean Save Java objects in any field and auto- handle field limits
  • 19. WHERE WE WENT NEXT Event Listeners Trigger code based on events, e.g. document save Email Helper Easy email creation Document Scanner Index document fields Index Database Index a whole server
  • 20. WHERE WE WENT NEXT Document Sorter Sort document collections on the fly Api Path / MetaReplica ID / Mertaversal ID Serialize database / document locations for rapid access At Formula Parser Better performance than session.evaluate()
  • 21. WHERE WE WENT NEXT Better Name Handling Improved Recycling Performance Tinkerpop Graph Implementation Graphs database structure stored in Domino Framed graphs for quicker setup Built-in graph classes – Likes, Rates, Task Proxy Vertexes for e.g. Person documents
  • 22. WHERE WE WENT NEXT Multi-threaded processing Enums throughout E.g. FTSearch(String, int, FTSortOption, Set<FTSearchOption>) New Picker DataProviders MapPicker, CollectionPicker, NamePicker XOTS Scheduled tasklets Code in NSF, reuse existing XPages code NSF Data handling via Java
  • 23. CROSSWORLDS Native Domino access from WAS Liberty Potential to be used from other J2EE servers Code using your preferred web application language Access Domino data using ODA APIs Develop using Java 7 / 8 See http://www.slideshare.net/DanieleVistalli/introduci ng-crossworlds-for-ibm-domino
  • 24. XPAGES IMPLEMENTATION Install OSGi plugin to server Install OSGi plugin to Domino Designer Enable org.openntf.domino.xsp.XspLibrary in Xsp Properties
  • 25. XSP PROPERTIES org.openntf.domino= godmode: session and database global objects replaced by org.openntf.domino versions marcel: makes the API MIME-friendly raid: run in debug mode khan: implement fixes, like appendItemValue() nsa: create report of applications, modules, sessions (experimental)
  • 26. XSP PROPERTIES xsp.openlog.filepath=openLog.nsf xsp.openlog.displayError=true xsp.openlog.genericErrorMessage=Sorry, we hit an error xsp.openlog.email=myEmail@myCompany.com xsp.openlog.debugLevel=2 xsp.openlog.suppressEventStack=false xsp.openlog.expireDate=30
  • 27. STRUCTURE domino – parent project externals – 3rd party code included core – org.openntf.domino, main core Domino code formula – at formula parser code xsp – XPages-related code
  • 28. STRUCTURE – EXTERNALS guava – Google Guava javassist – for Java byte-code manipulation javolution – for high-performance Java and data structs jsr305 – annotations for software defect detection rxjava – reactive extensions for the JVM tinkerpop – JDBC for graph database
  • 29. STRUCTURE – CORE org.openntf.arpa – Name handling org.openntf.calendars – calendar ranges / multi- value calendar objects org.openntf.domino – core classes org.openntf.domino.annotations – @Annotations org.openntf.domino.big / org.openntf.domino.big.impl – prototypes and multi-NSF solutions
  • 30. STRUCTURE – CORE org.openntf.domino.design / org.openntf.domino.design.impl – new design note classes org.openntf.domino.email – email handling org.openntf.domino.events – classes for event listeners org.openntf.domino.exceptions – new Exception classes
  • 31. STRUCTURE – CORE org.openntf.domino.ext – extensions to core domino classes org.openntf.domino.graph – deprecated, first- generation graph database classes org.openntf.domino.graph2 – graph interface classes org.openntf.domino.graph2.annotations – @Annotations for framed graphs
  • 32. STRUCTURE – CORE org.openntf.domino.graph2.builtin – interface classes for built-in framed graphs org.openntf.domino.graph2.builtin.social – implementation classes for social built-in framed graphs org.openntf.domino.graph2.workflow – interface classes for built-in workflow framed graphs org.openntf.domino.graph2.workflow.impl – implementation classes for workflow built framed graphs
  • 33. STRUCTURE – CORE org.openntf.domino.graph2.exception – exception classes for graph implementation org.openntf.domino.graph2.impl – core graph implementation classes org.openntf.domino.helpers – miscellaneous helper classes org.openntf.domino.i18n – internationalization classes
  • 34. STRUCTURE – CORE org.openntf.domino.impl – implementations of core domino classes and extensions org.openntf.domino.iterators – iterator classes to avoid Domino-specific iterations org.openntf.domino.junit – junit testing classes org.openntf.domino.nsfdata – interface classes for Domino data-handling org.openntf.domino.nsfdata.impldxl – classes for Domino data-handling via DXL
  • 35. STRUCTURE – CORE org.openntf.domino.nsfdata.impldxl.item – classes for handling of Domino field-level data via DXL org.openntf.domino.nsfdata.structs – classes for handling of C structures org.openntf.domino.nsfdata.structs.cd – classes for handling of Composite Data org.openntf.domino.schema – interfaces for database schema definition. Schema functionality is a work in progress
  • 36. STRUCTURE – CORE org.openntf.domino.schema.exceptions – exception classes for schemas org.openntf.domino.schema.impl – implementations of schema classes org.openntf.domino.schema.types – classes for field / data type schemas org.openntf.domino.session – Session factory classes org.openntf.domino.thread – multi-thread handling
  • 37. STRUCTURE – CORE org.openntf.domino.transactions – classes for transactional processing org.openntf.domino.types – various generic classes org.openntf.domino.utils – various utility classes org.openntf.domino.utils.xml – various XML- processing classes org.openntf.domino.xots – XOTS-related classes org.openntf.domino.xots.events – XOTS event class
  • 38. STRUCTURE – XSP org.openntf.domino.xsp – generic classes org.openntf.domino.xsp.adapter – factories and other extensions org.openntf.domino.xsp.components – adaptive components org.openntf.domino.xsp.config – xsp-related config org.openntf.domino.xsp.formula – SSJS access to formulas
  • 39. STRUCTURE – XSP org.openntf.domino.xsp.helpers – various helper classes org.openntf.domino.xsp.junit – XPages junit runner org.openntf.domino.xsp.junit.test – XPages junit tests org.openntf.domino.xsp.model – model-level classes org.openntf.domino.xsp.msg – message-handling classes
  • 40. STRUCTURE – XSP org.openntf.domino.xsp.readers – LogReader class org.openntf.domino.xsp.script – SSJS classes org.openntf.domino.xsp.session – XPages Session factory classes org.openntf.domino.xsp.xots – XPages XOTS classes
  • 42. Questions???? 8 Use the Orange Arrow button to expand the GoToWebinar panel Then ask your questions in the Questions panel! Remember, we will answer your questions verbally
  • 43. #XPages @PaulSWithers @Gidgerby @TLCCLtd @Teamstudio @PaulDN Upcoming Events:  ES Lug in Madrid - May 4th  ICON US Virtual User Group – May 9 and 10th  DNUG in Hamburg, Germany – June 2nd  Social Connections, Toronto, Canada – June 6th and 7th  MWLUG, Austin, TX – August 17 to 19  ICON UK, London – Sept. 15th and 16th  Connect 2017 in San Francisco, CA – Feb. 20th to 23rd Question and Answer Time! 9 Teamstudio Questions? contactus@teamstudio.com 978-712-0924 TLCC Questions? howardg@tlcc.com paul@tlcc.com 888-241-8522 or 561-953-0095 Howard Greenberg Courtney CarterJesse Gallagher Paul Della-NebbiaPaul Withers Save on TLCC Training with the Spring Sale!