The Notes Designer And Why It's Rubbish

Subject: The Notes Designer And Why It’s Rubbish.

Here’s a few items that irritate me. Perhaps they’ve been addressed in R7 and later, perhaps not.

  1. Bookmarks in the designer client absolutely are unreliable and unpredictable. Many times they refuse to open and you have to delete and recreate them. They come and go randomly on me from time to time.

  2. I’ve noticed that hidden fields in red font color always change back to black when I insert a line break. This has always puzzled me.

  3. When embedding a view into another design object, unless it’s from the same database, there’s no way of predicting how it will work on the client side, as it is dependent upon the bookmarks present in the designer’s client.

  4. No version control whatsoever. There is absolutely no way of telling what changes have been made to a design element. Yes, Ciao is sort of a way to manage this, but (a) it’s not a part of the core Notes designer and (b) it costs a buttload and is out of reach for small shops. Further, it still requires the users to be diligent in documenting their changes as design elements are checked in/out.

  5. Mediocre integration of script libraries. Instead of having to remember to include specific libraries names when scripting a design element, I would like to have a selection list that I can then choose one or several libraries in that element.

  6. Why must I receive error prompts incorrectly telling me I’m saving another instance of a view when I’m editing in a view open in the client? This is incredibly annoying.

  7. This has been discussed exhaustively in the past, but I think it bears mentioning - the Designer client should exist in a separate environment from the Notes client. This might seem like a minor issue to some, but I can tell you that when you are attempting to recreate/solve security issues, it is frustrating in the extreme to have your designer client changing ID’s when you’re changing ID’s in the client to test changes. Please, IBM/Lotus. Give us an IDE in a separate environment.

Subject: RE: The Notes Designer And Why It’s Rubbish.

  1. When embedding a view into another design object, unless it’s from the same database, there’s no way of predicting how it will work on the client side, as it is dependent upon the bookmarks present in the designer’s client.

I always put embedded views from other dbs in their own subform. In production, I update the design of the subform and insert the production embedded view into the subform. I then set the subform to prohibit design refresh. This way the subform is always tied to the correct view, but I can still update the design of my databases through templates.

  1. This has been discussed exhaustively in the past, but I think it bears mentioning - the Designer client should exist in a separate environment from the Notes client.

I use two computers to get around this (at least, sometimes more :p) My primary computer has three 21" monitors attached to it. My primary and my 4 other computers are all networked. I use VNC to control the other computers. So I can have the debugger running on one machine, the design of the db opened on another, and the server console displayed on another, and have them all viewable and controllable with the same mouse/keyboard…all through VNC connections. Obviously, you don’t need multiple monitors to do this, but it sure is nice!

It’s amazing how cheap and small you can get a computer these days. I use the new Intel D201GLY (“Little Valley”) Mini-ITX motherboard. For 70 bucks you get a complete board and 1.33 Ghz processor that only needs a case, memory, and a hard drive to work. A gig of RAM is only 25 bucks and a 250 GB drive is 60. Add a small case and you can put together a network accessible computer for 200 bucks. With the right power supply you can limit consumption to about 35 watts. I have one of these running as a partitioned Domino server for development with two partitions…it does a great job! (It’s also my live Apache web server, Hmail server, and FTP server…it’s a busy little machine :o)

Subject: The Notes Designer And Why It’s Rubbish.

Boy you sound angry… :-). But I have to admit I recognize most of your frustrations. Some things that were a problem versions ago are still not fixed today. Especially point 1 to 4 I find a major shortcoming.So, I agree the Notes Designer has it flaws, but I try to make the best of it, because I also believe and enjoy the programming environment, since I like the mix of user interface and development, I enjoy working in both ends of the spectrum. And I try to live with the limitations of the designer, and, if possible, to be creative with workarounds and alternative solutions, I think it’s a challenge to stretch the limits the product puts upon us.

Btw if something crosses my mind, I will add it to your list of annoyances :wink:

Martin Vereecken

http://www.bizzybee.be

Subject: RE: The Notes Designer And Why It’s Rubbish.

Have you ever written your own classes in the declarations section. Wouldn’t it be nice, if the your own classes would show up in the browser like subroutines and functions.

I don’t think Lotus ever want us to write our own classes, or they would allow us to inherit from the basic Notes classes … ever tried extend the NotesDocument class …

And it would be great, if things would finally work as described in the designer documentation … ever tried NotesDatabase.CreateReplica … it’s now years, that it doesn’t work, and the morons don’t fix it.

Rich Text is the same … and having some kind of a datagrid within a Notesform is still a wishful thinking (dynamik table) … working with NotesRichTextTables is a nightmear …

Maybe some of you remember long long ago there has been a tool to program in script, even under version 3. All Lotus had to do was integrating it into the client … but dear bob balaban was too busy then …

Well … there is a reason Lotus failed, and had to be taken over by IBM to survive … and it took them only a little less then 10 years to make a half way decent Notes Mail Client, as they had with ccMail … maybe we will have a decent design environment in another 10 year … :slight_smile:

Subject: The Notes Designer And Why It’s Rubbish.

I’m working on the code you are complaining about, and I can say that a lot of the things that bug you have also bothered me, and I would also like to see them fixed.

In many cases it’s a matter of having time to fix these bothersome little bugs, considering we must also add Designer support for the many exciting new features of 8.0, 8.0.1, and beyond.

There is also the problem that there are problems we don’t hear about from many (or any) customers because they fail to report them through the established support channels (of which this forum is not one).

Overall, our focus is on having a development platform that makes developers as productive as possible, and I think we stack up very well in this area compared to other tools that perhaps spend more time on UI, and less time on building in capabilities that let you check a box or add a line of code to activate functions that you would otherwise have to laboriously program.

As mentioned elsewhere in the thread, many of these problems will be addressed by the ongoing rewrite of much of the Designer code for the Eclipse platform. In particular, the code editors that we get automatically with Eclipse are easy to adapt and extend (for such features as the much-requested LotusScript class browser). Therefore, we’re not really trying to enhance the code editors or fix non-critical bugs in current versions, since that effort would be largely wasted.

We prioritize our bug fixing work based on customer need. This means, if there’s something that’s particularly bugging you, you can raise its priority by contacting our support organization and opening an incident. We can’t fix things we haven’t heard about, or where there’s insufficient detail for us to reproduce the issue. If there’s not already a report, they’ll create a new report, and if there’s already a report, they’ll note that someone else is having the same problem. An issue with two customer reports is more than twice as likely to get fixed as one with just one – and about a million times more likely than one that hasn’t been reported at all.

Mentioning it here does not count. Complaining here about things you don’t like may relieve your feelings, but it doesn’t really do much toward getting things fixed, unless someone in IBM happens to spot it and make a special mission of it – and speaking for myself, I have quite enough to do dealing with known issues and adding useful functions. We have people in support whose job it is to take customer reports and do something about them, but they don’t come looking here for them. Also, of course, we need to know who the customer is so that we can get back to them to request details.

As regards some specific points that have been raised:

  1. Can’t ALT-Tab back to Designer

Ben has discussed, but if there’s a specific situation where it’s working in a really irritating way, I haven’t seen it, would need an exact set of steps to reproduce. Not here, please – through support.

  1. Many prompts closing LotusScript debugger:

There are many things about the debugger that I would like to change, and this is certainly one. Possibly we need to look at a rewrite as part of the Eclipse work. We’re still deciding what to work on in what order.

  1. HideWhens… often fail to work … all manner of problems…

…don’t work on Richtext in tables unless the RTItem is preceded by a space.

As described in this Rich Text field hiding Technote, hide settings should not be used on a rich text field because rich text paragraphs have their own hide settings. Alternative techniques are described in the technote.

…a form with a single value that computes to either @True or @False. The hidewhen formula has the value of the Field as it’s Hidewhen. For example, the field called IsNotDebugMode, has a value of “[Debug]” = @UserRoles. All hidden fields have a hidewhen formula of IsNotDebugMode. This includes the line with the field itself. All lines work except that first line. I know a hidewhen can work if based on a field on that line but in this case it doesn’t.

Formulas are evaluated in a particular order. Apparently the hide formula on a paragraph, is evaluated before the formulas for the fields on that paragraph. This doesn’t seem like the wrong order to me – in fact, it makes sense, since there’s probably some work we can avoid doing during the processing of the fields, if we know they won’t be displayed – better performance. Developers need to learn what order things happen in – or at least, be sensitive that this is an issue and be prepared to figure out that’s what’s happening and find an alternative when it doesn’t accord with their expectations. In this case, it seems you could hide the field IsNotDebugMode always, and have a later paragraph to display the fact that the debug mode is enabled. It didn’t take me hours to come up with that.

I’ve had hidewhen where even @True didn’t trigger it to hide correctly!

This is not enough information to permit us to make a fix, without details on how to reproduce it. Supplied to support, not here.

  1. Document Items in the debugger are not in alphabetical order.

I can see how you would want this. There’s a hitch, though. The items are displayed in the debugger because there is a property of the class – “Items” – whose value is an array, and which contains the items in the order they were read from the document note. It is, of course, more efficient to access the items in that way when running your code normally – sorting them is extra work for the lazy CPU which would like to do as little work as possible to get you your results.

So you are suggesting what? We should show a value for the Items property which is not in fact its exact value? So that if there’s a loop in the code that refers to doc.Items(i), and i=5, then when you expand the items property and look at value 5, it’s a different item than the one the code is looking at? Or that we should always sort the Items array even though it’ll slow code even when you’re not debugging? Or that we should sort the Items property only if you’re debugging, so that the code doesn’t work the same way when you run it normally versus when you debug it? None of these sound like good choices to me.

I suppose we could have a debugger-only property, ItemsSorted, that displays the items in sorted order. I’m not too excited about this idea either because we don’t have any other occasions where we display something under an object which is not in fact a property of the item. People would start calling in to support to ask, what is this ItemsSorted property and why can’t I use it in my code?

It’s a dilemma.

  1. The Code Helper in Formula Language frequently vanishes if you mistype something and have to backspace.

This can be irritating, but Ctrl-Shift-Space will get it back. Meanwhile, this is moot once we get all the Eclipse code editors in place.

From Stephan Nold:

… it would be great, if things would finally work as described in the designer documentation …

There’s a Feedback link at the bottom of each help document. We have dedicated staff to read this feedback and take action based on it (either to correct the documentation, or enter a request to fix the function to match the documentation – please specify which you think would be better and why). I myself have entered many corrections in this way.

NotesDatabase.CreateReplica … doesn’t work

Well, it does work, with a couple of known issues, one of which affects only templates, and another that we can’t currently reproduce. Neither has any reports from customers, so apparently you have not been doing your part to get this issue that has been troubling you fixed. If you have a problem and can reproduce it, please call in to support. Thanks. Oh, and make sure you’ve read up about server trust lists and so forth, first.

From Rob Goudvis:

How about trying to recompile all scripts with some errors? How to find what script actually is wrong?

I haven’t had a problem determining where the problem is. The problem design element is shown in the results dialog, and you can open it from there. You make some little change and try to save it, and you’ll see what’s wrong. Can you call support and be more specific about what your problem is?

Why is there no Lotusscript function to determine whether or not you are in debug-mode?

Because as far as I know, you’re the first to request it. If you could explain the application and how this would help you, it would help us prioritize this request, which frankly doesn’t sound all that useful to me compared to lots of other things we could be doing.

…with DXL? Were you ever able to find the location of the error as reported by the errorlog?

DXL/XML is one of the areas that needs the most work, but one problem I haven’t had is locating errors – the Log property is quite precise as to line number and character position within the line it saw something it didn’t like. Can you provide a specific example with some indication of what additional information would be useful to you?

…export the standard mail-template and try to import it back. You will get ERRORS from the DXLImporter…

This is one of the things I’ve also complained about, and am trying to get corrected. I think all our DXL output should be valid importer input, and valid according to our own DTD also. It’s worth noting that sometimes the problem is only with the DTD, and if you turn off validation the import works OK.

Why is there no way, except by adding special code, to trace an agent (or lotusscript) that is invoked from the Web?

I haven’t tried this; doesn’t the remote debugger work? If not, perhaps this could be arranged. Can you make a business case for this new feature?

This is not really my area, but I suspect it’s largely a technology issue. The browser only waits so long for a response, so your agent output will be lost if you take the time to debug it. The browser itself is not a debugging client. The web server has its own processes, and having them and the agent manager both looking for messages from the Notes remote debugger client on the same port might cause problems. That sort of thing.

You know, I do a lot of debugging of C/C++ code. I can stop at any statement, or even any machine instruction, but I still often find it useful to insert temporary trace output statements. It’s not like this is something we can ever escape completely.

Why is the function “Send me a daily e-mail listing new responses that are posted to this thread” not working on this fourm?

This is not really about Domino Designer, and I don’t use this feature myself. It might get more attention from the people who run the forum if you posted the question as a separate main document.

Not being able to debug a dialog is a major deficiency because of the extra time and effort that is necessary when you need to find out exactly what is going on.

Agreed, this would be helpful. but it’s difficult to add this ability because of the architecture of the language and debugger. One of the reasons I would like to do a whole new debugger.

I have occasionally had recourse to creating a document with sample data in it and the Form field set to the name of the dialog form, so that I could open the dialog form as a regular document window and step through the code, This works rather well.

From Cesar Mugnatto:

Synopsis does not output JavaScript…

We haven’t really been keeping the design synopsis up to date with new stuff we’ve been adding. As Maureen noted, for a built-in option, we’d prefer you use Tools / DXL Utilities / Transformer… and create XSLT to transform the DXL data into whatever type of report works for you. And please share the XSLT with other developers via openntf or our Sandbox – we only provide one with the product by way of example.

Also, there are excellent third-party tools for this, at least one of them free.

I change the name of the template on a template … [Later] I check and the template no longer has the new template name.

This is a new one for me, unless perhaps you’re giving two templates the same template name, which I believe might fail silently if you do it on a server. Admittedly, an error message at this point would be helpful, so if that’s what’s happening, perhaps you should call support.

  • Andre Guirard, IBM/Lotus Development

Useful blog: Best Practice Makes Perfect

For faster answers, be C R I S P Y

Subject: Response To Andre

First of all, I am humbled at the extent of your response.

I am truly grateful for the time you have spent in replying and have read your answers clearly. In fact, I think many people will benefit from your reply. So again, thanks.

As far as the sorting of Items by name is concerned, I see the point that you’ve made. You’re basically saying that this is a class browser and it behaves consistently for all manner of classes. I accept that. The order of Sub and Function names in the editor however…now that is a different story :wink:

I also agree that this is not the place for bug reports. I just wanted to vent and get some feedback from others who have their pet peeves.

Andre, thank you again. It’s extremely commendable that you took so much time to respond. I appreciate the generosity of your time.

Subject: RE: The Notes Designer And Why It’s Rubbish.

Thank you, Andre, for taking the time to address this so clearly and completely. You are an invaluable asset to the community.

Subject: Start looking thru my PMRs…

Subject: The Notes Designer And Why It’s Rubbish.

DesignerNo method to locate a field on the form. You always have to carefully scan the form to find the field you’re looking for.

Object list - should be in alpha order (typing the first letter doesn’t quite work when you have 300 fields on the form and 100 of them that start with “c”)

Object list - Hotspots just say “Hotspot” - no way to identify them

Declared object variables from a “Use” library don’t invoke the popup property selection box.

Debugger

Doesn’t show variables in alphabetical order (why this is so after so many years is mind-boggling.)

Doesn’t show notes items in alpha order

Only shows 255 elements of an array

Only shows 255 items of a Notes document

Only shows 255 characters in the “New Value” field.

Debug option should be tied to the selected database so it doesn’t run when you check your mail

Can’t debug dialog boxes (also, why this is so after so many years is mind-boggling.)

Doesn’t show current line.

If you scroll down to view the code that’s coming, on the next line execution it scrolls back up. During execution you can only see one line ahead.

Can’t debug script on the web, but fortunately I’ve developed an extensive error tracking system that tells me exactly what the error is and where it happened. It’s better than nothing.

There are lots more…these are just off the top of my head.

Subject: RE: The Notes Designer And Why It’s Rubbish.

I don’t want the debugger to show me variables in alpha order; I want them in order of appearance. There’s usually a problem somewhere before the actual error occurs, and I would prefer not to have to scroll wildly through the list as I step through looking for the problem.

Subject: RE: The Notes Designer And Why It’s Rubbish.

That makes no sense whatsoever. Having the keep the field order of forms in your head so that you can easily find a field in the debugger sounds like an extremely poor solution to a problem that shouldn’t exist in the first place. I guess that might work if you’re working with the same app day in and day out. But if you’re a consultant brought in to fix a problem and you’re working with dbs you don’t know, it’s an untenable solution.

But hey, whatever works for ya! :o)