Four Reasons To Upgrade to Domino 7.0.2
Remember I complained about how little Domino 7.0 did for us as web developers. Well, Domino 7.0.2 made up for it with some useful additions. Here are a couple of changes you might already know about and one massive change you might not.
- Output Any View in JSON Format
-
Hot off the presses! From my inside man at LotusSphere comes the huge news that you can add OutputFormat=JSON to the end of a ?ReadViewEntries URL and you'll get the output in JSON format. Here's an example of a view in the forums. This is absolutely fantastic news and made my day when I found out.
I only hope this turns out as useful as it should be. My fear is the JSON format they've chosen makes it as unusable as the DXL counterpart XML. As soon as I get time to play with it I'll let you know.
This would make all the time I spent writing an agent to do this a complete waste, but I won't mind at all.
- Option to add attributes to the <HTML> tag
Add a field to a form called $$HTMLTagAttributes and its contents will be added to the HTML tag. For example you could have <html lang="en-gb">. Not all that useful, but nice to have nonetheless, especially if you want to use Firebug Lite for cross-browser script debugging without all the alerts()s. In this case you'll need <html debug="true">.
- Developer control of a custom Document Type Definition (DTD)
When the field $$HTMLFrontMatter is present on a form, its contents will be placed in the generated HTML, ahead of the <html> tag, and the web server will not generate anything there automatically. This allows you to specify a custom !DOCTYPE declaration on a per form basis. Whether or not it overrides the DominoCompleteDoctype setting I don't know.
- Basic Authentication on a URL by URL Basis
Last March I wrote about a way to use session-based authentication on a Domino server and still allow RSS feeds to authenticate the old fashioned way. This new feature will mean that's not necessary. Not sure how it works exactly. Apparently something to do with the Web Site Rules document.
Right, I'm off to email Prominic and ask for an upgrade. This is all too good to miss! Me, down on Domino? On this occasion definitely not... it's almost ilke they've been listening.
This new option for JSON is simply amazing.
It will make AJAX adoption by domino developers much more easy!!!
Is it documented somewhere in the help?
I didn't find it.
Is there any other formats available?
Does anyone know if the bug where end of line chars don't work properly if they are set from java has been fixed? This one is a colossal pain in the arse. I thought I'd found a solution by evaluating @setfield instead of using replaceItemValue, but it doesn't work for larger blocks of text (well within field size limits).
@Ricardo: It's not documented, so it could change. In fact the blog I read about it first (sorry can't remember who's) mentioned that they were planning to change the format a little in 7.0.3.
I suspect you saw it on Jerry Glovers blog {Link}
I've been on 7.02 for a while now but even I didn't know about this. It will make app development so much better.
I think it works with ?ReadDesign and ?ReadEntries to :) very nice!
The OutputFormat=JSON parameter will be shipped with Domino 8 and is not yet available in 7.0.2, according to Marc Vincenze's Lotusphere session.
I have tried it on 7.0.2 and the parameter is there. It's perhaps not "officially" available yet..
I am sitting in AD401 and they have just mentioned that Domino 8 will support JSON :)
It definately works, the JSON outputs a tad bit fiddly to read though.
Would be nice to be able to just output column name and values. With "entries" as the root.
All this @Position stuff etc seems a little overweight.
any idea whether there are other outputformat parameters, apart from JSON? and what they do?
I just had the confirmation that the JSON views are indeed in 7.0.2, but not officially supported.
Manu : outputformat=xhtml was introduced few years ago (works on forms, maybe other design elements)
JSON is not supported until 8 - watch out for some changes between 7.0.2 and 8 so have plans to update if you use it!
Oh and it works for
?ReadViewEntries, ?ReadDesign and ?ReadEntries
OutputFormat=JSON and Jack Slocum's YUI.ext is a powerful combination.
I see the light in end of the dark tunnel :)
- 'Native' JSON Format ... That is really nice!! IBM is able of the best and the worst with Domino. Do you know another web architecture able to do the same?
- I'll be a bit critical with the $$HTMLFrontMatter field. That won't help if you are launching a page (like index.html). I only will work with $$Viewtemplatedefault and so .....
Fair enough, though!
Hey there
I've been using $$HTMLFrontMatter for some time now and it works extremely well.
A big gotcha though - to be aware of - it doesn't work with anything that is handled by domcfg!!
So your error forms and login forms will still need to be old skool.
There is an SPR to add this to everything going through at my request.
You gave an example of the site we've done ({Link} when you were discussing "good AJAX implementations" and that site needs/uses the $$HTMLFrontMatter throughout.
I'm with carcomaidon a bit here. This is good news to be sure, but... it doesn't really free you up to the extent we might like. The big problem for forms with Domino is what Domino tries to do for you. All well and good (and laudable) that we are being given a bit more control over that process - but yet there appears no way to have total control through the provided tools. I shouldn't have to munge my URLs to get xhtml output. Seems a bit backwards.
JSON output, again, nice to see - but as we see already, there are lots of ways to do JSON - it's a little like XML in that regard. How you say it is a separate matter from what you are saying and has more to do with who you are saying it to. Providing one baked method is a nice hat tip, but far from utilitarian.
"I only hope this turns out as useful as it should be. My fear is the JSON format they've chosen makes it as unusable as the DXL counterpart XML. As soon as I get time to play with it I'll let you know."
I started playing around with it during the session they mentioned it in :P It's certainly not the easiest it could be... since they started all the attribute names with an @ you have to reference them like jsonObj.column[x]["@title"] (Example from ?ReadDesign). Not horrible, but not as clean as it could be.
Also the developers stated the only real change to the JSON output in 8 was that the attribute names would be double quoted, which shouldn't make much of an impact on code written to the current 7.0.2 output.
@Val - I certainly agree, look for the next release of Domino YUI (on OpenNTF) to use JSON instead of XML.
@Jake - the frontmatter overrides what is set in DominoCompleteDoctype.
@carcomaidon - sorry, but the "special $$" field stuff only works with forms.
It was a way of expediting the changes though. Coordinating changes with the
designer development and test team adds time to the cycle (and for 8 they had
their hands full with the notes Client work).
@mark Haller - the problems with domcfg and other custom error forms have been
corrected in 8.
@Rich Walters - another change for 8 is using the RFC recommended content type of
application/json
@Mark Vincenzes - Wow, how good is that! How do you know? I wonder why I was never contacted by IBM to let me know and to say thanks? Hmmm
Thanks Mark! :-)