Feature Requests for Notes 8 Hannover

This is somewhat of rehash of my previous requests for Notes 7 features that never made it. Lets see how long we can go without implementing any of these (except perhaps the improved typeahead I hear is in Hannover).

Java UI Objects:

Lotus really missed the boat years ago when they failed to implement a set of Java UI components. Every company I’ve been at has standardized on LotusScript because you can do UI and backend code with it. They don’t want to have to support two languages in their development staff. The only opportunity I’ve had to write a Java agent was to automate the FTP download of a file and unzipping it so that I could import the data. And then it was a real kludge to have to have to save and pass in a parameter doc to tell the agent where to go, login parameters, etc. Lotus would have had much more recognition as a Java development platform and would have a ton more experienced Java developers at this point had we been given Java UI objects. I briefly asked Bob Balaban his opinion on why this was so and I got an undertoned “I suspect it’s because Java is multithreaded, the UI isn’t”. Even if so, why not synchronize those UI classes on a single object then? There has to be a way! Now you have companies marginalizing Notes because it isn’t a true “open” Java development platform and I suspect the majority of Notes developers are lacking both Java and Object oriented design skills. Give us the UI objects so we can get started using Java before we’re thrown the much more complicated task of learning J2EE!

LotusScript Class Browser:

An author told me that the first thing I needed to learn to become a Java developer was OO design. So for the past 4 years I’ve been coding in Notes solely using user defined classes in LotusScript (remember… I’m not allowed to use Java). I’ve even created UI objects uitilizing the on event statement. What I’ve realized is that LotusScript is extremely powerful once you start writing classes. There must be something to it since the mail template uses classes pretty heavily. My code is less impacted by change (I can change a field name and only have to update two lines of code in my entire application), my code is much better organized, I get code reuse, the behavior and handling of documents is enforced, and I can handle collections of documents and their state with ease. I do miss not having polymorphism and interfaces but I’ve managed to get by without them thus far. It really is the way to go though. Unfortunately, the lack of a class browser seems to be the only impedance to people widely using classes in Notes. Their rightful argument is that browsing through and maintaining code is difficult to do. I’ve gotten used to searching for methods and hopping across libraries because the benefits in robustness outweigh the inconvenience of coding. However, it would be awesome if I could right click on a user defined method and choose “go to source” and/or have a tree based browser visible on the left, as exists with the Java editor, that shows all the classes and their methods , even those that are pulled in through the “use libraryname” statement.

Element Centric DXL with Embeded or as Associated File

Check out the Microsoft Access import export format and do something similar. Attribute centric XML such as DXL doesn’t work well with any XML based data mapping tools.

Update the XML Parser/Transformer

I’m dying without the ability to use a nodeset function or work with XML fragments such as those specified in xsl variables. I’ve had to import Xalan into Notes 6 to get this type of functionality but that limits me to Java (which I can’t use with the UI)

LotusScript Downcasting:

If Class B extends/inherits Class A then I must down cast when assigning an instance of class A to a reference variable of type B. There currently isn’t a way to do this with LotusScript. For example, a document and its associated form is represented by class A. When the form includes a particular subform, it is really of type Class B (the form is extended to include additional information in the subform).

LotusScript User Defined Class Typeahead:

I love typeahead, except when I type out manually the whole object type name and then the return key doesn’t work :(. So why can’t we have typeahead for user defined classes too?

Embedded Views Form Override working across databases:

I’m writing a web content manager application. I love that users can embed a view in an RTF on their own. But I want them to be able to display a document in another database (ex. a previously existing application) in a form located in the content management database. There are shared fields, script libraries, agents, etc that are associated with the Content management database and I don’t want to have to copy those design elements into every database that might have its documents displayed on the web. I might not even have priviledges to edit the design of that other database, or maybe doing so would trigger a corporate testing phase, nor would it make the content manager easy to use as a boxed product, yada yada. I want to be able to override the form used by an embedded view even if the view and its documents are coming from another database.

Embedded view database formula:

Allow an embedded view to be specified much like they are specified in an outline entry. Currently we have to use several computed subforms to allow a design to work accross multiple replicas (design, production, test, etc.) Without doing this, you can’t apply a design template and have cross database embedded views work.

CalendarEntry and ToDoEntry objects:

See http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/8fdab4b0db72966c85256d6c0076199f?OpenDocument

Dynamic UI:

C’mon, it’s the 21st century and we don’t have dynamic rich text. After a while People started slamming Netscape because it hadn’t caught up with IE’s dynamic capability. Do ya think this counts as a mark against Notes too? Should developers have to resort to this to make RT changes appear?

http://www.keysolutions.com/NotesFAQ/whychanges.html

And even then the screen jumps to the top of the form. I really can’t think of an excuse for this not being resolved.

DialogBox object:

This is just one example of where a new object is needed. A 12 parameter function? C’mon you can do better than that. Lets get an object for this and really anything else that crosses some sane parameter limit. Thankfully we have typeahead now to alleviate help doc hell but it still just isn’t right.

Web Fidelity:

Why do I still have to think about developing for the web separate from developing for the Notes client? There should be implementations of calendar date selectors, prompt/dialog boxes, name pickers, DHTML based outlines, etc. This isn’t rocket science, anyone can do it. But should we have to, over and over… Doing web development really isn’t RAD at this point.

Web User Authentication:

We need a much easier way of hooking into the Domino authentication mechanism. I have had a need to grant/deny users based on fields that exist in Notes documents beside the Person Document. Yes there is a C API to hook into authentication but that is really involved. On a per site basis we really should have a en event like:

QueryLogin(site/realm/NotesDomain, docLogin, continue) as NotesName

where we can set continue=false or better yet return a denial code/string. The doc would be the session based login form that was submitted allowing us to possibly add other parameters to the login form needed for authentication. This way we can hit ODBC databases, XML , configuration files, etc. and return the appropriate userName/NotesName as a result of successful authentication. (ex. an email address might be the user name used at login but an actual NotesName containing the users real name would be returned).

Attachments:

Add a “target” property to allow a user to pick a target frame for attachments so that we can specify _top or _blank as targets.

Shared Resources - Script Libraries:

I was disappointed to discover that I cannot share a LotusScript library as a resource with other databases. I am familiar with making an individual script library inherit its design from a template. However, working with many large object based script libraries, I thought I would be gain the benefit of reducing database sizes, centralizing code and having immediate code updates (no refresh needed) via the ND6 shared resource functionality. Its almost a tease to see that JavaScript libraries are enabled as shared resourced but not LotusScript libraries.

Domain Search:

Allow field criteria to be specified. I was disappointed to learn that field level criteria does not work with domain search. When doing a multiple database search, one might be interested in narrowing the search to specific topics, categories, statuses, document types (forms), etc. I had high hopes for using domain searching for a web site. I was impressed with how fast it worked in rendering the results to the browser, but when I needed the results narrowed by document types and status, it couldn’t do it. I really think this feature is needed to make domain searching a no brainer for use. Another benefit would be to return a document collection. Right now, I can’t even filter the result set by examining field values because all I get back is a formatted document.

*updated request on this: Allow XML/Webservice output of search results with the same speed as domain search. Just can’t seem to generate results as quickly using an iterating LotusScript agent.

FTSearch:

Allow field comparisons (ex. [field1] != [field2])

UI:

Play well in “dual head” monitor configurations. Dialogs don’t open where the application is and some can’t be dragged to the secondary monitor.

Observe Screen DPI settings and size fonts accordingly. Button text currently gets cut off when using 125DPI video setting and hotspots shrink.

Allow right mouse click on images to “save as” similar to a web browser, rather than having to paste images into an image editor.

Backend Printing:

Having a method to print a document from the backend would be huge. Have to resort to all kinds of not quite perfect options for doing this and related PDF generation.

Database Copy:

Allow more than one database to be copied at a time, and still allow selection of include ACL and Design Only. With several databases in a particular system, it is a pain to make new copies or new templates of the entire system.

Compact:

Allow a database to be compacted and convert attachments to LZ1 compression. See following thread.

http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/661ccca32bec49be85256c69006fb6af?OpenDocument

Embedded Views:

Allow refresh from embedded view actions. Currently causes Notes to crash.

Allow the user to page scroll without having the embedded view clear out.

Allow the category to be specified as partial or exact match. Currently, if the exact match is not found, a partial match will appear in the view which is undesirable in probably the majority of use cases.

Declared Transactions:

Yes, even in the workflow/groupware model, transactions are still important. There’s nothing worse to have to explain to management about a half completed transaction. While there are steps that can be done to mitigate the potential of incomplete transactions, developers shouldn’t have to keep recoding that into every application and even every step taken in code cannot guarantee transactional consistency if the system does not support it. It is easier to code to the transaction that should complete than to try and catch every possibility for an incomplete transaction.

Subject: Feature Requests for Notes 8 Hannover

I can only agree to most of you post.

I have used classes in LotusScript for year myself and has come to appreciate the benefits.

I know this forum isn’t supposed to do advertisements for products, but I can’t help mentioning NotesHound. (www.noteshound.com)

One of the tools in NotesHound is a class browser that works with the code currently loaded in Designer.

Subject: RE: Feature Requests for Notes 8 Hannover

There’s the free script browser and goto utility on the team studio blog:http://blogs.teamstudio.com/

Just from viewing the demo of NotesHound it doesn’t appear there are too many differences between it and the teamstudio script browser.

While I respect the effort in developing those tools, having started a script language parser myself, inevitably, I find them inconvenient because they are not integrated with the IDE itself. Since Workplace is built on eclipse, which is highly extendable, maybe things like this will become more easily implemented in the future as the Notes client evolves to the eclipse platform.

Beyond the class browser, which they may be addressing in Hannover, there are a number of other areas for improvement/fix that still need to be addressed.

Subject: The NotesHound Class Browser is IDE integrated…

… at least to some extent.

Technically, it is indeed a stand-alone Win32-application and it does not ‘hook’ into the Notes core in any way.

However, it uses existing Win32-API’s in a clever way to find the windows- and subwindows of Domino Designer.

One of the options available in the Class Browser is to overlay the Designer pane.

This means the Class Browser window is positioned where it should be - to the left of the actual code.

In the Notes Client, it looks as below. When you click the properties/methods, the Designer window scrolls to the clicked property/method.

// Ken Haggman, NotesHound.

Subject: Ken’s stuff is the best … everyone should check out NotesHound

Subject: RE: Ken’s stuff is the best … everyone should check out NotesHound

just checked it out and just bought it!

A definate must have along with Teamstudio and Integra4Notes!

Subject: Feature Requests for Notes 8 Hannover

This has bothered me since the Admin client was 1st released! I want to select a subset of mail files (or any other for that matter) under the FILES tab and be able to File > Db > Replace Design. It is grayed out… uggghhh.