SlideShare a Scribd company logo
SmartNSF - 100% Smart - and in Color!
June 13, 2017
This webinar is brought to you as part of the
free monthly webinar series from:
Howard Greenberg
@TLCC
Courtney Carter
@Teamstudio
Christian Güdemann
@guedeWebGate
Martin Jinoch
@mjinoch
teamstudio.com/blog
TLCC Courses
• The Leader in Notes and Domino Training since
1997
• Self Paced Distance Learning Courses for
Notes/Domino
– XPages, Development, and Administration (user too!)
• OnSite Private Classes
• Mentoring/Consulting Services
• Free demo courses
– Intro. To XPages Development
– Application Development 1
1
XPages Courses!
FREE !! Introduction to XPages Development
JavaScript for XPages Development
XPages Development 1
XPages Development 2
Rapid XPages Development using Application
Layout and Dojo UI Controls
Java 1 for XPages Developers
Java 2 for XPages Developers
Don’t Miss MWLUG!!!
August 8-10, 2017
Optional Trip to the Air and Space Museum on Friday
Alexandria, VA (just outside D.C.)
40 sessions and workshops!!!
application development, system administration, best practices in
social collaboration, customer business cases, and innovation.
ALL FOR $75!!!
http://www.mwlug.com
Recorded Webinars
www.tlcc.com/xpages-webinar
View Previous Webinars
Asking Questions – Q and A at the end
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
SmartNSF - 100% Smart - and in color!
Christian Guedeman Martin Jinoch
@guedeWebGate
@mjinoch
SmartNSF
100% smart and in Color
Agenda and Co
• You ask Why..?

• Lets Start!

• Strategies for Views and Docs

• It‘s Groovy Baby! – 7 Events to go

• Documentation? What a question... Lets Swagger
You ask Why???
• It all began with the Domino, Detail and Devil Problem aka:





BUSINESS LOGIC is EVERYWHERE
The difference between …
• Business Logic

• Your rules and dependency about your business like:

• If you want to register a new customer, please provide the VAT Number

• No Company without Contact

• Business Logic is independent from the client

• Application behaviour

• Covers questions about “How can I register a new customer”

• Type-a-head for numbers and values

• Is client agnostic (Web Client acts different then Mobile Client)
The Inspiration
How can I convert a simple NSF into a micro-service within minutes?
(To protect the business logic)
app.get('/', function (req, res) {
res.send('Hello World!')
})
app.post('/', function (req, res) {
res.send('Got a POST request')
})
app.put('/user', function (req, res) { res.send('Got a PUT request at /
user')
})
app.delete('/user', function (req, res) { res.send('Got a DELETE request
at /user') })
router.GET('topics') {
strategy(DOCUMENTS_BY_VIEW) {
viewName('($All)')
}
mapJson 'id', json:'id', type:'STRING', isformula:true,
formula:'@DocumentUniqueID'
mapJson "date", json:’date',type:'DATETIME', isformula:true,
formula:'@Created'
mapJson "Subject", json:'topic', type:'STRING'
mapJson "author", json:'author', type:’STRING’, isformula:true,
formula:'@Name([CN]; From)'
}
Let’s go
https://openntf.org/main.nsf/project.xsp?r=project/SmartNSF
Some words about REST
• The power of the „methods”:

• GET -> Give me (one or more objects)

• POST -> Create a new object

• PUT -> Replace the object

• UPDATE -> Update the properties that we submit

• DELETE -> Delete the object

• We do only simple GET, POST and DELETE (for today only)
Show me the view (not the money) but fast!
router.GET(‘topics’) {

strategy(VIEWENTRIES_PAGED) {
viewName('(ByDate)')

}

mapJson '$120', json:'topic', type:’STRING'

mapJson 'author', json:'author', type:’STRING'

mapJson 'date', json:’date', type:'DATETIME'
}
Route for a document
router.GET('topics/{id}') {
strategy(DOCUMENT_BY_UNID) {
keyVariableName('id')

}

mapJson 'date', json:’date',type:'STRING', isformula:true, formula:'@Text(@Created)'
mapJson 'Subject', json:'topic', type:'STRING'
mapJson 'author', json:'author', type:’STRING', isformula:true, formula:'@Name([CN]; From)'
mapJson 'body', json:'content', type:'MIME'
mapJson 'categories', json:'categories', type:'ARRAY_OF_STRING'
}
Strategies
• DOCUMENT_BY_UNID

• DOCUMENT_FROM_VIEW_BY_KEY

• DOCUMENTS_BY_SEARCH_FT_PAGED

• DOCUMENTS_BY_FORMULA_PAGED

• DOCUMENTS_BY_VIEW_PAGED

• DOCUMENTS_FROM_VIEW_BY_KEY_PAGED

• VIEWENTRIES_PAGED

• VIEWENTRIES_BY_CATEGORY_PAGED (available since Beta 4)

• ATTACHMENT

Note: All DOCUMENTS* and VIEWENTRIES* strategies also have non paged versions. Use with
caution, these return the complete dataset at once.
Strategies
• All _PAGED Strategies

• Using start and count as URL Parameters

• Are designed to deliver a fast user experience

• All VIEWENTRIES Strategies

• Are using a view as model

• Do not have a direct access to the document

• Are quite fast

• All DOCUMENT Strategies

• Are slower then the VIEWENTRIES strategies but….

• Let you evaluate complex @Formulas for mapJson mapping
Power of events
• Every Route supports these events

• VALIDATE

• PRE_LOAD_DOCUMENT

• POST_LOAD_DOCUMENT

• POST_NEW_DOCUMENT

• PRE_SAVE_DOCUMENT

• POST_SAVE_DOCUMENT

• PRE_SUBMIT
Groovy in event’s context and Model
• Every Event has a closure

• In each closure the context and the document model are submitted

• Btw. the closure gives you access to the full Java Stack!
Open API Specification, Swagger….
• You wont believe, but your Code is documented! - Built in!
Call to action
• Download the project

• Enter OpenNTF’s Slack space and

become part of #smartnsf

• Documentation: 

https://wiki.openntf.org/display/XRAPI



• Start participating!
Questions????
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
@guedeWebGate
@mjinoch
@TLCCLtd
@Teamstudio
Upcoming Events:
MWLUG in Alexandria, VA on August 8-10, 2017
Question and Answer Time!
Teamstudio Questions?
contactus@teamstudio.com
978-712-0924
TLCC Questions?
howardg@tlcc.com
888-241-8522 or 561-953-0095
Howard Greenberg Courtney CarterChristian Guedeman Martin Jinoch

More Related Content

PDF
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
PDF
Presenting Data – An Alternative to the View Control
PDF
Optimus XPages Part 2: The Deep Dive
PDF
Domino, Notes, and Verse - Where are We and Whats the Future?
PPTX
Our take on Domino 10 - a Ytria webinar
PDF
Logging Wars: A Cross-Product Tech Clash Between Experts
PDF
Marty, You're Just Not Thinking Fourth Dimensionally
PDF
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
Presenting Data – An Alternative to the View Control
Optimus XPages Part 2: The Deep Dive
Domino, Notes, and Verse - Where are We and Whats the Future?
Our take on Domino 10 - a Ytria webinar
Logging Wars: A Cross-Product Tech Clash Between Experts
Marty, You're Just Not Thinking Fourth Dimensionally
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!

What's hot (20)

PDF
MWLUG 2017: BP107 Plotting the Path for your IBM Domino Applications
PDF
MWLUG 2017: SA104 - IBM Notes Performance Boost
PDF
bccon-2014 key01 ibm_collaboration_solutions_connect_2014
PDF
From frustration to fascination: dissecting Replication
PDF
MWLUG 2017: Workshop "IBM Domino Application Transformation" by panagenda
PDF
bccon-2014 dev04 domino_apps_reaching_up&out
PDF
Engage / Belsoft Collaboration - Using IBM Domino data in IBM Connections – a...
ODP
Uklug 2011 administrator development synergy
PPTX
Soccnx10: Best and worst practices deploying IBM Connections
PDF
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good Server
PPTX
IBM Connections Adminblast - Connect17 (DEV 1268)
PDF
Open Mic on Managed Mail Replica
PPTX
Migration:Impossible ... Not so
PPTX
Justin Morris - Understanding how lync server 2013 leverages the complete mic...
PPTX
Using Dashboards to Transform Application Data Visualization
PDF
Optimus XPages: An Explosion of Techniques and Best Practices
PDF
bccon-2014 com02 level-up_building_next_generation_business_applications
PDF
Using Cool New Frameworks in (Mobile) Domino Apps
PDF
IBM Notes Performance Boost - Reloaded (DEV-1185)
PPT
JMP201 Introduction to IBM Lotus Notes and IBM Lotus Domino Integration with ...
MWLUG 2017: BP107 Plotting the Path for your IBM Domino Applications
MWLUG 2017: SA104 - IBM Notes Performance Boost
bccon-2014 key01 ibm_collaboration_solutions_connect_2014
From frustration to fascination: dissecting Replication
MWLUG 2017: Workshop "IBM Domino Application Transformation" by panagenda
bccon-2014 dev04 domino_apps_reaching_up&out
Engage / Belsoft Collaboration - Using IBM Domino data in IBM Connections – a...
Uklug 2011 administrator development synergy
Soccnx10: Best and worst practices deploying IBM Connections
IBM Connect 2017: Back from the Dead: When Bad Code Kills a Good Server
IBM Connections Adminblast - Connect17 (DEV 1268)
Open Mic on Managed Mail Replica
Migration:Impossible ... Not so
Justin Morris - Understanding how lync server 2013 leverages the complete mic...
Using Dashboards to Transform Application Data Visualization
Optimus XPages: An Explosion of Techniques and Best Practices
bccon-2014 com02 level-up_building_next_generation_business_applications
Using Cool New Frameworks in (Mobile) Domino Apps
IBM Notes Performance Boost - Reloaded (DEV-1185)
JMP201 Introduction to IBM Lotus Notes and IBM Lotus Domino Integration with ...
Ad

Similar to SmartNSF - 100% Smart - and in Color! (20)

PDF
PPT
BP204 - Take a REST and put your data to work with APIs!
PPTX
A Beard, An App, A Blender
PDF
Start Your Notes App the SuperNTF Way
PPTX
Developing Offline Mobile Apps with Salesforce Mobile SDK SmartStore
PDF
[Nuxeo World 2013] CREATE AN IOS APPLICATION WITH NUXEO - JEAN-MARC ORLIAGUET...
PDF
Your App Deserves More – The Art of App Modernization
PDF
Dan Haywood
PDF
Wireless Wednesdays: Beyond the Basics - Enhance your Enterprise Mobile Appli...
PDF
[Webinar] Nuxeo Platform 5.6 Overview
PPTX
IBM Forms Experience Builder - Web Form Apps for Marketers
PDF
Your App deserves more – The Art of App Modernization
PPT
Proper Connections Development for Proper Domino Developers
PPTX
Classification of Web Applications
PPTX
MWLUG 2014: Modern Domino (workshop)
PDF
Building Effective and Rapid Applications with IBM MobileFirst Platform
PPTX
Rapid Application Development with MEAN Stack
PDF
Visualforce & Force.com Canvas: Unlock your Web App inside of Salesforce.com ...
PPT
Lean Development: Design Through Iterative Experiments
PDF
RESTful services on IBM Domino/XWork
BP204 - Take a REST and put your data to work with APIs!
A Beard, An App, A Blender
Start Your Notes App the SuperNTF Way
Developing Offline Mobile Apps with Salesforce Mobile SDK SmartStore
[Nuxeo World 2013] CREATE AN IOS APPLICATION WITH NUXEO - JEAN-MARC ORLIAGUET...
Your App Deserves More – The Art of App Modernization
Dan Haywood
Wireless Wednesdays: Beyond the Basics - Enhance your Enterprise Mobile Appli...
[Webinar] Nuxeo Platform 5.6 Overview
IBM Forms Experience Builder - Web Form Apps for Marketers
Your App deserves more – The Art of App Modernization
Proper Connections Development for Proper Domino Developers
Classification of Web Applications
MWLUG 2014: Modern Domino (workshop)
Building Effective and Rapid Applications with IBM MobileFirst Platform
Rapid Application Development with MEAN Stack
Visualforce & Force.com Canvas: Unlock your Web App inside of Salesforce.com ...
Lean Development: Design Through Iterative Experiments
RESTful services on IBM Domino/XWork
Ad

More from Teamstudio (20)

PDF
Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
PDF
Back from the Dead: When Bad Code Kills a Good Server
PDF
Understand Usage with Detailed Access Information
PDF
IBM Presents the IBM Notes and Domino Roadmap
PDF
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
PDF
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
PDF
Expanding XPages with Bootstrap Plugins for Ultimate Usability
PDF
Getting Started with the OpenNTF Domino API
PPTX
Understand the True Business Usage of Notes Applications with Usage Auditor
PDF
Building Responsive Applications Using XPages
PDF
Ask the XPages Experts
PDF
Everything XControls
PDF
Move Your XPages Applications to the Fast Lane
PDF
An Introduction to the Model-View-Controller Pattern
PDF
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
PDF
App.Next - The Future of Domino Application Development
PDF
Transformations: Smart Application Migration to XPages
PDF
A Notes Developer's Journey into Java
PDF
Mobilize Your Business, Not Just an App
PDF
Tips for Building your First XPages Java Application
Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Back from the Dead: When Bad Code Kills a Good Server
Understand Usage with Detailed Access Information
IBM Presents the IBM Notes and Domino Roadmap
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Getting Started with the OpenNTF Domino API
Understand the True Business Usage of Notes Applications with Usage Auditor
Building Responsive Applications Using XPages
Ask the XPages Experts
Everything XControls
Move Your XPages Applications to the Fast Lane
An Introduction to the Model-View-Controller Pattern
Mobilisez vos Applications IBM Notes avec Teamstudio Unplugged ! (French Lang...
App.Next - The Future of Domino Application Development
Transformations: Smart Application Migration to XPages
A Notes Developer's Journey into Java
Mobilize Your Business, Not Just an App
Tips for Building your First XPages Java Application

Recently uploaded (20)

PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation theory and applications.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
1. Introduction to Computer Programming.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
A Presentation on Artificial Intelligence
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPT
Teaching material agriculture food technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation theory and applications.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Assigned Numbers - 2025 - Bluetooth® Document
20250228 LYD VKU AI Blended-Learning.pptx
1. Introduction to Computer Programming.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
The Rise and Fall of 3GPP – Time for a Sabbatical?
Programs and apps: productivity, graphics, security and other tools
Diabetes mellitus diagnosis method based random forest with bat algorithm
Network Security Unit 5.pdf for BCA BBA.
MYSQL Presentation for SQL database connectivity
A Presentation on Artificial Intelligence
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Teaching material agriculture food technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Group 1 Presentation -Planning and Decision Making .pptx

SmartNSF - 100% Smart - and in Color!

  • 1. SmartNSF - 100% Smart - and in Color! June 13, 2017
  • 2. This webinar is brought to you as part of the free monthly webinar series from:
  • 3. Howard Greenberg @TLCC Courtney Carter @Teamstudio Christian Güdemann @guedeWebGate Martin Jinoch @mjinoch
  • 5. TLCC Courses • The Leader in Notes and Domino Training since 1997 • Self Paced Distance Learning Courses for Notes/Domino – XPages, Development, and Administration (user too!) • OnSite Private Classes • Mentoring/Consulting Services • Free demo courses – Intro. To XPages Development – Application Development 1 1
  • 6. XPages Courses! FREE !! Introduction to XPages Development JavaScript for XPages Development XPages Development 1 XPages Development 2 Rapid XPages Development using Application Layout and Dojo UI Controls Java 1 for XPages Developers Java 2 for XPages Developers
  • 7. Don’t Miss MWLUG!!! August 8-10, 2017 Optional Trip to the Air and Space Museum on Friday Alexandria, VA (just outside D.C.) 40 sessions and workshops!!! application development, system administration, best practices in social collaboration, customer business cases, and innovation. ALL FOR $75!!! http://www.mwlug.com
  • 9. Asking Questions – Q and A at the end 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
  • 10. SmartNSF - 100% Smart - and in color! Christian Guedeman Martin Jinoch @guedeWebGate @mjinoch
  • 12. Agenda and Co • You ask Why..? • Lets Start! • Strategies for Views and Docs • It‘s Groovy Baby! – 7 Events to go • Documentation? What a question... Lets Swagger
  • 13. You ask Why??? • It all began with the Domino, Detail and Devil Problem aka:
 
 
 BUSINESS LOGIC is EVERYWHERE
  • 14. The difference between … • Business Logic • Your rules and dependency about your business like: • If you want to register a new customer, please provide the VAT Number • No Company without Contact • Business Logic is independent from the client • Application behaviour • Covers questions about “How can I register a new customer” • Type-a-head for numbers and values • Is client agnostic (Web Client acts different then Mobile Client)
  • 15. The Inspiration How can I convert a simple NSF into a micro-service within minutes? (To protect the business logic) app.get('/', function (req, res) { res.send('Hello World!') }) app.post('/', function (req, res) { res.send('Got a POST request') }) app.put('/user', function (req, res) { res.send('Got a PUT request at / user') }) app.delete('/user', function (req, res) { res.send('Got a DELETE request at /user') }) router.GET('topics') { strategy(DOCUMENTS_BY_VIEW) { viewName('($All)') } mapJson 'id', json:'id', type:'STRING', isformula:true, formula:'@DocumentUniqueID' mapJson "date", json:’date',type:'DATETIME', isformula:true, formula:'@Created' mapJson "Subject", json:'topic', type:'STRING' mapJson "author", json:'author', type:’STRING’, isformula:true, formula:'@Name([CN]; From)' }
  • 17. Some words about REST • The power of the „methods”: • GET -> Give me (one or more objects) • POST -> Create a new object • PUT -> Replace the object • UPDATE -> Update the properties that we submit • DELETE -> Delete the object • We do only simple GET, POST and DELETE (for today only)
  • 18. Show me the view (not the money) but fast! router.GET(‘topics’) { strategy(VIEWENTRIES_PAGED) { viewName('(ByDate)') } mapJson '$120', json:'topic', type:’STRING' mapJson 'author', json:'author', type:’STRING' mapJson 'date', json:’date', type:'DATETIME' }
  • 19. Route for a document router.GET('topics/{id}') { strategy(DOCUMENT_BY_UNID) { keyVariableName('id') } mapJson 'date', json:’date',type:'STRING', isformula:true, formula:'@Text(@Created)' mapJson 'Subject', json:'topic', type:'STRING' mapJson 'author', json:'author', type:’STRING', isformula:true, formula:'@Name([CN]; From)' mapJson 'body', json:'content', type:'MIME' mapJson 'categories', json:'categories', type:'ARRAY_OF_STRING' }
  • 20. Strategies • DOCUMENT_BY_UNID • DOCUMENT_FROM_VIEW_BY_KEY • DOCUMENTS_BY_SEARCH_FT_PAGED • DOCUMENTS_BY_FORMULA_PAGED • DOCUMENTS_BY_VIEW_PAGED • DOCUMENTS_FROM_VIEW_BY_KEY_PAGED • VIEWENTRIES_PAGED • VIEWENTRIES_BY_CATEGORY_PAGED (available since Beta 4) • ATTACHMENT
 Note: All DOCUMENTS* and VIEWENTRIES* strategies also have non paged versions. Use with caution, these return the complete dataset at once.
  • 21. Strategies • All _PAGED Strategies • Using start and count as URL Parameters • Are designed to deliver a fast user experience • All VIEWENTRIES Strategies • Are using a view as model • Do not have a direct access to the document • Are quite fast • All DOCUMENT Strategies • Are slower then the VIEWENTRIES strategies but…. • Let you evaluate complex @Formulas for mapJson mapping
  • 22. Power of events • Every Route supports these events • VALIDATE • PRE_LOAD_DOCUMENT • POST_LOAD_DOCUMENT • POST_NEW_DOCUMENT • PRE_SAVE_DOCUMENT • POST_SAVE_DOCUMENT • PRE_SUBMIT
  • 23. Groovy in event’s context and Model • Every Event has a closure • In each closure the context and the document model are submitted • Btw. the closure gives you access to the full Java Stack!
  • 24. Open API Specification, Swagger…. • You wont believe, but your Code is documented! - Built in!
  • 25. Call to action • Download the project • Enter OpenNTF’s Slack space and
 become part of #smartnsf • Documentation: 
 https://wiki.openntf.org/display/XRAPI
 
 • Start participating!
  • 26. Questions???? 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
  • 27. @guedeWebGate @mjinoch @TLCCLtd @Teamstudio Upcoming Events: MWLUG in Alexandria, VA on August 8-10, 2017 Question and Answer Time! Teamstudio Questions? contactus@teamstudio.com 978-712-0924 TLCC Questions? howardg@tlcc.com 888-241-8522 or 561-953-0095 Howard Greenberg Courtney CarterChristian Guedeman Martin Jinoch