Wednesday, January 23, 2008

Lotusphere 2008 - Day 3: Tuesday, January 22nd

From IBM Lotus Notes Client Application to Ajax-Powered Rich Internet Application in Less Than 10 Lines of Code!

Rich Waters
Jack Ratcliff

There are numerous Javascript object libraries out there that do a variety of things. Several Domino web developers settled on Ext and then further extended it to wrap Notes classes and released Ext.nd. It will skin outlines, views, forms, pages and picklists with Ajaxified controls. There is also a class for a Notes datepicker, and it's really nice.

The benefit of using Ext.nd is that the code for a lot of things is already written. Want to drag and drop to reorder columns? It's in there. What about skinning outlines? It's in there. You just use a class name in the HTML tab to apply the style you want to the control, and you're done.

Ext (the base framework) is now on release 2.0 and Rich, Jack and a few others are working on releasing Ext.nd 2.0 as well. Currently in the 1.0 release you have to manually copy several design elements into your database. 2.0 is adding the ability to reference a central external ext.nd database via tags (this is the "less than 10 lines of code"). They are also working hard to set it up so you can also build an application configuration form and use that to return all the stuff via an @DBLookup. One line of code and you have all the goodness of Ext.nd.

Overall it was an amazing look at what can be done to make Domino web apps look good, and it really opened my eyes. If you do Domino web apps and you're hand-coding your JS and CSS every time, give Ext.nd a look.

Expeditor Customization for LotusScript Developers

John Head
Alex Kassabov

Expeditor is a general purpose app framework. In IBM speak, it's a "universal managed client for SOA." In IBM's mind it competes directly with .Net. You can only program against it using Java, though.

That was all of the session that really made sense to me. There was a list of tools to install (Eclipse 3.2.2 and Expeditor 6.1.1 Toolkit), then a rather tortuous demo app that I'm not sure ever worked. John said the problem is that everything they were planning to show has been superceded by the My Widgets feature that was announced in the OGS. IBM realized it was way too complicated and created an easier way to do this, so hand coding everything isn't necessary. Or at least that's my take on it, if I'm wrong someone please explain it, or link me to something that does.

IBM Lotus Domino Web Server Application Development Directions

Bob Balaban
Phillippe Riand

Domino 8.5...
  • is shipping with Dojo built in. There was no commitment to the release of Dojo that will be included.
  • will produce semantically correct XHTML with classes and ID's for everything.
  • uses the JSF runtime from Lotus Component Designer to produce XPages (that's a code name).
  • by virtue of the JSF runtime, simplifies traditional JSF's by removing the JSP/servlet container dependency; removes the tie to Java; lets you choose your scripting language (JS is the default); generates pure XML (switch between visual designer and XML source in Designer); every property value is computable.
The vast majority of the web app dev functionality is in XPages. I'll cover more about XPages in a separate post, there is simply too much for me to cram in here, and the content comes from a number of sessions.

Transforming Domino Web Apps Using Domino Designer

Stuff you can do today in ND 6/7:

You can add Dojo and the extended Dojo objects by adding it in the JS Header of a page or form. Put the Dojo object ID in the HTML Other field and it will work in the browser with no other changes. This skins the control with whatever you have set up for the CSS of the Dojo object ID. Change it once and it changes for all controls.

The future stuff is, again, mostly XPages. Do you see a theme? :-)

Customizing the Look of IBM Lotus Notes 8: Coding Tips and UI Guidelines

Mary Beth Raven
Matthew Hatem

The look of the Notes 8 client is controlled via CSS, and is implemented as a theme. The titlebar, menubar and scrollbar all pull from the OS. Everything else is custom to Notes. The PIM apps also use the theme. Long-term they want to open this up so custom apps can also use this, but they can't commit to any release schedule yet.

Matt created a new theme live and it was actually pretty simple. There were a lot of steps, but he explained them well and they actually made sense (even to an avowed Eclipse hater). My notes on that process aren't really clear and I think I missed some steps. I'll install Eclipse and work with this and come up with a demo.

The UI guidelines for making YOUR apps look like Notes 8 have been published. This includes all the RGB values for everything, pixel measurements, and how you can configure things like action bars to look like Notes 8. Personally I think this is a very good idea, since it provides consistency. There are, of course, places where you want to break from it (like the bewildering number of icons), but for the most part I have no objection to using Lotus styled action bars, framesets and forms.

Formula Follies and LotusScript Lunacy: Coding Feats That Will Amaze!

Rocky Oliver

You can use @Sort([CustomSort];list;$A; $B) to sort something in a custom way. For example, to sort a list of strings by length or sort in a non-linear way.

@ToNumber doesn't care whether you pass it a number. @TextToNumber will generate an error.

When building lists with @If, use @Nothing for the exit condition instead of an empty string. @Nothing doesn't have to be @Trim'med.

New or updated ND8 formulas and LotusScript classes:
  • @AbstractSimple - same result as @Abstract but fewer parameters
  • @GetViewInfo([IsViewFiltered]) - returns true if @SetViewInfo has been used to filter a view
  • @IsUsing JavaElement - view is using the Java interface
  • @PasswordQuality - has new examples
  • @URLQuerySTring - allows dynamic DB2 query views (not sure if I got that mixed up...)
  • @UserRoles - can now go against a different database
  • @Version - added new versions to the list
  • @Command([CalendarFormat]) - now has two week and two work week options
  • NotesDirectory - directory searching and navigation
  • Notes...Collection - new methods: Clone, Contains, Intersect, Merge, Subtract (applies to NotesDocumentCollection, NotesNoteCollection and NotesViewEntryCollection)
New for 8.5
  • @Now([NoCache]) - when run on a server will force a server transaction to get the current time
  • @ManageECL
  • @ShowParentPreview
  • @RecoverIDFile
  • @WhichFolders - used in a column formula to show the name of other folders the current document is in


This is an amazing event. There are 12 tables with subject matter experts. The attendees are divided up by the month they were born in, and they go to that speaker number to start. You move from table to table, getting increasingly overwhelmed until you end up spinning in circles. Or at least that's what I did.

You can't possibly take notes since they're running through gobs of content in 5 minutes, so I'm not even going to try. If I find something posted somewhere about what was included I'll be sure to link to it. Blogger Award Reception

I met so many people I hadn't caught up with yet. The conversation was great and the food was surprisingly good. As I'm sure everyone knows by now, Jake Howlett won the award. There was a recorded acceptance speech in which he expressed his thanks and incredulity at being nominated or winning.

1 comment:

  1. Thanks for the interest, I'm glad you enjoyed the session! We're definitely looking forward to this new release and our todo list seems to be continually growing :)