As project Vulcan starts to roll out over the coming years (possibly in 2011) life as a Notes Developer is almost certainly going to change. Classic Lotus Notes development using Forms, Views, Framesets, Outlines, Agents and LotusScript will continue to exist much in the same way that Notes R5 and Notes 6 can still be found in some organizations. But a new style of development is likely emerge. Like Vulcan itself, many of these new approaches to programming are here already. Its just that many of us are not focusing on these things as much as we soon will. The following are a few random thoughts about what life as Lotus Notes developer may look like when we make the switch and start living on Planet Vulcan.... . The first change is that many of use will probably stop being Lotus Notes developers and start becoming Lotus developers. As the products start to integrate the role of a developer of collaborative solutions will focus less on stand-alone Notes applications and more on integrating applications using a Services Oriented Architecture feed the Vulcan eco-system. It is likely that as programmers we will soon start speaking a new Vulcan language where terms such as APIs, RESTful services, ATOM feeds, managed beans, iWidgets, plug-ins, portals, SaaS, and On-Pemise v Cloud will be used even more than they are today. (yes, its scary to think we might soon all start to sound like Nathan T Freeman) . The Emergence Of Lotus Connections I expect more and more Lotus Notes developers (oops Lotus developers!) will be paying more and more attention to Lotus Connections. At Lotusphere the only Lotus product in which Analytics was ever mentioned was Lotus Connections. It make sense that this part of Vulcan be implemented as a service in Lotus Connection as the high volumes of data the analytics engine will process is better suited to the Websphere Application Server, DB2, and Oracle infrastructure Lotus Connections supports. So it is likely that applications we develop will either be pushing information to Lotus Connections and/or we will set up our applications in such a way that Lotus Connections can pull. A public API has been promised on day one for Vulcan and Lotus Connections already provides support for REST APIs. Similar capabilities will be coming to Notes/Domino in 8.5.2. Feeds also represent a potential major player in the transfer of information and Lotus Foundations has well developed support for ATOM feeds. SOAP-based web services cannot be discounted, especially as Lotus Notes now supports this protocol with Web Service Providers (Notes 7.0) and Web Service Consumers (Notes 8.0). One of the first steps in becoming a Lotus Developer will be to develop a thorough understanding of REST, ATOM, and (perhaps) SOAP/WSDL. Where possible I would be looking at how applications can publish or consume data using a Services Oriented Architecture (using web services and feeds). As a Domino Administrator I might be tempted to strengthen my skills administering Lotus Connections servers as I expect companies wishing to get the most out of Vulcan will have a growing number of Lotus Connections servers. If you are like me there is a lot to learn about Lotus Connections in the coming months. So far my only contact has been via bleedyellow.com. . The Future of Quickr? I have seen others speculate about the future of Lotus Quickr. I too am starting to wonder if this product has a long term role as a stand-alone product or whether it may ultimately make more sense to role this product into Lotus Connections. I don't see this happening soon, so part of the transition to being a Lotus Developer should include adding Lotus Quickr to your toolkit (where possible). As things stand today Lotus Quickr is needed to offer a complete collaborative solution that can stand up against (and beat) Micro$oft $harepoint. . The Continuing Push to Web Development The focus for Vulcan appears to be based around the use of Web-based technologies. We have already seen announcements that HTML 5 and CSS 3 will be a part of Vulcan. Associated with that I would expect application development to become even more focused on XPages. There will most likely be a role for Notes Classic applications in a Vulcan world but these applications are going to start looking more and more like legacy applications with each passing day. Notes development will still exist for the Notes client but this too will probably move to XPages as part of a push to make application portable across a wide range of platforms and devices. One way or another it is going to become necessary for Lotus developers to acquire strong skills in HTML, CSS, Themes, and JavaScript. For XPages this is almost mandatory, but opportunities exist to expand skills in this area NOW with standard Domino Web development and even Notes client development itself (yes Forms do support limited amounts of JavaScript and CSS). . Where To With The Notes Client? One part of IBM's strategy that puzzles me is their thick client strategy. For years the Notes client has been one of the best working examples of thick client development and a cornerstone on which so many Notes applications have been developed and deployed so quickly. With XPages we seem to be seeing application development treating the Notes client as nothing more than a Web browser. The only thing that makes sense to me is that the Notes client is evolving into an Eclipse client and that its future will depend on targeting all Eclipse developers to develop applications for this client. There seems to be plenty of room for such a client on Vulcan. Rich client controls, composite applications, off-line access, embedded Web browser, and the sidebar as a host for plug-ins and widgets. To become a Lotus developer the knowledge we have acquired for the Notes client will need to be replaced with a detailed working knowledge of Eclipse. . Yes, LotusScript is Dead! For almost all Lotus Notes developers, life today consists of Forms, Views, Outlines, Simple Actions, and @Formulas, For a great many it's these things plus lots of LotusScript. When we arrive on Vulcan we are going to enter a world with a new programming landscape. Sure some of the landmarks will be identifiable to Notes developers. But we are going to encounter a great many things we may not have encountered before. It is likely that the Vulcan surface will not sustain LotusScript code for an extended period of time. People who are already fluent in both JavaScript and Java are more likely to become successful in their Vulcan endeavors. As Notes developers we can either choose to set up camp in a Lotus-Notes (LotusScript) ghetto or we can embrace the new community and assimilate. Yes, by sticking with our own kind we can retain our existing culture and continue to talk to fellow members in our original native tongues. We may feel safe in our LotusScript cocoon. But make no mistake, the world around us on Vulcan will continue to change and evolve. If we wish to be part of the new landscape and enjoy the wide range of new exciting capabilities Vulcan has to offer we will need to evolve as developers. To become a true Lotus developer we will need to expand our skills so that we can talk in these new Vulcan languages. The first step down that road is to XPages, JavaScript, and SSJS (plus CSS and Themes). In many ways it feels like going back to kindergarten (without any text books!) and spending moments feeling completely inadequate as a developer. For experienced LotusScript developers like me this is both difficult and frustrating. And the worst part is that after you get over that hurdle you may start to find that even that is not enough. Emerging on the horizon next is the potential need to also master Java. Eclipse is based on Java, Lotus Connections is based on Java. And I suspect Java will soon have a larger role to play in Lotus Notes development (just a hunch). . Some of you are probably better prepared than others for our arrival on Planet Vulcan. For those of us that do chose to make the journey there is a mind-boggling amount of new information we must start to acquire. There are so many new technologies and languages to learn and master that the 18-24 months preparation time we have may not be enough. My advice is not to wait until your organization lands on Planet Vulcan before you start preparing. It may be too late. The challenge must be to find ways NOW to make these new technologies relevant to your current projects so that you can stop writing next year's legacy applications and start creating the building blocks for a long-term home on Vulcan. The skills acquired may pay enormous dividends for both you and your employer. After all, it just might be you end up retiring on Vulcan so you better start making it feel like home ASAP.
It is now exactly one week since I arrived home from my first lotusphere. Over the past week (and the week before) I have given a lot of thought to project Vulcan and the potential it offers to redefine our approach to Notes development, especially for those applications that involve (or could involve) an aspect of knowledge management and/or collaboration. Prior to Lotusphere I had already been doing some work on developing an idea on how a modern Notes application could "do collaboration". What Lotusphere (and project Vulcan) provided was some clearer insight into what I have been trying to do. It also provided the chance to redesign my approach so it could be more consistent with what Project Vulcan promises to deliver. . I am present;y working to consolidate all these thoughts in the form of a new project I am calling Project Klingon. I have just published my first YouTube video which demonstrates some of my early thinking on how to build a Notes collaboration application using Notes/Domino 8.5.1 and XPages. It is not Project Vulcan, only IBM can deliver on something as massive as that. Project Klingon represents some ideas on things that can be done today to implement some of the ideas contained within the Project Vulcan vision. Ideas that may allow you to dramatically improve the collaborative capabilities of Notes applications. It is early days and I am still exploring options of what I may do with Project Klingon. For now it is the perfect project for me to learn more about XPages and Collaboration. Your own thoughts, view, and ideas are always most welcome. . A working example of the prototype should be available on my yellowverse.com Web site soon. Ultimately it will be the engine that drives the entire site (at least until Project Vulcan arrives).
One of the many interesting aspects of Lotusphere 2010 has been the first pubic showing of early code drops of 8.5.2. The following is a list of the features I have heard covered by IBM representatives at sessions I have attended so far. There are still more sessions, so the list may grow..... I will provide it now for the benefit of those unable to attend these sessions. I may not get another chance for a while as it was mentioned that a code drop will be made available within a few days for members of the managed beta program. So at that time a cone of silence must descend....
When editing XPages it will now be possible to drag/drop new controls onto the Xpage while using the source code view (YES)..
It will be possible to mark an XPage as being accessible to Public Access users much like other design elements are.
When dragging fields from a data source onto an XPage the fields will no longer default to text edit boxes. They type of control created will now vary based upon the type of data item used on the underlying form (e.g. date/time, rich text etc).
When dragging fields from a data source onto an XPage it will be possible to reorder the fields before they are imported.
Radio and Checkbox groups will now appear as native XPage controls. No more coding them as combo boxes first, adding the allowed values and manulally chaging them to radio/checkbox group controls.
It will be possible to sign a database from within designer using a right click action (Yes, yes, yes).
A dojo tab is being added to most controls that are implemented using dojo to allow for a wide range of dojo properties to be set from the Designer UI.
CKEditor will become the new default rich text editor bringing a vastly superior editor to the Web client.
Editing Database scripts will now be invoked using the Eclipse editor. An Eclipse @Formulae editor is not yet available to a workaround is in place when @Formula are used.
The "New Application" dialog is being redesigned and will include (amongst other things) the ability to assign it to a specific working set
It will be possible to add XPage components to a "Library" which can be shared across multiple applications.
A series of RESTful APIs are being made available that will allow Developers to extend XPage applications in many ways. This includes writing new controls, data drivers, validators etc.
In addition, the following features are being worked on but are considered unlikely to make 8.5.2. So think 9.0 sometime in 2011.
Hooks within DDE to Open Source source code systems.
A true class editor for JavaScript and SSJS
Many components of Project Vulcan (including Lotus Notes) will utilize HTML5, CSS3, and Dojo++
Hooks will be provided to the new analytics capabilities being added as part of Project Vulcan.
It also looks like we will start to see some developer-focused tools made available to Notes develoeprsvia OpenNTF. This is an awesome initiative and will include:-
A tools that will allow for the profiling of XPages running on a Domino Server
A tool that will migrate existing Forms-based applications to XPages (This was also mentioned in the startegy session on Notes so we may see partial solutions released via OpenNTF before a more comprehensive tool is provided as part of the product in Notes 9+
Happy New Year to all fellow citizens of the yellowverse and especially
those few that live inside the yellow bubble and have been reading my
blogs during the year. Yes folks, it's time for the obligatory annual
review blog entry - with one eye to the year that lies ahead. . Living
here on the West Coast of the US I got to enjoy 2009 for a little
longer than most. It wasn't always that way. In Australia I would
often spend New Year with family & friends on the Gold Coast, a
city that spans two states, each in a different time zone. So not only
did I get to celebrate new year earlier than most on the planet, I got
to celebrate it twice! Now I watch the amazing fireworks display on
Sydney Harbour, the awesome sight of the London Eye, and of course the
famous ball-drop at Times Square. By the time new year arrives here in
Los Angeles it seems somewhat anti-climactic. . For me, as a Notes
developer, life went the other way this year... I started 2009 behind
almost everyone doing almost all my Notes development with Notes 6.0.
As I had done for many years I would watch and read with envy the many
great things other developers were able to do with later versions of
Notes. Happily, I ended 2009 doing ALL my development with Notes
8.5.1. During the year I had a couple of painful months using 8.5.0,
the release I never wanted to use. 8.5.0 turned out to be a bigger
train wreck than I imagined. But while 8.5.1 is not perfect (just
don't mention documentation!) I quite like it and what I can now do,
especially XPages for Web development.... . XPages As a
Notes developer there is no doubt in my mind that 2009 was the year of
XPages. The tone was set at Lotusphere 2009 when XPages presentations
abounded and it seemed to be the buzz topic on the blogsphere for most
of the year. For me it was like learning Notes development all over
again. I spent 3 months in XPages Kindergarten trying to figure out
how to do some of the most basic tasks. Later I spent time as an XPage
first grader building on my three Rs ( Reading, wRiting, and aRithmetic)
for XPages. After 6 months I feel like I now have a good basic
understanding - so much so that I am spending the first two weeks of
2010 training other Notes developers how to support my new XPage
applications. I even made it onto my first Taking Notes podcast episode 100 - talking about XPages . Planet Lotus/Blogging During 2009 I transformed my blog on bleedyellow.com
from being a commentary on my .Domino Framework project to a more
general Thoughts and Views on Notes Development with a view to
stimulating discussion and debate within the Notes community. The stats provided by Planet Lotus
suggest I have been successful in producing a blog that is being read
inside the yellow bubble. I am especially happy about the amount of
comments I have been able to attract for many of my blogs. During 2009
I moved all my XPage Technical blogs to the new XPages Blog.
Great work Bruce Elgort and the many others for getting this concept
off the ground. I like the concept of a shared technical blog that
focuses on a specific area and hope to see that concept expand in 2010. . OpenNTF 2009 was a year in which we saw IBM actively support OpenNTF.
This stimulated a lot of debate, but it seems that the all important
groundwork has been laid. Now thanks to the efforts of Niklas
Heidloff, Steve Castledine, the Steering Commitee, and a great many others we are seeing a
steady flow of new projects being made available for use by the
yellowverse. Early in the year my own LotusScript-based .Domino Framework
project went gold. Just in time for me to start work on a new
SSJS-based xDomino Framework project. I also had the pleasure of
working with Niklas and Steve on the Discussion NextGen project, the first OpenNTF project in which the intent is for IBM to take the code back into the Notes product itself. . IdeaJam
During 2009 we saw Idea Jam
used as part of the Lotus Knows campaign attracting a lot of attention
from the yellowverse. Yesterday I achieved a personal milestone with
my 100th idea
on how the Lotus Notes product could be improved. This past year I
made a concerted effort to make more comments on other people's ideas,
especially when I found myself demoting an idea that was important for
somebody else. I started making use of IQ Jam posting a few questions and answers and was fortunate to be selected as a member of the managed beta program for 8.5.1. . DominoFramework.com
I 2009 I started my own Web site as a home for my .Domino Framework project. It still needs a lot of work. One spin-off from the Web site was Lotus Legends which has attracted a moderate amount of interest. By year's end I managed to profile my first 50 members of Lotus Legends. . 2010
It's only day one of the new year and I am amazed at how many project
and goals I already have for Lotus Notes over and above the work for
which I get paid....
I will be attending my first ever Lotusphere in 2 weeks time and
I am quite excited. I look forward to meeting many of the people with
whom I have interacted inside the yellow bubble as well as meeting a
few more that live outside that bubble. I am expecting 2010 to be a
big year for Notes developers and lotusphere should again set the tone for the year ahead.
I am in the process of transforming my dominoframework.com Web site into a community Web site yellowverse.com
(take a sneak peek) which I hope will be a better home for Lotus
Legends and other initiatives I have planned. I plan to reach out to
members of the Notes community not already well served - especially in
non-English speaking countries - to assist in making this site relevant
to the greater needs of the community without detracting from the other existing community sites. I also hope to have 100 Lotus Legends profiled by the end of 2010.
All will be revealed at LS, but I expect I soon will doing a
whole lot more SSJS coding and a lot less Lotuscript coding so there is
a need for me to build a new framework that works with XPages - my
OpenNTF project XDomino Framework.
I have a new pet project (cSpace) building a Lotus Notes-based
collaboration tool. I plan to showcase this as part of
yellowverse.com. At this time I am exploring if it might have some
commercial potential. If it doesn't I will release it on OpenNTF.
On the ideas front I am hoping to secure a spot as a Design
Partner. This will allow me to better focus my many ideas based upon a
better understanding of what IBM are doing. Of course it will also
mean less blogs about what I think is going on - as I might actually
know a little more !! Hopefully I will get an early look at 8.5.2 and
9.0.
By this time next year I am hoping I will be hard at work putting
my finishing touches on my first lotusphere presentation (LS2011).
Preparation for that has already started as I know I have a lot of
competition to secure a speaking slot at this event. I would like to
get to at least one other LUG during 2010 as part of that preparation.
So to all of you, I would like to wish you and your families the very
best for 2010. Looking forward to meeting as many of you as possible at
LS 2010. I am also relying heavily on you to keep the feedback
coming. It is the diversity of views, opinions, and talents that makes
the Notes community such a great one. Cheers!
With Lotusphere
2010 just round the corner now the yellowverse will soon explode with
a wealth of new information about what IBM has planned for Lotus
Notes 8.5.2, 9.0 and beyond. I have already made a few predictions here and here.
:
The abstracts for
many of the LS sessions have now been made available. These provide
a few more insights into what may be coming soon to your corner
of the yellowverse.
AD110
Unleash the Power of Xpages
promises to be a very exciting sessions for Xpage enthusiasts as its
explains how a new XPage public API can be used to connect native
controls such as scrolling grids or outlines to an Xpage. The API
also promises to open up additional data sources (think relational!),
REST services, and Sametime awareness.
In AD101
DDE Full Speed Ahead, Maureen Leland and Peter Janzen will be
discussing DDE and how the Eclipse foundation will soon allow DDE to
move into “hyperdrive” (no specifics given).
Over the weekend I had the chance to observe close-hand the making of One Hundredth epsiode of the Taking NotesPodcast. Bruce Elgort and Julian Julian Robichaux are to be congratulated for there dedication to the Notes community in reaching this milestone. Taking Notes is probably the #1 radio station broadcasting across the yellowverse. As you can imagine these podcasts don't just happen. They require a great deal of planning and preparation plus the time to record and produce the final podcast. Bruce is an absolute legend in the Notes community having been one of the co-founders of OpenNTF. His company, Elguji provides the Notes community Ideajam and, more recently, IQJam. In addition he and Ricky Oliver came up with the concept of Show N tell Thursday. Juian has made significant code contributions to the Notes community with OpenNTF projects such as OpenLog and the handy dandy LS2HTML tool. Both guys are regular speakers at all those conferences ending with "LUG" and "sphere". Well done guys on reaching this major milestone. Avid listeners like myself really appreciate all the time and effort that goes into making these podcasts available to the yellowverse. : Note: Episode 100 covers XPages and the OpenNTF awards. Bruce and Julian invited two XPage gurus Matt White and Declan Lynch to talk about XPages. As an Xpage 1st grader I was on a school excursion to the Taking Notes studios and was fortunate enough not only to see how the show is produced but I also got to sit behind a microphone for a while for my first ever podcast experience.
As I slowly work my way through XPages school I am collecting all my written assignments and placing them in a project folder. This project folder is known on OpenNTF as the xDominoFramework project. The project can be downloaded from OpenNTF or you can view various aspects of it on-line from www.dominoframework.com. : Some of the material was written using crayons while I was in XPages kindergarten. Some material is a little better having been written during my time in first grade. It still has a long way to go but it may offer some assistance to those making a similar journey. You can expect it to improve over time as I learn more about XPages and SSJS. The content is built from the .DominoFramework and adds the following:- Developer Tools: New Summary - I have added a new summary of the developer tools using Xpages repeater control as an alternate way to style a view. Event Simulator - Following on fromk my recent blog I have provided an on-line event simulator to explore the order tghat evnts are executed on an Xpage. Code Generator - This tool has been extended to produce property code for SSJS. Application Design The Web version demonstrates how a dijit tree control can be combined with framesets to allow an outline control to be generated as Xpage components. Themes & Styling I have started to collect a series of popular style sheets such as bluprint, bluetrip, and OneUI (inlcuing the OneUIDummy developed by Stephan Wissel). OOP Framework The first attempts have been made at creating a library of SSJS that mirrors the LotusScript Domino class that formed the nucleus of the .Domino Framework. Yellowverse I have added an updated version of my blog - Devil's Guide to the Yellowverse as well as provided links tgo wide range of community resources of use to the Note community. Please feel free to provide any feedback on this project either here or via the .Domino Framework bleedyellow community
There seems to be a lot of essential documentation about XPages missing from the on-line documentation. One of the key items I have been searching for is a description of the page lifecycle for an XPage. After performing some experiments I have mapped out the following basic lifecycle. I will try and expand on it as time and the need dictates.... : The following example is based upon a single XPage (X) with 2 custom controls (A & B). Note: (controls seem to be processed in the order they are listed) : The following are executed ONCE only:- X.beforePageLoad A.beforePageLoad A.afterPageLoad B.beforePageLoad B.afterpageLoad X.afterPageLoad : The next set of events are ONLY executed when a Full or Partial refresh occurs:- X.afterRestoreView A.afterRestoreView B.afterRestoreView if any control events have been fired they are then executed here..... : The following occur next, although it is not yet clear if this exact pattern is always repeated for Full & Partial Refreshes. X.beforeRenderResponse A.beforeRenderResponse (only appears to occur with PageLoad) B.beforeRenderResponse (only appears to occur with PageLoad) X.afterRenderResponse A.afterRenderResponse (only appears to occur with PageLoad) B.afterRenderResponse (only appears to occur with PageLoad) : So what exactly does this mean?
PageLoad events are a good place to place code you only wish to execute the very first time the page is created.
afterRestoreView events seem to be the best place for code that you wish to execute each time a refresh occurs.
Events on a page/control will execute after the afterRestoreView events have fired so they will have access to any variables/object you create in these events.
To have code execute every time the page is processed you probably need to place it in a PageLoad and an afterRestoreView event
Wen placing code in a control's afterPageLoad event don't assume the beforePageLoad events of the other controls have fired or that the page's afterPageLoad has fired.
There are times (like today) when I feel like everything possible has been implemented to ensure that learning Server Sided JavaScript(SSJS) is as difficult as it can be.
Me: Lets start by assuming I could well be at least part of the problem. i.e. you can't teach and old dog new tricks and I have been doing Classic Notes development for so long I have a tendency to try and do things the way I have "always" done them.
XPages Is Complex: Xpages are a very powerful, but also complex, design element requiring a lot of learning.
On-Line Help: I have vented my frustrations many times about the lack of quality and depth of On-Line documentation. Yes it's 1.0.0 for Xpages and SSJS but right now is when I need it the most!
No Text Book: Whenever learning any new IT technology I have usually found a good reference book on the topic to supplement my other learning. It is a shame IBM did not sponsor somebody to write a reference book on Xpages and/or SSJS. Blogs and wikis help in the wired world we now live in but they are often difficult to mine for information.
SSJS 1.0: After being in Xpage school for a while I am starting to realize its not always me that is doing something stupid. This is 1.0.0 of Xpages and SSJS and there are a few things actually wrong/missing in the desgn element and code execution.
No Debugger: Given all the above the chances are high that a "few" bug will creep into the code I am writing. So finding and fixing those logic errors becomes a major challenge when I cannot use a modern debugger to step through my code and inspect variables. I am forced to use the same debugging techniques I used when I wrote my first BASIC program back in 1977! (see what I mean about an 'Old' dog!!)
SSJS Editor 1.0: Just as SSJS is 1.0.0, so too is the editor used to edit the code. It would be nice if the editor was able to compile the code and tell me about errors such as referencing a propertry that is not defined before the code is executed. And then telling me I have an error on line 456 col 34 is a bit of a tease when the SSJSS editor does not display line numbers.
Objects is SSJS: My shinny new LotusScript editor coming with 8.5.1 is about to allow me to navigate through the properties/methods of classes so it is a shame the new SSJS editor in 8.5.0 does not already do the same for the properties/methods of objects. Or is IBM starting a push to discourage everyone from using Object Oriented Programming?
The bottom line is that right now with Notes 8.5.0 you have to want to learn Xpages and SSJS a LOT to navigate the many barriers that can get in the way of building some of those slick applications we have seen. I have nothing but admiration for those that have blazed trails across the new frontier. They are at least providing something of a path for others like me to try and follow. I can't wait until IBM steps in and provides a mulkti-lane freeway so that more of us can travel a little faster than we are right now.
I am presently spending a lot of my time back in Xpage school developing real-life Xpage functionaility. So I can again share with you some of my thoughts based upon my latest experiences learning this new technology. . The Good: Validation - Yet another of the really cool capabilities Xpages bring to NSF development is a range of new options for validating fields. Most controls have a validation section which allows you to set a property to mark that a field is required. As with most properties of an Xpage, this can be enabled via a formula to conditionally determine when it is required. Depending on the display type of the data (text, date/time, number) it is also possible to specify additional validation checks. For strings this includes minimum and maximum lengths. For dates, that the date lies within a specified range. For attachments you can specify MIME types allowed (or not allowed). Underlying this are a series nine different alidators that can be coded directly to do all of this plus a whole lot more. In short there seems to be a a way to perform every form of validation possible. Tied with the validtors are two error controls you can add to your Xpage. This can be a single control that displays all validation errors, one control for each field being validated, or almost anywhere in between. .
The Bad: Invalid Invalidation
- So in theory we have almost everything we could dream of for validating fields right? In practice however Xpage validation falls short of it potential. It seems that there is currently no way to control when the validators are invoked. The validation seems to get invoked each and every time the page refreshes. This typically causes validation errors to be triggered before they are wanted. There is a "No data validation" options but this seems to turn off a whole lot more than just the validators (e.g. updating the data!). To get around this, as pointed out in the Domino Designer wiki, it seems you must create your own validation code using JS (client sided validation)t or SSJS (server sided validation). So that leaves you back to not being able to use all that great validation stuff Xpages gives you - except when using VERY simple forms. . The Ugly: Documentation - Not the first time i have mentioned this, but the on-line Help sucks. On validation I get inciteful comments such as "Show Error details - to show the error details" and "Show Error summary - to show a summary of the errors" without any explanation or examples of what the difference between the two is. Detailed explanations of the nine validators - if they are there they are well hidden. Detailed explanation of the "No data validation" - No. Any mention at all about "No data validation" - No. Any explanation about the validation cycle - No. IBM probably would have been better served if they linked their help menu in Xpages to google's search page as that seems to be the only way to find help about validation (and almost anything else in Xpages).
And one from the vaults - a missing blog that was posted into the 8.5.1 beta forum due to non-disclosure...
Disclaimer: IBM Lotus Notes/Domino and Lotus Notes Traveler 8.5.1 is
prerelease code and there are no guarantees from IBM that the functionality
presented or discussed will be in the final shipping product.
The Good - Finally Some Control - One of the definite advantages of Xpages is that is raises the bar on the user experience for "out-of-the box" Web applications. As an independent contractor I have worked for many clients around the globe. For the clients I have worked a majority of Notes applications (~70%) have been Notes client applications, 20% Dual client (Notes/Web) and perhaps 10% Web applications. I am sure there are some companies where the mix is the other way round but I would be surprised if my experience is not typical. Most of the developers I therefore work with tend to have much stronger Notes client development skills (Including LotusScript) than they do Web skills. So anything IBM can do to help me render an application out of the box for Web clients without me needing to add my own copious amounts of HTML, JavaScript, x etc is certainly most welcome. I would rather just add a moderate amount to round out the application. From what I have seen so far Xpages are a giant leap forward in meeting that need. I no longer need that ugly view applet and I am hoping soon I will not need the Outline and action bar applets. I now have a handy set of controls that render fairly nicely onto the Web browser. The pager control is especially a great addition.
The Bad - Still Out Of Controls - Good start IBM but you are still not letting me be an absolute star. I want to make my applications dazzle in the same way that Lotus0911 did with Bones. Only I don't want to go to all that trouble. I am lazy. I want IBM to give me a signifcantly expanded set of controls out of the box that will have my customers demanding that both I and Lotus Notes get to stay for a long time. A while ago I had the pleasure oif managing a team of ASP.Net developers and one of the first decisions I made was that I didnt want my developers consuming large amounts building user controls. I wanted to bring in best of breed controls and focus on building applications. I found a company called telerik (www.telerik.com) that does some pretty amazing stuff with ASP.Net controls. If you want some absolutely great ideas for the types of controls that other Web developers are using now do yourself a favor and take a long look at the site and all the demos they run. They also show how the same control can be rendered differently on different platforms to exploit each one's capabilities. I went back to teheir site a few days ago and was amazed how much further they have gone in the two years since I returned to Notes. I am positively drooling at the opportunities controls like this would create. After all these are controls that competing products are already able to use. We need to be setting the bar at least at this height. The Notes client must the the biggest and most powerful client out there so we should be capable of delivering the best user experience possible without going through all the trick Lotus 911 went to.
Well it looks like Steve McDonagh has let the cat out of the bag. Being on the beta program I can probably help fill in some of the gaps left in Steve's report... Disclaimer: IBM Lotus Notes/Domino and Lotus Notes Traveler 8.5.1 is
prerelease code and there are no guarantees from IBM that the functionality
presented or discussed will be in the final shipping product. (Steve you forgot this!!!!)
"Domino 8.5.1 is very radio-active. It will probably be on CNN and as part of LotusKnows it will contain a dilithium crystals which not only vibrates at 1200Hz and can be used to irradiate kettles. It can also be used for thermo-nuclear war and bringing world peace (such is its flexibility) but that is really only useful if you are able to walk on water with a penchent for doing healing to leapers (aka Exchange users) The new LotusScript Editor with added support for a vastly expanded LotusScript syntax is really very useful and has been well received by all testers. DXL now works as expected but can cause database corruptions (still) which may lead to emotional outbursts and tears before bed. A series of Lotus videos will describe how to reincarnate Domino.Doc in glorious detail and technicolor dreams but looks remarkably like Lotus Quickr with a weasel in up his Eclipse kilt an effect that detracts from the overall production. Changes to the Basic Client have removed all performance advantages from the client which is a great relief to anyone who has EclipseClientUpgradeitis and uses curly side-bar plug-ins on a regular basis. My contact was also keen to pass on the fact that xpages now come with usable on-line help which now allow you to actually find things and even learn at the same time! MaryBeth does warn that this can lead to understanding and XPage mastery and if left in place may cause your user's eyes to water. I for one look forward to this! Performance issues have also been addressed with a vastly improved hyperdrive and new random error generator leading to the status quo being preserved but this is sort of like dancing with a Java programmer warts and all !! I for one am moist with and my fellow yellowbleeders are tingling with excitement"
Another one from the vaults - a missing blog that was posted into the 8.5.1 beta forum due to non-disclosure...
Disclaimer: IBM Lotus Notes/Domino and Lotus Notes Traveler 8.5.1 is
prerelease code and there are no guarantees from IBM that the functionality
presented or discussed will be in the final shipping product.
The Good: Page Lifecycle - Prior to XPages, the page lifecycle for Domino Web applications was nice and simple. WebQueryOpen and WebQuerySave. This limited greatly what could be achieved with a Domino application. The most notable was the inability to send a page back to the web client after WebQuerySave. XPages now introduces a full page lifecycle comparable to that found in most modern Web development platforms. We have been initially provided with 5 events - beforePageLoad, afterpageload, afterRestoreView, beforeRenderResponse, and afterRenderResponse. These five events plus page round-tripping, AJAX, and state management combine to allow powerful dynalic Web applications to be built inside the NSF container for the first time. We are already seeing many great examples of what can now be created. The Bad: Page Lifecycle - While the extended page lifecycle is a major step forward for Domino Web applications, I am less convinced this is the case when design Notes client applications. In implementing Xpages for Notes the way it has, we seem to have essentially turned the Notes client into a glorified Web browser. Yes, it is GREAT that the same XPage code written for a Web application will also run on the Notes client. But in doing so I wonder if we have locked ourselves into following the Web application model. There is where I get confused and would value greatly IBM outlining its development strategy moving forward. Why deploy a 250MB client onto everyones desk only to have the applications run in browser mode? Why did we do all the work to improve the Notes client with Notes 8.0 to then move to a thin client programming model? Adding Notes client controls to Xpages is not all that different to the option of using Winform controls in .Net development - which require a much much smaller .Net framework client to be installed. The biggest asset Notes application development has had up until now has been the Notes client itself. I tried .Net development. Even with the more powerful Visual Studio editor and sophisticated controls from telerik I was still unable to come close to developing applications as fast as I could with Notes. That was largely because Notes gave me a thick client application model.
From the vaults - a missing blog that was posted into the 8.5.1 beta forum due to non-disclosure... Disclaimer: IBM Lotus Notes/Domino and Lotus Notes Traveler 8.5.1 is
prerelease code and there are no guarantees from IBM that the functionality
presented or discussed will be in the final shipping product.
The Good: Multi-Client Fidelity - Ever since Notes 4.5 Lotus/IBM have striven to make to provide the ability to deliver a single application for both thick (Notes) and thin (web) clients. Up until now the results have never achieved those goals. Some would say they never really got close (not me of course!!!). Now with XPages we have for the first time a design element that renders almost identically on both the Notes and Web clients. And then there is also the promise of Xpages soon being supported on Blackberry devices too. I have found a few minor issues but so far I am satisfied that Xpages for Notes looks almost the same as XPages for Web. OK, so its not a complete surprise given that it seems underneath this is achieved by using a Mozilla engine to render the page but this is a HUGE help in developing multi-client applications. The Bad: Multi-Client Fidelity - There is a saying "be careful what you ask for as you just might get it". That certainly applies here. In providing fiedelity between the Notes and Web client for Xpages we have essentially delivered a very powerful design element for the Notes client that is limited in its capabilities by what a Web browser can do. There are a few exceptions here - Composite Application support and integrated Notes security. The Notes client has a number of very powerful rich client controls such as its rich text editor, outlines (including drag/drop), views, name fields, and action bars. I am hoping that longer term plans are to allow the rich client version of XPages to support more functional controls in the Notes client via rcp tags. If we don't then we have largely turned the Notes client into a browser as far as Xpages is concerned. Why install a 300 MB client just to run it like a browser (not all apps will be CA)?? I am sure there are going to be times when I will be torn between the superior UI of existing Notes design elements versus the power and flexibility provided by XPages. Note: IBM are starting to publicly state there intentions of developing Rich Client capabilities for Xpages. So I am hopeful over time that Xpages for the Notes client may prvode most (if not all) of the functionality of forms, views, pages, outlines, framesets etc.
My Xpages Summer vacation has ended and I am now back working on Xpages projects. Here is a quick tip for those like me still in the early stages of learning...
SSJS provides a cool emulation of many of the popular @Functions written using much the same syntax as the original language. But there are a few gotchas:
They are ALL case sensative... So when they say" @UserName" use @UserName and not @Username or @USERNAME etc
These are functions so if you what the value use @UserName() . @UserName returns a delagate to the function itself.
If you don't want your entire Xpage to crash if something goes wrong with an @Function wrap your code in a try/catch statement e.g. using catch(e) { return e } will return the error message should an error occur, catch(e){} will return nothing when an error occurs but the page will still display.
I regularly find myself forgetting all of the above on a regular basis!!
A tag is a keyword that is used to categorize an entry. To view the entries with a particular tag, click a tag name or enter a tag in the box. The tag cloud indicates the frequency of tag use. Popular tags appear darkest. The slider control adjusts how many tags are displayed in the tag cloud.