May 2014-webinar
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

May 2014-webinar

on

  • 539 views

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

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

Statistics

Views

Total Views
539
Views on SlideShare
539
Embed Views
0

Actions

Likes
1
Downloads
16
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

May 2014-webinar Presentation Transcript

  • 1. 1 It's Not Infernal: Dante's Nine Circles of XPages Heaven We will start promptly at 10:30 A.M.
  • 2. 2 In Memory of Tim Tripcony…
  • 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. @teamstudio teamstudio.com @TLCCLTD tlcc.com Courtney Carter Inbound Marketing Specialist
  • 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. 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. 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. • 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. 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. 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. 5 • Save hundreds and even Thousands of Dollars on the most popular courses and packages • Through June 13th http://www.tlcc.com/springsale
  • 12. Upcoming and Recorded Webinars 6 Webinar Schedule Bootstrap4XPages – June 17th www.tlcc.com/xpages-webinar View Previous Webinars (use url above)
  • 13. Asking Questions 7 Q & A at the end! Type in your questions as they come up
  • 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. 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. 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. 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. 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. First Circle: Limbo 5 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  • 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. 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. “Limbo” Property Values Custom Language <xp:text value= “Database title is #{database.title}, database path is #{javascript: @Subset(@DbName(), -1);}”> </xp:text> 8
  • 23. Demo 9
  • 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. Second Circle: Lust 11 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  • 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. 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. 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. 15
  • 30. Demo 16
  • 31. Third Circle: Gluttony 17 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  • 32. Don’t Make Browsers Eat Too Much! xsp.resource.aggregate=true 18
  • 33. Temporary Gluttony – For Debugging! xsp.client.resources.uncompressed=true 19
  • 34. Fourth Circle: Greed 20 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  • 35. Avoid Greed on Server 21
  • 36. Demo 22
  • 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. 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. 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. 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. 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. 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. 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. Fifth Circle: Wrath 30 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  • 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. 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. Demo 33
  • 48. Sixth Circle: Heresy 34 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  • 49. Java “IBM always wanted us to use Java” – NO! 35
  • 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. Demo 37
  • 52. OpenNTF Domino API 38
  • 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. Seventh Circle: Violence 40 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  • 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. “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. Eighth Circle: Fraud 43 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  • 58. SessionScope SessionScope is fraudulent – Session only for current application – Browser session, not user session 44
  • 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. 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. Ninth Circle: Treachery 47 Mihai Marius Mihu, http://www.flickr.com/photos/mihaimariusmihu/
  • 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. 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. 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. 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. 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. Questions???? 9 Use the Q&A pane in WebEx to ask questions We will answer your questions verbally
  • 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