1
It's Not Infernal: Dante's
Nine Circles of XPages
Heaven
We will start promptly at 10:30 A.M.
2
In Memory of Tim Tripcony…
It’s Not Infernal: Dante’s Nine Circles of XPages Heaven
Tweet about this event: #XPages
and mention us: @teamstudio @TLCC...
@teamstudio
teamstudio.com
@TLCCLTD
tlcc.com
Courtney Carter
Inbound Marketing Specialist
Who We Are
• Our background is in creating tools for collaborative
computing in mid-size and large enterprises,
primarily ...
Teamstudio Unplugged
• Your mobile Domino server: take your Notes apps
with you!
• End-users access Notes applications fro...
Unplugged Templates
• Continuity – Mobile offline access to
BCM programs
• OneView Approvals – Expense
approvals; anywhere...
• Next Wireless Wednesdays webinar: Enhance Your
Enterprise Mobile Application
o June 4, 2014
• Next Teamstudio/TLCC webin...
It's Not Infernal: Dante's Nine Circles of XPages Heaven
3
#XPages
Your Hosts Today:
Howard Greenberg
TLCC
@TLCCLtd
Paul D...
TLCC Courses and Services
• The Leader in Notes and Domino Training since
1997
• Self Paced Distance Learning Courses for
...
5
• Save hundreds and even Thousands of Dollars
on the most popular courses and packages
• Through June 13th
http://www.tl...
Upcoming and Recorded Webinars
6
Webinar Schedule
Bootstrap4XPages – June 17th
www.tlcc.com/xpages-webinar
View Previous W...
Asking Questions
7
Q & A at the end!
Type in your
questions as they
come up
Your Presenters Today:
8
#XPages
Mike McGarel
@mmcgarel
www.bleedyellow.com/blogs/McGarelGramming
Paul Withers, IBM Champi...
Paul Withers
ICS Consultant at Intec Systems Ltd
IBM Champion 2011-2014
Co-Author XPages Extension Library
OpenNTF Dir...
Mike McGarel
Working with Web technologies for over 14 years
Working with IBM Notes® & IBM Domino® since version 4.6
Co...
Dante’s Inferno
Author: Dante Alighieri, 14th Century
Part of Divine Comedy with Purgatorio and Paradiso
Journey by Dan...
The Circles
 First Circle: Limbo
 Second Circle: Lust
 Third Circle: Gluttony
 Fourth Circle: Greed
 Fifth Circle: Wr...
First Circle: Limbo
5
Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
Hybrid “Limbo” Applications
Add XPages into traditional Domino web applications
Use existing Domino databases as data so...
SSJS – The “Limbo” Language
Server-side JavaScript leverages pre-existing knowledge
– JavaScript syntax
• NotesDocument.g...
“Limbo” Property Values
Custom Language
<xp:text
value= “Database title is #{database.title}, database path is
#{javascri...
Demo
9
Converting LS to SSJS
Replace “Dim” with “var”
Replace “ As ” with “:”
Add “;”
Remember methods etc are case sensitive...
Second Circle: Lust
11
Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
It’s All About Wants
Users want:
– a familiar “look and feel”
– something easy to use
– to get in and out
You want them ...
Looks Matter
First impressions are key
Better looking “equals” works better
Steve McDonagh’s great series on design pri...
Interface Makeovers
IBM’s OneUI (v3):
http://infolib.lotus.com/resources/oneui/3.0/docPublic/index.htm
Extension Library...
15
Demo
16
Third Circle: Gluttony
17
Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
Don’t Make Browsers Eat Too Much!
xsp.resource.aggregate=true
18
Temporary Gluttony – For Debugging!
xsp.client.resources.uncompressed=true
19
Fourth Circle: Greed
20 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
Avoid Greed on Server
21
Demo
22
Persistence Options
Keep Pages in Memory
– Remembering, remembering, remembering…
– xsp.persistence.mode=basic
– Best for...
Persistence Options
Keep Only The Current Page in Memory
– Remembering, remembering, remembering…
– Oh, new page? Writing...
Persistence Options
GZip Persisted Files
– xsp.persistence.file.gzip
– Default=false
– Writing…next? You want it again? R...
Persistence Options
Maximum Pages
– xsp.persistence.tree.maxviews
• Default=4
• Remembering, remembering, remembering
• O...
Page Persistence Mode
xsp.persistence.viewstate=fulltree
– Default option, whole component tree persisted
xsp.persistenc...
Page Persistence Mode
xsp.persistence.viewstate=deltaex
– Valid if multiple pages stored in memory
– Stores full componen...
xsp.session.transient
xsp.session.transient=“false” sets XPage stateless
– Default VALUES overridden between requests
– D...
Fifth Circle: Wrath
30 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
More Responsiveness = Less Anger
Partial page refreshes
Client-side processing
– Dojo JavaScript framework (included wit...
Meet the Users’ Expectations
It’s a “mad mad mad mad world”
– Devices
– Locations
– Connectivity
Responsive design optio...
Demo
33
Sixth Circle: Heresy
34 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
Java
“IBM always wanted us to use Java” – NO!
35
Why?
#{javascript:…} means parse this string using SSJS rules
Pass commands to VariableResolver
Look for corresponding ...
Demo
37
OpenNTF Domino API
38
OpenNTF Domino API
 Document.replaceItemValue(“myDateField”, new Date());
– Or Document.put(“myDateField”, new Date());
...
Seventh Circle: Violence
40
Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
Themes
Themes can force controls to behave consistently
But some elements cannot be manipulated easily
–EventHandlers do...
“Strong-Arming” All Events
Dojo Standby Control on OpenNTF
– Hijacks partial refreshes
– Adds standby message during long...
Eighth Circle: Fraud
43
Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
SessionScope
SessionScope is fraudulent
– Session only for current application
– Browser session, not user session
44
HTTPOnly Cookies
Since Domino 9.0 SessionID and DomAuthSessId are now
HTTPOnly
Cannot be modified or removed via JavaScr...
How To Add Your Own HTTPOnly Cookie
Serdar Basegmez XSnippet
http://openntf.org/XSnippets.nsf/snippet.xsp?id=extended-
c...
Ninth Circle: Treachery
47
Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
Beyond Domino Designer
Generate Javadocs
Eclipse Modeling Tools to create UML designs
– Use latest Eclipse for RCP and R...
We climbed, he first, I following his steps,
Till on our view the beautiful lights of heaven
Dawned through a circular ope...
Summary
XPages is a gateway to other worlds
It is a journey – small steps lead to great strides
Learn from what others ...
IBM Resources
 XPages.Info: http://xpages.info
 XPages Forum: http://www-10.lotus.com/ldd/xpagesforum.nsf
 Notes/Domino...
Community Resources
 Planet Lotus: http://planetlotus.org
 Notes in 9 (videos): http://www.notesin9.com
 XPages cheat s...
Questions????
9
Use the Q&A pane in WebEx
to ask questions
We will answer your questions
verbally
Upcoming Events:
6/17 – TLCC XPages Webinar
6/4 - Teamstudio Wireless Wednesdays
6/16-17 – Social Connections in Prague...
Upcoming SlideShare
Loading in...5
×

May 2014-webinar

628

Published on

Mike McGarel's and Paul Withers' presentation from the TLCC-Teamstudio webinar on May 13th.

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
628
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
24
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "May 2014-webinar"

  1. 1. 1 It's Not Infernal: Dante's Nine Circles of XPages Heaven We will start promptly at 10:30 A.M.
  2. 2. 2 In Memory of Tim Tripcony…
  3. 3. It’s Not Infernal: Dante’s Nine Circles of XPages Heaven Tweet about this event: #XPages and mention us: @teamstudio @TLCCLTD @PaulSWithers @MikeMcGarel May 13, 2014
  4. 4. @teamstudio teamstudio.com @TLCCLTD tlcc.com Courtney Carter Inbound Marketing Specialist
  5. 5. Who We Are • Our background is in creating tools for collaborative computing in mid-size and large enterprises, primarily for IBM Notes • Easy-to-use tools for developers and administrators • 2300+ active customers, 47 countries • Offices in US, UK and Japan • Entered mobile space in 2010 with Unplugged: easy mobilization of Notes apps to Blackberry, Android and iOS
  6. 6. Teamstudio Unplugged • Your mobile Domino server: take your Notes apps with you! • End-users access Notes applications from mobile devices whether online or offline • Leverages existing skills and technology – XPages – a replication model you already know • Unplugged 3.1 recently released
  7. 7. Unplugged Templates • Continuity – Mobile offline access to BCM programs • OneView Approvals – Expense approvals; anywhere, anytime • CustomerView – lightweight CRM framework for field sales and field service teams • Contacts – customer information database • Activities – customer activity log • Media – mobile offline file storage and access
  8. 8. • Next Wireless Wednesdays webinar: Enhance Your Enterprise Mobile Application o June 4, 2014 • Next Teamstudio/TLCC webinar: Bootstrap4XPages o June 17, 2014 • Promotions: o Get our IBM Notes Upgrade Pack by May 31 and receive 5 free Unplugged licenses o Demo Teamstudio Continuity by June 30 to be entered to win an iPad mini
  9. 9. It's Not Infernal: Dante's Nine Circles of XPages Heaven 3 #XPages Your Hosts Today: Howard Greenberg TLCC @TLCCLtd Paul Della-Nebbia TLCC @PaulDN
  10. 10. TLCC Courses and Services • 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 4
  11. 11. 5 • Save hundreds and even Thousands of Dollars on the most popular courses and packages • Through June 13th http://www.tlcc.com/springsale
  12. 12. Upcoming and Recorded Webinars 6 Webinar Schedule Bootstrap4XPages – June 17th www.tlcc.com/xpages-webinar View Previous Webinars (use url above)
  13. 13. Asking Questions 7 Q & A at the end! Type in your questions as they come up
  14. 14. Your Presenters Today: 8 #XPages Mike McGarel @mmcgarel www.bleedyellow.com/blogs/McGarelGramming Paul Withers, IBM Champion @PaulSWithers www.intec.co.uk/blog
  15. 15. Paul Withers ICS Consultant at Intec Systems Ltd IBM Champion 2011-2014 Co-Author XPages Extension Library OpenNTF Director Contributor to OpenNTF Blogger on XPages, IBM Domino® Designer and beyond – http://www.intec.co.uk/blog
  16. 16. Mike McGarel Working with Web technologies for over 14 years Working with IBM Notes® & IBM Domino® since version 4.6 Corporate developer Site developer for MWLUG 2
  17. 17. Dante’s Inferno Author: Dante Alighieri, 14th Century Part of Divine Comedy with Purgatorio and Paradiso Journey by Dante over Easter Weekend 1300 Dante rescued and guided by the Roman poet Virgil “Lasciate ogne speranza, voi ch’intrate” (“Abandon all hope, ye who enter here”) 3
  18. 18. The Circles  First Circle: Limbo  Second Circle: Lust  Third Circle: Gluttony  Fourth Circle: Greed  Fifth Circle: Wrath  Sixth Circle: Heresy  Seventh Circle: Violence  Eighth Circle: Fraud  Ninth Circle: Treachery 4
  19. 19. First Circle: Limbo 5 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  20. 20. Hybrid “Limbo” Applications Add XPages into traditional Domino web applications Use existing Domino databases as data source and new XPages database for user interface Add mobile interface Add XPages for sidebar 6
  21. 21. SSJS – The “Limbo” Language Server-side JavaScript leverages pre-existing knowledge – JavaScript syntax • NotesDocument.getUniversalID() • @DbLookup(@DbName(),“myViewName”,2, “[FAILSILENT]”) – Domino objects use LotusScript names – Many Formula Language @Functions supported • Kathy Brown has blogged which ones are not • http://www.runningnotes.net/index.php/2010/03/25/list- of-formula-not-supported-in-xpages/ 7
  22. 22. “Limbo” Property Values Custom Language <xp:text value= “Database title is #{database.title}, database path is #{javascript: @Subset(@DbName(), -1);}”> </xp:text> 8
  23. 23. Demo 9
  24. 24. Converting LS to SSJS Replace “Dim” with “var” Replace “ As ” with “:” Add “;” Remember methods etc are case sensitive and need () GetAllDocumentsByKey – need to pass key as Vector Full syntax required for interacting with Notes Items RECYCLE! 10
  25. 25. Second Circle: Lust 11 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  26. 26. It’s All About Wants Users want: – a familiar “look and feel” – something easy to use – to get in and out You want them to want your app 12
  27. 27. Looks Matter First impressions are key Better looking “equals” works better Steve McDonagh’s great series on design principles: http://dominoyesmaybe.blogspot.com/2012/09/principals-of- design-1-balance.html 13
  28. 28. Interface Makeovers IBM’s OneUI (v3): http://infolib.lotus.com/resources/oneui/3.0/docPublic/index.htm Extension Library / Dojo widgets http://dojotoolkit.org – XPages Help Application http://xhelp.openntf.org/ Twitter Bootstrap: http://getbootstrap.com jQuery Plugins – jQuery UI: http://jqueryui.com 14
  29. 29. 15
  30. 30. Demo 16
  31. 31. Third Circle: Gluttony 17 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  32. 32. Don’t Make Browsers Eat Too Much! xsp.resource.aggregate=true 18
  33. 33. Temporary Gluttony – For Debugging! xsp.client.resources.uncompressed=true 19
  34. 34. Fourth Circle: Greed 20 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  35. 35. Avoid Greed on Server 21
  36. 36. Demo 22
  37. 37. Persistence Options Keep Pages in Memory – Remembering, remembering, remembering… – xsp.persistence.mode=basic – Best for…quick retrieval, few users Keep Pages on Disk – Writing…next? You want it again? Reading… – xsp.persistence.mode=file – Best for…lots of users, but slower retrieval 23
  38. 38. Persistence Options Keep Only The Current Page in Memory – Remembering, remembering, remembering… – Oh, new page? Writing….and now… – Remembering, remembering, remembering… – xsp.persistence.mode=fileex – Best for…lots of users, quick retrieval of current page 24
  39. 39. Persistence Options GZip Persisted Files – xsp.persistence.file.gzip – Default=false – Writing…next? You want it again? Reading… Persist Files Asynchronously – xsp.persistence.file.async – Default=true – Server busy, remembering. Next? (Writing, writing) 25
  40. 40. Persistence Options Maximum Pages – xsp.persistence.tree.maxviews • Default=4 • Remembering, remembering, remembering • Only applies when xsp.persistence.mode=basic – xsp.persistence.file.maxviews • Default=10 • Writing, retrieving, writing, writing, discarding… • Default folder defined by xsp.persistence.dir.xspstate 26
  41. 41. Page Persistence Mode xsp.persistence.viewstate=fulltree – Default option, whole component tree persisted xsp.persistence.viewstate=nostate –No component tree stored, similar to xsp.session.transient=true xsp.persistence.viewstate=delta – Valid if pages stored in memory – Only stores changes since page loaded 27
  42. 42. Page Persistence Mode xsp.persistence.viewstate=deltaex – Valid if multiple pages stored in memory – Stores full component tree for current page, deltas for others Viewstate property on XPage allows developer to define at page level 28
  43. 43. xsp.session.transient xsp.session.transient=“false” sets XPage stateless – Default VALUES overridden between requests – Default STATES not overridden NOT “Go to next page from current” – INSTEAD “Go to next page from default” NOT “Toggle show detail from previous state” – INSTEAD “Toggle show detail from default” Great for large, read only pages, Websites – no storage 29
  44. 44. Fifth Circle: Wrath 30 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  45. 45. More Responsiveness = Less Anger Partial page refreshes Client-side processing – Dojo JavaScript framework (included with XPages) – jQuery JavaScript framework (easily added) – Other JavaScript frameworks or custom scripts Server-side processing – XAgent (XPage of just code with UI redirect) – Java (design element or WebContentWEB-INFsrc) 31
  46. 46. Meet the Users’ Expectations It’s a “mad mad mad mad world” – Devices – Locations – Connectivity Responsive design options: – Dojo layout container – Bootstrap responsive  Embedded experience 32
  47. 47. Demo 33
  48. 48. Sixth Circle: Heresy 34 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  49. 49. Java “IBM always wanted us to use Java” – NO! 35
  50. 50. Why? #{javascript:…} means parse this string using SSJS rules Pass commands to VariableResolver Look for corresponding variable name Map to a Java object/method So why not go straight to the source? 36
  51. 51. Demo 37
  52. 52. OpenNTF Domino API 38
  53. 53. OpenNTF Domino API  Document.replaceItemValue(“myDateField”, new Date()); – Or Document.put(“myDateField”, new Date());  for (Document doc : dc) {…}  Transactional Processing  SyncHelper  Email Helpers  OpenLog  Document Scanner  Database Listeners 39
  54. 54. Seventh Circle: Violence 40 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  55. 55. Themes Themes can force controls to behave consistently But some elements cannot be manipulated easily –EventHandlers don’t have a default stylekit –They can have a themeId applied though Themes loaded at end of page rendering –getStyleKitFamily() to find default theme id –Or use Mark Leusink’s debug toolbar 41
  56. 56. “Strong-Arming” All Events Dojo Standby Control on OpenNTF – Hijacks partial refreshes – Adds standby message during long-running partial refreshes – http://openntf.org/XSnippets.nsf/snippet.xsp?id=standby- dialog-custom-control 42
  57. 57. Eighth Circle: Fraud 43 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  58. 58. SessionScope SessionScope is fraudulent – Session only for current application – Browser session, not user session 44
  59. 59. HTTPOnly Cookies Since Domino 9.0 SessionID and DomAuthSessId are now HTTPOnly Cannot be modified or removed via JavaScript –http://openntf.org/XSnippets.nsf/snippet.xsp?id=clear- session-whole-server does not work Cannot be intercepted 45
  60. 60. How To Add Your Own HTTPOnly Cookie Serdar Basegmez XSnippet http://openntf.org/XSnippets.nsf/snippet.xsp?id=extended- cookie-implementation-for-httponly-cookies 46
  61. 61. Ninth Circle: Treachery 47 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  62. 62. Beyond Domino Designer Generate Javadocs Eclipse Modeling Tools to create UML designs – Use latest Eclipse for RCP and RAP Developers – Download from Eclipse Marketplace Atlassian SourceTree and Perforce P4Merge SHOW 103 Wednesday 8am http://www.slideshare.net/paulswithers1/beyond-domino- designer 48
  63. 63. We climbed, he first, I following his steps, Till on our view the beautiful lights of heaven Dawned through a circular opening in the cave: Thence issuing we again beheld the stars Dante, Inferno, Canto 34 130-133 49
  64. 64. Summary XPages is a gateway to other worlds It is a journey – small steps lead to great strides Learn from what others have done Be prepared for the “Great Beyond” 50
  65. 65. IBM Resources  XPages.Info: http://xpages.info  XPages Forum: http://www-10.lotus.com/ldd/xpagesforum.nsf  Notes/Domino Application Development Wiki: http://www-10.lotus.com/ldd/ddwiki.nsf  Collaboration Today: http://collaborationtoday.info  OpenNTF: http://openntf.org  OpenNTF Snippets: http://openntf.org/XSnippets.nsf/home.xsp  The “XPages trilogy”: – Mastering XPages, 2nd Edition due shortly (IBM Press) – XPages Extension Library (IBM Press) – XPages Portable Command Guide (IBM Press) 51
  66. 66. Community Resources  Planet Lotus: http://planetlotus.org  Notes in 9 (videos): http://www.notesin9.com  XPages cheat sheets: http://www.xpagescheatsheets.com  YouAtNotes XPages wiki: http://www.xpageswiki.com  Stack Overflow: http://stackoverflow.com/questions/tagged/xpages 52
  67. 67. Questions???? 9 Use the Q&A pane in WebEx to ask questions We will answer your questions verbally
  68. 68. Upcoming Events: 6/17 – TLCC XPages Webinar 6/4 - Teamstudio Wireless Wednesdays 6/16-17 – Social Connections in Prague 8/27-29 – MWLug in Grand Rapids, MI Question and Answer Time! 10 Teamstudio Questions? contactus@teamstudio.com 877-228-6178 TLCC Questions? howardg@tlcc.com paul@tlcc.com 888-241-8522 or 561-953-0095 Howard Greenberg Courtney Carter @PaulSWithers @mmcgarel #XPages @TLCCLtd @Teamstudio @PaulDN Paul Della-Nebbia Paul WithersMike McGarel
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×