Hurrah for Domino 6
While I was banging on about email last week I was also making a start on a new project. Not any ordinary project mind you. It's my first where the site is built from from scratch in Domino 6. A chance to put what I've learnt to good use. I may well have passed the upgrade exam but I am still learning. Reading about something is one thing, putting it in to practice is another. This week I will try and pass on some of the stuff I've discovered. First, a lesson I learnt the hard way.
Having sweated over some JavaScript functions for an hour or so, I finally got them to work, from within the Form's JS Header. Why not move them to one of these new JavaScript Libraries I thought. So I cut the code, pasted it in to a new library, hit escape, gave it a name and saved it. I added the library to the form and saved the form. When I next launched the form I was surprised to see an Object Required error in the JavaScript. So, I switched back to Designer and opened the Library. Guess what I saw. Nothing! No code whatsoever. To make matters worse I had copied something else since I cut the original code so it was lost for good. Not a good introduction to this new feature. Hopefully I can save you all the same problem.
Believe it or not, the cause of my anguish is actually one of my user preferences - dating back to my R5 client install. Domino 5 doesn't support the latest version of JavaScript. This means you lose out on things like try/catch constructions. When I talked about this some time ago I noted that you could get round this by simply disabling JavaScript in your Notes client user preferences. It was because I had JavaScript disabled that the Library didn't save any changes and I lost all my work. Be warned! If you have JS disabled, your changes will not be saved to JavaScript Library design elements.
With Domino 6 there's no need to disable JavaScript as it supports a more up-to-date release of JS. You can now code and debug JavaScript in its very own container. Despite a rocky start I am learning to really appreciate this new feature.
Hey Jake,
I've noticed something else odd about the interaction between designer and client in 6. If you hide a sub-form from the Notes client (you know, the hide from client/hide from web toggles), the designer will give you errors on any form it's embedded in. Lovely, hm? Not quite as bad as yours, though. That's just nasty...
Just tried that Rob. You're right! It's wrong!!
No errors for me though. It just doesn't show the content of the subform until you double-click to edit it. Now, this gets me thinking it could be a feature!
I have loads of subforms on all my web forms that are just HTML markup for the page layout. I don't need to see it in designer and it makes finding the actual form content harder. Using this trick I can hide subforms so I only see what I want while I'm working on my forms ;o)
"...and debug JavaScript in its very own container." Huh? Who? What? I can debug javascript now, with R6? No more alert ('test'); lines?
Hmm... file..tools..debug lotuscript..ooh something new -> remote debugger? Whats that?! Is that it?
checks help.. You can use the remote debugger to step through and debug LotusScript agents running on the server. The agent you want to debug must be running at the time that you start the remote debugging tool.
ooh. darn. Well that is definately nice for lotuscript web agents though.
cal (just another guy that reads and never posts)
Cal. I write blogs in the morning. Mostly when I've barely woken up. It shows sometimes. When I say you can "debug" I guess I should say "compile" (and, yes, I know JS isn't compiled). No more errors becuase you typed "Alert('test');" as they're caughtt in the editor. One less thing to worry about...
Live without try-catch? Not likely. I didn't even realise you couldn't use it in R5's JS areas -- I guess I took my own advice to closely to heart:
{Link}
Half of my web arsenal revolves around try-catch. How else does one handle categorised views with multivalue column values as JavaScript? As for the "cutting for good" -- thanks to the disappearing source code bug in ND6/6.5 LotusScript, I've made a habit of keeping an open copy of all of my code in TextPad (with syntax highlighting &c, of course) until testing is complete. I've also taken to saving the longer or weirder bits so I don't have to try to rescore the lost chord should it become necessary. (The good folks at Lotus announced today that the bug has been isolated and should be fixed in ND6.5.1, by the way.)
Yes I discovered that javascript library behaviour a while back and posted it to notes.net {Link}
Hi Jake,
Seems like yonks since you last talked Domino, I was beginning to think you'd lost the 'love'.
Don't get me wrong, I appreciate all the diverse areas, IT and non-IT, that you talk about, but its kinda nice to see you going back to domino ...
kj
Stan. Fixed in 6.5? What about those of us using 6.0?? Darn Lotus. I hate being so negative all the time but they've made me this way.... once I was a happy boy. Then I became a Notes developer....
Andrew. Kudus.
kj. It's yonks since I talked Domino because it's yonks since I used it. Back now though and have a lot of stuff on the go!
It may be changed in a CF for 6.0 as well, but at the rate Lotus is moving on the major releases, I'm not sure that ND 6 "flat" will be around all that long. R5 reaches EOL in April, and ND 7 (with the optional DB2 back end) is due out next year. THAT will be the release to watch, I think -- a Notes/Domino front-end with joins (finally) and pointer math "WHERE" searches rather than FTSearch for everything. I'm sure there are more than a few Domino apps out there that really belong on a relational back end. If IBM gives us an entitlement to DB2 (similar to WAS -- same physical server, Domino only), then this could actually preserve the platform for smaller shops.
(Any monkey with a half-ounce of aptitude can be taught the basics of VB.NET in short order. Lotsa classes -- but the IDE means you don't actually have to know much ahead of time to be productive. Enterprise Java requires both programming and architectural skills. If the WebSphere world becomes the only access point for Domino, small shops needing to migrate are going to choose which?)
Stan
I'm a c# and vb.net programmer. recently i began to learn domino 6 and it 'sucks. You are right when you say that vb.net can be learn by anyone. But only a real programmer can take advantage of the real power of .net and the framework. IBM should be ashamed in launch a product like domino
I guess that makes me a "real programmer", then -- athough I know for a fact that I'm nothing more than a self-taught hack. There's nothing "programmerish" about .NET (until you step out of the managed environment).
Domino is a different paradigm. It does not "suck" -- you don't understand Domino, its component bits, and how to use them. Please don't blame your ignorance on the platform. When Domino is appropriate for an application, a competent developer can create in hours what a .NET developer would take weeks to do. When Domino is not the appropriate platform, an incompetent developer can create a poor replica of the desired application in short order that would bring the server to its knees.
I am using FTSearch and am trying to get the date and most importantly time that a record was modified. Every example I ahve seen uses [_RevisionDate] but does not give any ideas about the time element.