SlideShare a Scribd company logo
IBM XPages The Next Step in Your Life As a Notes Developer Peter Presnell  (GBS) Paul Calhoun  (GBS)
Peter Presnell
Paul Calhoun
The Generic Pronoun Y'all  (yaaaaawl)
WARNING The following presentation contains absolutely NO CODE!!!!
I'm A Notes Programmer
The Power User Clients: Notes Only
Forms, Views, Pages, Outlines
Simple Actions, @Formulae
LotusScript: In-Line
SDLC: None
The Traditional Notes Developer Clients: Notes, Web (80/20)
LotusScript: Libraries (Procedural)
Event Programming
Templates
SDLC: Iterative Prototyping or Waterfall
The Software Engineer Clients: Notes, Web, Mobile Client
LotusScript: Libraries (OOP)
Java & JavaScript Frameworks
Web Services & SOA
SDLC: Agile & Test Driven Development
OpenSource
Architecture
NSF Container Rapid Application Deployment
Integrated Code/Data
Non-SQL
DAOS
Security ACLs
Roles
ECLs
Server Access
Reader/Author Fields ACLs
Roles
ECLs (XPiNC)
Server Access*
Reader/Author Fields
Replication & Clustering Scheduled
Clustered
Failover Load Balancing
Client/Server Model Client Based (RPC)
Client Validation
UI Dialogs Server Based (JSF) Server Validation
JavaScript V SSJS
AJAX Support
Scope
R apid  A pplication  D evelopment
As A RAD Tool Easy To Learn
Well Documented

More Related Content

PPTX
Client Object Model - SharePoint Extreme 2012
PPTX
STUG-Client Object Model SharePoint 2010
PPTX
Oracle application framework (oaf) online training
PPTX
An Oracle ADF Introduction
PPT
oracle oa framework training | oracle oa framework training courses | oa fram...
PPTX
Customizations in Enterprise Applications using Oracle ADF
PPTX
Introduction to Oracle ADF Task Flows
PPT
Dh2 Apps Training Part2
Client Object Model - SharePoint Extreme 2012
STUG-Client Object Model SharePoint 2010
Oracle application framework (oaf) online training
An Oracle ADF Introduction
oracle oa framework training | oracle oa framework training courses | oa fram...
Customizations in Enterprise Applications using Oracle ADF
Introduction to Oracle ADF Task Flows
Dh2 Apps Training Part2

What's hot (18)

PPT
PPT
Webapplication ppt prepared by krishna ballabh gupta
PPTX
Adf & Jdeveloper overview
PPTX
Oracle Alta UI Patterns for Enterprise Applications and Responsive UI Support
PPTX
ADF Bindings & Data Controls
ODP
Java Web Programming [1/9] : Introduction to Web Application
PPTX
.NET ONLINE TRAINING COURSE CONTENT
PPT
Microsoft� .NET and Microsoft� Office 2003
PDF
Forms, ADF and JET a Non-Aggression Pact
PPTX
Oracle ADF Case Study
PPTX
Web programming and development - Introduction
PPTX
Oracle adf
PDF
ADF Worst Practices (UKOUG Tech2013)
PPTX
CSS Architecture: Writing Maintainable CSS
PPTX
Integration of APEX and Oracle Forms
PPSX
Oracle ADF Overview for Beginners
PPT
Introduction To Adobe Flex And Semantic Resources
PPTX
Raj Wpf Controls
Webapplication ppt prepared by krishna ballabh gupta
Adf & Jdeveloper overview
Oracle Alta UI Patterns for Enterprise Applications and Responsive UI Support
ADF Bindings & Data Controls
Java Web Programming [1/9] : Introduction to Web Application
.NET ONLINE TRAINING COURSE CONTENT
Microsoft� .NET and Microsoft� Office 2003
Forms, ADF and JET a Non-Aggression Pact
Oracle ADF Case Study
Web programming and development - Introduction
Oracle adf
ADF Worst Practices (UKOUG Tech2013)
CSS Architecture: Writing Maintainable CSS
Integration of APEX and Oracle Forms
Oracle ADF Overview for Beginners
Introduction To Adobe Flex And Semantic Resources
Raj Wpf Controls
Ad

Viewers also liked (7)

PPTX
Asymetric Modernization
PPTX
Beyond XPages
PDF
IBM Bluemix for Administrators with Focus on XPages
PPTX
The Graph Revolution
PPTX
Modernization Math
PDF
AD1542 Get Hands On With Bluemix
PPTX
A (XPages) developers guide to Cloudant
Asymetric Modernization
Beyond XPages
IBM Bluemix for Administrators with Focus on XPages
The Graph Revolution
Modernization Math
AD1542 Get Hands On With Bluemix
A (XPages) developers guide to Cloudant
Ad

Similar to XPages: The Next Step In Your Life As A Notes Developer (20)

PDF
IBM XPages: The Next Step in Your Life As a Notes Developer
PDF
jQuery Comes to XPages
PDF
X pages jumpstart jmp101
PDF
Twelve Tasks Made Easier with IBM Domino XPages
PDF
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages
PPTX
MWLUG 2014: Modern Domino (workshop)
PDF
Developing XPages Applications
PDF
jQuery: The World's Most Popular JavaScript Library Comes to XPages
PPTX
Blugsphere2011 dev
PDF
XPages Blast - Lotusphere 2012
ODP
A powerful web application server (intravision IBM Connect 2013 Update) Febru...
PDF
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
PDF
BP204 It's Not Infernal: Dante's Nine Circles of XPages Heaven
PPT
BP218 IBM Lotus Notes 8 and IBM Lotus Expeditor Customization for LotusScript...
PPT
AD303: Extreme Makeover – IBM® Lotus® Domino® Application Edition
PDF
XPages Blast - Lotusphere 2011
PDF
XPages Blast - ILUG 2010
PDF
Lotusphere 2008 - Jumpstart 206 - Web Services Bootcamp
PDF
jmp206 - Lotus Domino Web Services Jumpstart
PDF
XPages Blast - Lotusphere 2013
IBM XPages: The Next Step in Your Life As a Notes Developer
jQuery Comes to XPages
X pages jumpstart jmp101
Twelve Tasks Made Easier with IBM Domino XPages
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages
MWLUG 2014: Modern Domino (workshop)
Developing XPages Applications
jQuery: The World's Most Popular JavaScript Library Comes to XPages
Blugsphere2011 dev
XPages Blast - Lotusphere 2012
A powerful web application server (intravision IBM Connect 2013 Update) Febru...
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
BP204 It's Not Infernal: Dante's Nine Circles of XPages Heaven
BP218 IBM Lotus Notes 8 and IBM Lotus Expeditor Customization for LotusScript...
AD303: Extreme Makeover – IBM® Lotus® Domino® Application Edition
XPages Blast - Lotusphere 2011
XPages Blast - ILUG 2010
Lotusphere 2008 - Jumpstart 206 - Web Services Bootcamp
jmp206 - Lotus Domino Web Services Jumpstart
XPages Blast - Lotusphere 2013

More from Peter Presnell (20)

PPTX
Lotus Notes: Simplicity
PPTX
Big Data With Graphs
PPTX
MWLUG 2014: Red Pill Development Speed Sponsoring
PPTX
MWLUG 2014: ATLUG Comes To You
PPTX
Modern Notes: Databases
PPTX
Future Proofing Notes Client Applications
PPTX
Lotus Notes: Live Long and Prosper
PPTX
ATLUG Tack-It-On Modern Notes:Modern Domino
PPTX
ATLUG Day of Champions
PPTX
Where's Domino?
PPTX
The History of Lotus Notes
PPTX
Lotusphere
PPTX
The Mobile World
PPTX
Modern Domino: IBM Connect 2014 Summary
PPTX
Modern Domino: IBM Connect 2014 Preview
PPTX
redpill Now
PPTX
Modern Domino: Booleans
PPTX
Modern Domino: Icons
PPTX
Modern Domino: Android 4.4 (KitKat)
PPTX
Modern Domino: Domino 9.0.1
Lotus Notes: Simplicity
Big Data With Graphs
MWLUG 2014: Red Pill Development Speed Sponsoring
MWLUG 2014: ATLUG Comes To You
Modern Notes: Databases
Future Proofing Notes Client Applications
Lotus Notes: Live Long and Prosper
ATLUG Tack-It-On Modern Notes:Modern Domino
ATLUG Day of Champions
Where's Domino?
The History of Lotus Notes
Lotusphere
The Mobile World
Modern Domino: IBM Connect 2014 Summary
Modern Domino: IBM Connect 2014 Preview
redpill Now
Modern Domino: Booleans
Modern Domino: Icons
Modern Domino: Android 4.4 (KitKat)
Modern Domino: Domino 9.0.1

Recently uploaded (20)

PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Spectroscopy.pptx food analysis technology
PPT
Teaching material agriculture food technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Encapsulation theory and applications.pdf
PPTX
Tartificialntelligence_presentation.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
cuic standard and advanced reporting.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Machine learning based COVID-19 study performance prediction
Big Data Technologies - Introduction.pptx
Spectroscopy.pptx food analysis technology
Teaching material agriculture food technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
Encapsulation theory and applications.pdf
Tartificialntelligence_presentation.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Accuracy of neural networks in brain wave diagnosis of schizophrenia
cuic standard and advanced reporting.pdf
Programs and apps: productivity, graphics, security and other tools
Dropbox Q2 2025 Financial Results & Investor Presentation
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Network Security Unit 5.pdf for BCA BBA.
Building Integrated photovoltaic BIPV_UPV.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Per capita expenditure prediction using model stacking based on satellite ima...

XPages: The Next Step In Your Life As A Notes Developer

Editor's Notes

  • #2: G'day and welcome to today's presentation IBM XPages The Next Step in Your Life as a Notes Developer
  • #6: But first a Warning This presentation contains absolutely NO CODE If you are a code junkie and you are here only to overdose on XPages code I'm sorry... but you'll need to look elsewhere for a FIX.
  • #7: So lets get started.... No two Notes developers are alike We are all individuals Our ability to adapt to XPages is going to vary person by person. For the work I do at GBS I have developed personas for three broad categories of Notes developers. Let's take a quick look at Tom, Dick, and Harry three Notes developers whose approach to Notes development (and XPAGES)... is going to vary quite a bit.
  • #8: Tom is our Typical Power User He is not a full-time developer He is a business user who has found that Notes is a very powerful tool to help him automate his job He can't wait for IT to solve his problems so he solves them himself Of course he uses Lotus Notes... He develops application for the Notes client only He typically creates Forms, Views (and occasionally) Pages and Outlines He adds business logic to his applications using Simple Actions & @Formulae On the odd occasion he feels brave and codes some in-line LotusScript The LS code is usually stolen (oops) borrowed from other apps He does not use a formal SDLC... he know what he wants and he just does it. Tom's approach is simple but very very effective His applications are never documented and when he leaves nobody knows anything about how they work Tom is the backbone of a movement that has seen Notes applications explode across his organization XPages is not going to be a good match form Tom at all At least not in the current version of Xpages available today Tom's needs are probably going to be best met by continuing to develop Notes classic applications.
  • #9: Dick is our Traditional Notes Developer. His full-time role is to develop Notes applications. Dick was once a power user but has since taken his skills to the next level He develops a mix of Notes client and Web client applications. He writes most of his business logic using LotusScript Some (but not all) of this is now placed in LotusScript libraries. The code is procedural. He makes extensive use of the Notes event model to add logic to his applications. Dick has learnt the value of agents. These are coded using a combination of @Formula or LS. Dick has libraries of LS code he reuses in many of his apps. He has learnt the power of templates Dick is a one man Notes programming machine. He prefers to use an iterative prototyping methodology whenever he can. For larger projects his company requires him to follow a formal (waterfall) SDLC. Dick attends Lotusphere and other User group events whenever he can to take his development skills to the next level. Lately he has been hearing a lot about XPages and he is ready to take the next step. The good news is that XPages is probably going to be a good match for Dick. He has the skills to make the jump and he is motivated to learn something new and exciting.
  • #10: Now... lets meet Harry Harry is a software engineer He has only been working with Lotus Notes for a few years He has a University degree in Computer Science and has done some programming with Java, Ruby, and C# He places almost all his LS code in libraries using OOP Harry already uses Java to write some of the business logic for his applications He is the "Go to" guy the company turns to when they need a quick solution for the Notes Client or Web client. Lately he has been getting a lot of requests to develop mobile applications Harry makes a lot of use of dojo along with a number of Open Source java projects. Dick likes to use Agile SDLCs and favours Test-Driven development Dick's company has just migrated from Notes/Domino 7 To Notes 8.5.2. This means he is now able to start to make use of Xpages for many of his projects. XPages is going to provide Harry with a lot of power and flexibility he never had before. Unlike Dick, Harry is probably going to be inclined to use Java quite extensvely when he builds applications. He is likely to be the first person in hois company to make extensive use of plug-ins, the XPages Extension Library and the IBM Social Business toolkit.
  • #11: So let's now take a look at the architecture of Notes application development. Comparing and contrasting Notes Classic and XPages
  • #12: Perhaps the most striking thing about the architecture of Notes is the NSF container The NSF container is an important part of what makes Notes RAD It provides a single container for both application code and data This makes it very easy and very fast to deploy onto one or more servers. The NSF is a distinctly non-SQL data store. A characteristic that has started to become fashionable in the IT world some 20 years after Notes first started doing it. The NSF also supports DAOS as a way of centralizing multiple instances of large attachments The good news is that the NSF is the same container used to deliver BOTH Notes Classic and XPages applications.
  • #13: Alongside the NSF we have the Notes Security model. Many of the security constructs we use with Notes Classic applications such as ACLS, Roles, Server Access and Reader/Author fields remain the same. One major difference is that the concept of ECLs do not exist in a Web browser. There are also some differences in the way Server Access is implemented because much of the XPage code is now being executed on the server rather than inside the Notes Client. So there are some differences to watch out for... Note: It is possible to run XPages applications inside the Notes Client in what is known as XPiNC. The security model for XPiNC is a lot closer to the security model for Notes Classic. We will cover XPiNC in more detail a little later in the presentation.
  • #14: Another great strength of Notes Application development has been Replication and Clustering. It is very simple to deploy multiple instances of a single application to servers around the world to reduce potential performance bottlenecks. While Replication and Clustering will continue to work the same, they will play a slightly different role in XPages applications. Especially those being accessed via a Web browser. XPiNC supports failover, but the concept is foreign to Browser-based applications. The concepts of Web farms and load balancing are not yet fully supported by XPages and care should be taken when deploying XPage applications onto multiple servers.
  • #15: The client/server model used by XPages differs significantly from Notes classic applications. As an Xpage developer, this is where you will probably face your greatest challenges adjusting to the Xpage architecture. Notes client applications typically operate with a thick client model. Almost all of the business logic written using simple actions; @formulae; and LotusScript executes on the Notes client. With XPages, much of the code (SSJS) executes on the server. Conversations with the user must be designed differently. For example... Field validation will typically now be done on the server. So it will be better to validate all the fields at once and provide a list of issues, rather than validate fields one at a time. Whereas almost everything was previously done with LotusScript you will now find yourself having to make choices between the use of (client sided) JavaScript and SSJS. Highly interactive applications will make extensive use of Ajax, which is integrated into XPages. Because much of the business logic for you applications now runs on the server it will become necessary to remember information between interactions with the user. This involves learning about the use of Scoped variables such as Session Scope, Application Scope, and View Scope. You may also need to learn about things such as serialization, a requirement for data to be saved as scope variables.
  • #16: As I mentioned in my introduction Lotus Notes is renowned as being a great tool for Rapid Application Development. When your employer needs an application developed quickly there is always Lotus Notes.
  • #17: What has made Notes classic such a great RAD tool is that it is... Easy to learn & Well documented And it provides a toolkit that allows applications to be built from scratch in a fraction of time other development platforms requires. Notes applications are integrated into the Notes client that delivers a comprehensive set of capabilities that are automatically available to all Notes applications. Things such as Security.. Searching.. Integrated IM, and Offline support XPages in its current form still presents some challenges as a RAD tool It is a lot more complicated making it harder to get started with your "First App" IBM continue to have disappointed with the level and quality of documentation that is available. But there are ways to minimize this XPages is way way more powerful and way way more extensible. This means that ultimately you are going to be able to take Xpages development to levels never before possible with Notes Classic. XPages is still in the early stages of its life. Expect to see some major improvements over the next 1-2 years that will dramatically improve the RAD capabilities of the platform. IBM seem to be starting to recognize the importance of Notes as a RAD tool.. Especially in the area of developing Social Applications. This includes the availability of the Xpages Extension Library and the IBM Social Business Toolkit.
  • #18: RAD is very dependant on the ability to reuse code... With Notes classic we had a range of features such as Shared Fields Shared Columns Subforms and Script Libraries that allow us to reuse components within the same application and across multiple applications With XPages we get a new design element known as The Custom Control I often here Custom Controls described as Subforms on Steroids. We will cover these in a little more detail later For Java developers we have the ability to build custom components Script libraries continue to be an option for (client) JavaScript and SSJS. In 8.5.3 we will also see a new Java Element being added XPages also has integrated support for CSS and Themes allowing multiple applications to be developed using a consistent look and feel.
  • #19: One of the things that differentiates IBM from Microsoft is the support for Open Standards. Microsoft prefers to lock its customers in to a proprietary stack. In contrast, IBM are showing a preference to support open standards. This is much more evident with XPages than Notes classic With Notes classic we had a few resources such as OpenNTF that allowed Notes developers to download templates and code snippets for use in applications. With XPages we continue to see templates available on OpenNTF. We also have the ability to extend applications through the use of custom controls, components, and plug-ins. By supporting open standards we as XPage developers also have a greater capacity to go beyond the yellow bubble to share and participate in a much wider range of OpenSource projects such as the great many OpenSource Java projects that are available.
  • #20: To many developers, Notes Classic development was synonymous with Notes client development. Yes you can also make those applications run in a Web browser, but this often required a multitude of hacks to make it work. Out of the box Notes delivered GREAT Notes client applications. With XPages the focus is more on Web development. It is possible to build XPages that run in the Notes client. This uses XPiNC which effectively runs a XULRunner browser session inside the Notes client. It does work, but I would look on it more (as it exists today) as being Xpages supporting the Notes Client with a similar level of success as which Notes Classic supported Web Browsers.
  • #21: There are some important capabilities available when building Xpage applications for XPiNC that you should be aware of... XPiNC allows the use of standard Notes ID authentication rather than the Web browser authentication we are probably already familiar with. XPiNC will support taking an XPages application Offline. XPiNC will allow agents to be executed on the Client. This may be very important when taking applicatiosn already built with significant amounts of LotusScript code inside agents. Remember: LotusScript does not execute inside an XPage. XPiNC provides Failover capabilities should one server in a cluster become unavailable. With XPiNC Dialogs with the user make use of the Native Operating System. XPiNC also provides native support for the detection of unsaved documents prompting the user to save their changes before navigating away from the current page. For browser-based applications this logic must be added manually to the app.
  • #22: As mentioned on the last slide... Web development is doable In Notes Classic (or Domino Web Development), but it often required a lot of hacks. We had separate WebQueryOpen and WebQuerySave agents, PassThruHTML could be added to Form/Pages HTML tags could be added to View Columns JavaScript caould be added to some events It usually possible to get the job done but the code was often difficult to maintain. It was a software engineers nightmare... With XPages, development for Web clients is standard. The XPage platform is designed to deliver modern Web 2.0 applications.
  • #24: OK... Let's now take a look at the Data Access layer When we think of Notes Applications we rarely think of them as having a Data Access layer... The data is just there
  • #25: In Notes Classic our database contains a loose collection of documents. Each document is typically associated with a Form that is used to view/maintain data in that document. Somehow Notes magically puts all the data there. With XPages we are introduced to the concept of DataSources One of the available Data Sources is the NotesForm The NotesForm allows us to associate data in a Notes document with controls on an XPage We can use Forms from existing applications or build new Forms from Scratch. In the XPages realm the only thing important about a form is providing a list of fields. Any formatting and business logic added to the form is largely ignored.
  • #26: Typically Notes applications make extensive use of Views and Folders. For Views, selection formula defines those documents that are to be included. Columns are added to views to define the data that is to be available for each row (or document) With Notes Classic data definitions are combined with the presentation characteristics. Each view is only able to be presented the one way. In Xpages we have the NotesView datasource which can be used to display the contents of views on anXPages The same view can be used on multiple Xpages, with each Xpage able to present the data in different ways. Additional columns can be added to a view, including the ability to join data together from multiple documents. A capability that has long been the holy grail for many Notes classic developers. The Repeat Control in Xpages also privides some very interesting capabilities for looping over the contents of a view/folder to display data in a number of ways never before possible. And the possibilities don't end there.... In Notes Classic a form is typically bound to a single document and a view displays... well the view With XPages it is possible to include data from multiple sources. This includes displaying multiple documents and or views on a single XPage. We are also not constrained to working with data from the NSF container. t is also posisble to bind data to XML sources and even other Relational database. In the future it will be this capability that takes Notes development into a whole new frontier of opportunities.
  • #27: Next we will review the Presentation Layer This is where the rubber meets the road in a Notes application
  • #28: Notes Classic has a comprehensive range of design elements and controls which can be used to display the data inside an NSF to the user. For Xpages Forms and Pages are replaced by a single design element - The XPage We have a much broader range of controls that can be added to An XPage We have a range of container controls such as Divs There are a wide range of input controls to display and capture data The Repeat Control provides a powerful way to repeat information without the need to resort to the treasured Notes Classic technique of Field_1, Field_2 etc along with suitable to Hide-When formulae to display just those rows with data. The concept of Hide-When formulae is replaced by the Rendered property. Instead of when not to display something we now use tyhe much more intuitive When to display something logic. Form properties typically have static values in Notes Classic. In XPages we have the blue diamond that allows most properties to have their values computed.
  • #29: The concept of Subforms in Notes Classic is replaced by Custom Controls Custom Controls are way more powerful than Subforms allowing the developer to do things such as.. Using the same field in multiple locations The same custom control can be used multiple times within the same XPage. For example within a Repeat Control Custom Controls support properties allowing data to be passed from the parent to the custom control. Trust me... As an Xpage developer You are going to love Custom Controls.
  • #30: As you would expect in any modern Web development platform XPages have integrated support for both CSS and Themes. While CSS had limited support in Notes Classic XPages allow almost all visual components to be linked to CSS classes. Classes can be computed using business logic to dynamically change the look of an application based upon conditions at runtime. Themes build on CSS by allowing browser specific needs to be taken into account. Themes are also a way to make an application look different on different devices.
  • #31: I would like to draw you attention to one specific CSS Framework. OneUI.... This is a set of Styles/Themes developed by IBM. It is not a requirement that you adopt OneUI in your own applications. But it is important to know that it is there and that this represents the look & feel that IBM is using within their own products. This includes the Notes Mail template, the new TeamRoom template, Lotus Connections LotusLive etc. Future versions of OneUI will also incorporate many of the design ideas developed as part of project Vulcan.
  • #32: HTML is always an important part of any Web application. With Domino Web Development it was almost always necessary to intervene and inject your own HTML into the application in order to make the application look good. or even to behave correctly. With XPages it is possible in many situations to completely forget about HTML. The controls provided by XPages simply take care of that entire layer of complexity. XPages provides a default render kit that generates the necessary HTML for most modern browsers. But like a lot of things with XPages... If you don't like the way it does things you have the option of doing things yourself. The XPage event model support beforeRender and afterrender events that allow you to add additional logic just before or just after the HTML has been generated. In addition it is possible to build your own render kits that render controls in a completely different way. One example of this we are exploring at GBS is the ability to automatically render an application on a mobile device in a completely different way to a standard browser. Not by changing the presentation layer in the XPage but by developing separate render kits that control how each component is rendered on each device.
  • #34: Moving along... Lets now take a look at how we represent our Business logic inside a Notes application
  • #35: Notes Classic provides 14 Simple Actions which can be used as a quick way of performing common tasks With XPages we have 12 server and 3 client based simple actions. With XPages however you also have the ability to define your own simple actions.
  • #36: Notes Classic provides us with a portfolio of 300 @Functions and 391 @Commands. This forms the cornerstone for the way in which many people like to add logic to their applications. With XPages IBM have extended SSJS with the implementation of 96 @Functions. Most of those are the same as the most commonly used @Functions We all know and love in Notes Classic such as @DbColumn and @Dblookup. There are also some new @Functions It is important to note that even where the same name has been used not all the @Formula available in SSJS behave exactly the same way as the originals. XPages being XPages it is possible to define your own @Formulae and even to change the behavior of IBM's implementation of @Formulae.
  • #37: Since Notes 4, LotusScript has dominated to become the language of choice for most Notes developers. In the main the business logic implemented using LotusScript Code will now be implemented using SSJS. This is where much of the “pain” of learning XPages will be felt. SSJS is a new language based upon JS that needs to be mastered. There are many similarities and an equal number of differences. If you already know JS you have a GREAT start. An XPage Application can continue to use LotusScript code to support Agents and Web Services. XPages also supports another scripting language known as Expression Language. To find out more about EL you may need to refer to Text Books or Documentation on JSF as there is little documentation for EL within XPages.
  • #38: Client Sided scripting is largely the domain of JavaScript. This is pretty much the case for all Web browser based applications. If you haven't already mastered JS the good news is that there are large number of books and on-line material available to get started. And remember, in learning JS you are acquiring a skillset that can be used in almost any Web development platform.
  • #39: There are many JS frameworks available such as JQuery, YUI, Ext.ND, Prototype, and Dojo. Like any framework, they reduce the amount of code required to perform a task by implementing a set of common tasks in a callable library. As an XPage developer you are free to choose any JavaScript framework. You will probably need at least one to implement any form of sophisticated client-sided logic. Keep in mind that Dojo is integrated into XPages and forms the basis for many of the controls. If you don't have a compelling case to use something else, I would suggest at least starting with dojo. Dojo has a comprehensive library of tools that include Input Controls, charting, image previews, data grids, AJAX support, and even controls for mobile devices.
  • #40: For heavy duty programming there is Java. Java has been available within Lotus Notes Since Notes R5 but its use has never really taken off. To fully harness the power of XPages you are going to need to develop Java skills. This is unlikely to be a requirement to get started with XPages but you should For Software Engineering this is far and away the best option for implementing OOP concepts such as Classes, Interfaces, Delegates, Event Listeners etc. If you work as part of a large Notes development team you may want to consider adding a Java expert to your team to cross-train your Notes Classic developers.
  • #41: Almost all Notes Developers will be familiar with the Notes Document Object Model (DOM). Whether you program in LotusScript, Java, or COM, the DOM provides a way to access the content of Notes databases. Many, but not all, of the same classes such as NotesDatabase, NotesView, and NotesDocument continue to be available from SSJS. SSJS also supports a number of new classes such as the NotesXSPDocument and NotesXSPViewEntry to access XPage specific information.
  • #42: The Event Model changes dramatically between Notes, Domino Web Development, and XPages. Each XPage has its own set of events that operate based upon the lofecycle of the actual XPage. Xpages supports multiple datasources so, in addition, each NotesForm DataSource will have a set of events such as queryNewDocument queryOpenDocument postSaveDocument Likewise every NotesView Datasource wull have a set of events such as queryOpenView postOpenView
  • #43: Finally, lets take a quick look at some of the tools we will be using or have option of using to assist us develop our first few Xpage applications.
  • #44: Domino Designer for Eclipse is used to develop both Notes Classic and XPage applications. The XPage editors are all Eclipse components, so DDE is actually a better fit for DDE than Notes Classic Design Elements. Much of the wasted screen real-estate that exists when editing Notes Classic applications will contain useful information when editing XPage design elements. With DDE 8.5.3 you are likely to see separate perspectives provided for Not Classic or Xpages. You will get productivity gains from the Source Code view and the drag/drop capabilities for controls. The biggest drawback of DDE is likely to be the lack of a debugger fro SSJS and XPages in general.
  • #45: Notes Classic does not provide any integrated SCM. It was however possible to use a 3 rd parth tool such as TeamStudio CIAO to add SCM to Notes Applications. XPages still does not provide SCM. As part of the Eclipse framework it does however provide much better integration for SCM tools that support Eclipse. This includes Sunversion (SVN) and GIT. Products such as Rally can be used to integrate Code Management with Task Management and Time Management.
  • #47: There is a growing list of resources available to learn more about XPages. Some of my favorites include:- The Mastering XPages book written by the developers of XPages inside IBM. The Notes In 9 Series of FREE videos produced by David Leedy. The XPages Cheat Sheet also developed by David Leedy. OpenNTF.Org is a great place to download examples of XPage applications. Being OpenSource you are free to explore the code to learn how these applications have been built. Plus there is a wide range range of online training material developed by TLCC.
  • #48: And just before closing. Let me also make mention of specific topics you should make a note of to learn and master if you want to truly get the most out of Xpages. JSF – The Java-based technology on which Xpages is built. Eclipse – The development platform used for DDE and the Notes Standard client. Dojo – The JS framework used extensivley by Xpages JavaScript. Client sided scripting. And while SSJS is not JS, it is based upon JS so many of the material written for JS will also be relevant to learning and mastering SSJS Java... As I have mention several times. Java is not a requirement to get started with Xpages, but a good working knowledge will allow you to extend Xpages to exciting new levels.