ad116 xpages extension library: making application development even easier
Post on 12-Nov-2014
26.381 Views
Preview:
DESCRIPTION
TRANSCRIPT
© 2011 IBM Corporation
AD116 XPages Extension Library: Making Application Development Even EasierPaul Hannan | XPages Test Lead | IBMMaire Kehoe | Software Developer | IBM
© 2011 IBM Corporation 2
Introduction● Speakers Introduction● What is this session about?
© 2011 IBM Corporation 3
Introduction – The Speakers
● Maire Kehoe | XPages Dev● One of the lead developers on the XPages
team, based in Dublin, Ireland. Maire worked on Lotus Component Designer from 2004 to 2007, and moved to Domino to develop the XPages runtime in the Domino server, working on control development, localization, the Extensibility API, and application development.
● Email: mkehoe@ie.ibm.com
● Paul Hannan | XPages Test Lead● Been the runtime test lead of XPages since its
birth and part of the team in Dublin, Ireland. Joined Lotus\IBM in 1995 and started working Screencam 1.2 and Notes 3.32 localization. Enjoys working on the best feature in the best product in the world.
● Email: paul_hannan@ie.ibm.com
● Twitter: @pdhannan
© 2011 IBM Corporation 4
Introduction – what's this session about?● The XPages Extension Library (ExtLib) ● It's for EVERYBODY● Show you how XPages App Dev will change for the better● And explain why...
─ THERE'S NOTHING NEW TO LEARN!─ FASTER!─ EASIER!
● And also show how it's not going to cost you an extra cent● This session will help and show you how the ExtLib will change the way you do
App development, and save you time and €£$¥ along the way
© 2011 IBM Corporation 5
Agenda●1. Introduction
●2. What is the Extension Library (ExtLib)?
●3. Who's using it?
●4. Demo A - The Wonderful World of the 88* ExtLib controls
●5. Demo B – ZERO 2 HERO - The Layout and Dynamic View controls
●6. Demo C – Mini Deep Dive – Outline & Dynamic Content
●7. FAQ
●8. Conclusion
●9. Q&A
© 2011 IBM Corporation 6
What is the Extension Library (ExtLib)? ● The Extension Library is like an extra
tool box...● ...bolted on to your existing XPages
tool box.
© 2011 IBM Corporation 7
What is the Extension Library (ExtLib)?● The XPages Extension Library (ExtLib) is for EVERYBODY.● NOTHING NEW TO LEARN!
─ You don't have to learn something new – fit's with your current XPage skill set – Less €£$¥ needed
● FASTER!─ Faster and Easier Domino Web Development
● EASIER!─ Easier to modernize existing Domino Web Apps
© 2011 IBM Corporation 8
What is the Extension Library (ExtLib)? ● This toolbox is a set of advanced, optimized, controls and other XPages assets.● Integrates within Domino Designer● Client, server and mobile● Designed for performance● Fully implemented using the XPages extensibility API● Available on top of Notes Domino 8.5.2
© 2011 IBM Corporation 9
What is the Extension Library (ExtLib)? ● Download from OpenNTF - http://extlib.openntf.org
─ Contains a demo app, documentation and an updateSite for easy install into Designer 852
─ 3000 plus downloads since Sept. 2010─ Active Forum and discussion
● OpenSource - https://svn-166.openntf.org/svn/xpages/
© 2011 IBM Corporation 10
Extension Library (ExtLib) – Who's using it?● Try the TeamRoom from OpenNTF
© 2011 IBM Corporation 11
Extension Library (ExtLib) – Who's using it? ● ...Or try xTalk 1.1, by Declan Lynch, also on OpenNTF
© 2011 IBM Corporation 12
Extension Library (ExtLib) – Who's using it?● ...or fileSendr, another Declan Lynch project on OpenNTF
© 2011 IBM Corporation 13
Extension Library (ExtLib) – Who's using it?● ...iWatch from Declan Lynch – (Announced today!!!)
© 2011 IBM Corporation 14
Extension Library (ExtLib) – Who's using it?● Though NOT using the ExtLib directly,
TSAZR - tsazr.com – From Elguiji Software● The XPages serve back to the iPhone (tm
Apple ) JSON. All data sits in memory. Never going to disk.
● More JSON Webservice examples will be shown
● iPhone is a trademark of Apple Inc.
© 2011 IBM Corporation 15
Extension Library (ExtLib) – Who's using it?
● ...XPages Transformer from GROUP Business Software
© 2011 IBM Corporation 16
DEMO A – The Wonderful World of the 88* ExtLib Controls
● Demo of some of the 88 (last count) controls to get excited about!
© 2011 IBM Corporation 17
Demo B● Layout and Dynamic View Control – ZERO to HERO! (mini-SnT)
─ Using the Application Layout control and the Dynamic View control, show how you can quickly transform an existing application in...
─
... 10 Minutes!!!─XPages in X
© 2011 IBM Corporation 18
Demo B – Step 011 Create a Custom Control called ccLayout (or anything you like)
2 Then DnD the 'Application Layout' control from the Extension Library folder on the palette to the Design pane of the custom control. Select Continue on the prompt
© 2011 IBM Corporation 19
Demo B – Step 02● Verify that ExtLib is set on the Application Properties
© 2011 IBM Corporation 20
Demo B – Step 03● And set the App's theme to 'oneuiv2' in the Application Properties
© 2011 IBM Corporation 21
Demo B – Step 04● Go to the All Properties for the control and select from 'configuration'
xe:applicationConfiguration
© 2011 IBM Corporation 22
Demo B – Step 05● Expand 'configuration' and fill in any properties you need. In this case we're just
going to use the placeBarName and computing its name.
© 2011 IBM Corporation 23
Demo B – Step 06● Create a new XPage, home.xsp, and drop the custom control on it● Preview that in the web browser...
© 2011 IBM Corporation 24
Demo B – Step 07
● Let's add some callbacks, Editable Areas to the Layout Custom Control (see AD116_DemoB_CallBackforLAYOUT.txt)
● Nest this into the <xe:applicationLayout> tag
© 2011 IBM Corporation 25
Demo B – Step 08● And we need to add a design definition to the custom control (852 – get markup
from AD116_DemoB_LayoutDesignDefinition.txt) .
© 2011 IBM Corporation 26
Demo B – Step 09● Now that we have the drop zones, let's add some containers and a combo box
on the home XPage
© 2011 IBM Corporation 27
Demo B – Step 10● Drop in the Dynamic View Panel control to the main content area.
© 2011 IBM Corporation 28
Demo B – Step 11● Go to the All Properties and set a view data source on the Dynamic View
Panel...
© 2011 IBM Corporation 29
Demo B – Step 12● For the view data source add a var and a scoped variable for the view name.
We are going to use this variable to compute which view to load into the Dynamic View Panel.
© 2011 IBM Corporation 30
Demo B – Step 13● That's your Dynamic View done.
Now let's configure that combo box to drive that view.
● Bind the combo box to that same scoped variable – viewScope.v01 in this case
© 2011 IBM Corporation 31
Demo B – Step 14● Set the selection items
on combo box to get the names of all the views in the database (see AD116_DemoB_ComboBoxSelections.txt)
● This formula gets all the views in the database, then gets their names, put these into an array and then returns that array sorted.
© 2011 IBM Corporation 32
Demo B – Step 15● To the onchange event on the Combo box set it to refresh the Dynamic View
© 2011 IBM Corporation 33
Demo B – Step 16● You're done!● Was that less than 10 minutes?
© 2011 IBM Corporation 34
Demo C – Mini Deep Dive● A closer look at
two more extended controls, the Outline and Dynamic Content, its make up and how you might configure it in your application.
© 2011 IBM Corporation 35
Demo C | Outline – Page Navigator● Let's have a look at it.
© 2011 IBM Corporation 36
Demo C | Outline – Page Navigator● The 'treeNodes' property is the way to add items to the Page Navigator
© 2011 IBM Corporation 37
Demo C | Outline – Page Navigator● In the example there are 2 pageTreeNodes with a separatorTreeNode between
them. Each of these pageTreeNodes represents an XPage.
© 2011 IBM Corporation 38
Demo C | Outline – Page Navigator● Important
properties.● Label is the label
on the Outline● The 'page' refers to
the XPage less the file extension.
● And 'selection' is used to highlight the an item on the Outline
© 2011 IBM Corporation 39
Demo C | Outline – Page Navigator● ...And looks neat and tidy in the source.
© 2011 IBM Corporation 40
Demo C | Outline – Page Navigator● A custom property in the Custom Control drives the selection highlighting in the
Outline
© 2011 IBM Corporation 41
Demo C | Outline – Page Navigator● The defaultNavigationPath and navigationPath properties on the Layout are
then set.
© 2011 IBM Corporation 42
Demo C | Outline – Page Navigator● When the Custom Control is added to the XPage the navigationPath custom
Property is set
© 2011 IBM Corporation 43
Demo C | Dynamic Content● Its appearance in designtime cloaks its power. That'll change. When added to a
page, this control doesn't have any children but a set of facets. Each facet represents one of the UI items that can be displayed.
© 2011 IBM Corporation 44
Demo C | Dynamic Content● Currently best explored in the
Outline view, and Source Pane.
© 2011 IBM Corporation 45
Demo C | Dynamic Content● In the sample, we have two facets in this container – one for the view and
another for the document.
© 2011 IBM Corporation 46
Demo C | Dynamic Content● And in the sample these two facets are named 'theView' and 'theDoc'. This is
what the Dynamic Content control uses for swapping between the two.
© 2011 IBM Corporation 47
Demo C | Dynamic Content● Use one of the facet names to be the default facet
© 2011 IBM Corporation 48
Demo C | Dynamic Content● Then it's a matter of showing and hiding upon an action. Here we're launching a
document from the view column to display in the 'theDoc' facet.
© 2011 IBM Corporation 49
Demo C | Dynamic Content● This can also be set using an ExtLib simple action – the Change Dynamic
Content simple action
© 2011 IBM Corporation 50
Demo C | Dynamic Content● And in 'theDoc' facet we've added extra actions. Here on the Save button..
© 2011 IBM Corporation 51
Demo C | Dynamic Content● ...on the 'Cancel'...
© 2011 IBM Corporation 52
Demo C | Dynamic Content● ...though this isn't needed on the 'Edit' button as we wish to remain in theDoc
facet.
© 2011 IBM Corporation 53
Demo C | Dynamic Content
●Cool?
© 2011 IBM Corporation 54
FAQ on the ExtLib● Q1. It's open sources but how much of the Extension Library is supported?● A1. It's supported by the community through the OpenNFT project. All bug
fixes and enhancements will come from this community, as it has done so far.
© 2011 IBM Corporation 55
FAQ on the ExtLib● Q2. Is the ExtLib Production ready? And if not what needs to be done to get it
up to spec?● A2. A certain number of steps need to be gone through before the whole or
part of the ExtLib is production ready for your environment. IBM decided that the ExtLib was too good to delay. It resolves many business solutions which potentially couldn't wait years to appear in the core product. It provides the tools now to get the job done now. And it's more than likely that the benefits of such far out weigh costs of getting the individual controls ready in the core release ready for your production environment.
© 2011 IBM Corporation 56
FAQ on the ExtLib● Q3. So what new has been invented here? Is it all new?● A3. Yes and no. The ExtLib needs the ExtAPI to work - that's new to 852. All
the controls are new, though after that what is generated at runtime using the ExtLib is not that much different from what is generated by conventional XPages.
© 2011 IBM Corporation 57
FAQ on the ExtLib● Q4. Can we port this back to 851?● A4. No. This needs 852 and above to function.
© 2011 IBM Corporation 58
FAQ on the ExtLib● Q5. Learning XPages is bad enough with having to learn its extended stuff● A5. Learning XPages will be by far the much bigger step of the two. Learning
what you can do with the ExtLib is a small step, and in fact learning what you can do with the ExtLib allows you to take huge shortcuts in your XPages learning.
© 2011 IBM Corporation 59
FAQ on the ExtLib● Q6. All this is too good to be true, what's the catch?● A6. There's no catch really. The ExtLib is for everyone. Owned by everyone.
It's getting better and can only get better still. It's the nearest you can get to a sure-thing.
© 2011 IBM Corporation 60
FAQ on the ExtLib● Q7. How do we persuade Administrators to allows us to put the ExtLib in our
production environments?● A7. More functionality in less time when using the ExtLib, vs developing your
own CSS and HTML in Custom Controls.● It's pretty low-risk.● Test your application for the use-cases you need to support, (including
performance/load testing & cross-browser testing).● ...else feed'em to a wood chipper if they don't! ;-)
© 2011 IBM Corporation 61
Conclusions● ExtLib is for Everyone● Owned by Everyone● Faster● Easier● Better● Cooler● ...but it may not bring world peace.
© 2011 IBM Corporation 62
...more ExtLib Information...● OpenNTF project
─ http://extlib.openntf.org
● Lotus Notes and Domino Application Development Wiki─ ExtAPI - http://www-10.lotus.com/ldd/ddwiki.nsf/xpViewCategories.xsp?
lookupName=APIs:%20XPages%20Extensibility─ http://www-10.lotus.com/ldd/ddwiki.nsf/xpViewTags.xsp?
categoryFilter=8.5.2&category=none
● Blogs─ http://planetlotus.org/search.php?search=ExtLib&sort=1─ http://planetlotus.org/search.php?search=extension%20library&sort=1
● Twitter─ http://twitter.com/#!/search?q=%23ExtLib
●XPAGES.INFO
© 2011 IBM Corporation 63
...other ExtLib related sessions at #LS11...● Monday
─ AD111 - Developing Mobile Apps Rapidly for Webkit Browsers Using XPages | Niklas Heidloff & Steve Castledine
● Tuesday─ AD116 - XPages Extension Library: Making Application Development Even Easier | Paul
Hannan & Maire Kehoe─ BP210 - XPages: Enter The Dojo | Paul Withers & David Leedy
● Wednesday─ AD112 - How the Re-vamped TeamRoom and DocLib Templates Are Built Using the XPages
Extension Library | Maire Kehoe & Martin Donnelly─ AD115 - | XPages Extensibility API: Free Your Mind! | Darin Egan & Dan O'Connor─ AD116R - XPages Extension Library: Making Application Development Even Easier | Paul
Hannan & Maire Kehoe─ BOF217 - Object-Orientated Programming in IBM Lotus Notes and Domino | Thomas Bahn &
Bernd Hort
© 2011 IBM Corporation 64
Q&A
© 2011 IBM Corporation 65
...other XPages related sessions at #LS11...● JMP101 - IBM Lotus Domino Application Development Jumpstart | Ishfak F Bhagat &
Dan O'Connor● JMP102 - XML and Web Services Jumpstart | Paul Calhoun● JMP302 - Master Class: CSS and HTML Master Class | Scott Good & Henry
Newberry● JMP101 - IBM Lotus Domino Application Development Jumpstart | Ishfak F Bhagat &
Dan O'Connor● JMP208 - The Never Ending Integration Story: How to Integrate Your Lotus Notes,
Domino, and LotusLive applications with Microsoft Office, .NET, and Lotus Symphony | John Head & Alex Kassabov
● JMP303 - Master Class: Leveraging JSON in both Client- and Server-Side JavaScript | Scott Good & Henry Newberry
● BDD602 - IBM Lotus Roundtable: Application Development | Kevin Cavanaugh● AD105 - Lotus Domino OSGi Unleashed: Everything You Need to Know - and More! |
David Taieb
© 2011 IBM Corporation 66
...other XPages related sessions at #LS11...● AD103 - Don't Be Afraid of Curly Brackets: JavaScript for IBM LotusScript Developers |
Stephan Wissel● AD110 - Building XPages Applications By the Book! | Martin Donnelly & Philippe Riand● AD104 - What's New in Lotus Domino Objects and Best Practices | James Cooper &
Elizabeth Sawyer● AD111 - Developing Mobile Apps Rapidly for Webkit Browsers Using XPages | Niklas
Heidloff & Steve Castledine● BP305 - How XPages Dramatically Improved a Non-profit's Ability to Serve its Disabled
Clients | Matthew Miller & Scott Good● ID104 - IBM Lotus Domino Server Availability: Best Practices and Tuning Tips | John
Curtis & Andrew Nolet● AD107 - Microsoft Sharepoint Meets IBM Lotus Domino: Development Deep Dive |
Stephan Wissel & Justin Lee● BOF206 - Composite Application Component Models | Michael Cooper & Ashok
Mammen● SHOW106 - XPages101: How to Build a Simple XPages Application | Matt White & Tim
Clark
© 2011 IBM Corporation 67
...other XPages related sessions at #LS11.● BP207 - Apps, Apps, and More Apps: Meet the Very Best Open Source Apps
from OpenNTF | Bruce Elgort & Niklas Heidloff● AD113 - Show Your XPages in Style! | Hunter Medney & Steve Castledine● AD117 - XPages Performance Success Story: the Business Solutions Catalog |
Suneil H Berajawala & Philippe Riand● AD116 - XPages Extension Library: Making Application Development Even
Easier | Paul Hannan & Maire Kehoe● AD109 - IBM Lotus Connector for SAP, Alloy and Beyond: Integrate SAP with
Lotus Collaboration | Pete Janzen ● AD203 - What's New in Lotus Notes Widgets and LiveText: Linking Your Data to
the World! | Andrew E Davis● BP210 - XPages: Enter The Dojo | Paul Withers & David Leedy● BP211 - XPages Blast | Matt White & Tim Clark
© 2011 IBM Corporation 68
...other XPages related sessions at #LS11.● BOF403 - Get Up to Speed on XPages | Sara Nicklin
● AD116 - XPages Extension Library: Making Application Development Even Easier | Paul Hannan & Maire Kehoe
● BP208 - Fabulous Feats with @Formula: IBM Lotus Notes Client, XPages and Beyond | Kathy Brown
● CUST105 - Deloitte Recap: Running a Business on XPages and IBM Lotus Domino | Brian Benz
● AD115 - XPages Extensibility API: Free Your Mind! | Darin Egan & Dan O'Connor
● AD112 - How the Re-vamped TeamRoom and DocLib Templates Are Built Using the XPages Extension Library | Maire Kehoe & Martin Donnelly
● AD114 - There and Back Again: Strategies for Re-factoring Notes Applications to XPages | Philippe Riand & Nathan Freeman
● SHOW107 - The DataSource Session: Take XPages Data Boldly Where No XPages Data Has Been Taken Before | Stephan Wissel & Jim Quill
● BP212 - Deep Dive into XPage Expression Language Syntax | Colin MacDonald & Karsten Lehmann
● BOF218 - Let Your Inner "X" Out! | Pete Janzen & Philippe Riand
© 2011 IBM Corporation 69
Legal Disclaimer© IBM Corporation 2011. All Rights Reserved.
The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software.
References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.
IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
top related