Wednesday, July 18, 2007

processes and directories, oh my....

I am determined to separate the Notes client and Designer processes at the same time we put Domino Designer into Eclipse (I can't say when yet, but we are still hard at work on it!). This will require a few decisions... I was pretty sure I knew the right path, but then I talked to some customers at the recent NE Notes User Group meeting I realized I needed to validate some ideas.

As I thought about how to solve this problem, I came upon one thought that is very important to verify. My belief (please say if I'm wrong!!) is that the "typical" Notes developer *uses* a different set of databases than he or she *designs*, and based on several Lotusphere conversations, people who design also often want to design using a different ID than they use in the client.

That would mean that the data directories (and desktops) could be different between the client and designer, making the process separation much, much, MUCH simpler. We could still do a Notes preview in this world by launching a separate instance (in Eclipse-speak, target platform) for the Notes client to view the preview of interest.

Things get less simple if you actually want to preview a database that you use in your local client data directory, with the data that's there. So I need to know how important that case is...

Do you most often design databases that you simultaneously use locally in your client or are they typically different?

Your responses will really help me work this issue through! Thanks!

21 comments:

Nicolas said...

I design local template only when I'm offline (Home, Travel...), but for small update. When I'm online, I developpe on server.

Good idea to developpe with a different ID for testing security & ACL !

OFFLINE = 1 ID, 1 workspace, 1 data directory
ONLINE = 2 ID, 2 workspace, 2 data directory

Neil said...

I would totally be happy with different directories. Completely happy. No worries from me. Separate IDs for Notes & Designer would be great for a lot of corporate settings. As a Business Partner, I could have my BP stuff running in Notes while my Designer work could go on under my customer's ID.

Feri said...

as a designer/power user, I think the idea is WRONG. I prefer to have more notes installs, so different ID for developing vs mail/apps is no issue.

how will new designer preview my work? I use preview feature very often, and can't image it will preview in different (Notes) client with different ID!

how will you decide, which (simultaneously run) client is "paired" with designer? now, CTRL+F6 works like charm, will it in R8?

Anonymous said...

Good ideas Maureen. I use a different ID for development. This is a problem since I can't read my personal email or use other databases as myself, nor can I use instant messaging.
It would be fantastic to have Designer on an "island" by itself.

To expand on your idea, it would be great if we could simulate different access levels and roles when testing. Otherwise, we'd still need to switch to a different ID to test applications.
Brian

Pipalia said...

I don't follow set standards - some design templates are held locally and some on server, but I do held local replicas for testing purposes which I would prefer to still preview in future notes releases.

Richard Schwartz said...

How would View - Design in the regular client work?

I'm asking just out of interest, because forget about how I work now. I would gladly change any aspect of how I work if it meant that the client and designer were properly separated.

John said...

I think we can deal with some new ways to work if you can totally seperate the processes. I would like to be able to use the same id in both places ... and can accept if I have to have it in two directories. Just as long as we can be logged in with the same id in both places. Also remember, just like in the client, we need to be able to use locations to change id and server info .. with a single click after creating the location document.

For myself, all of our development is done using templates that get applied to databases on development servers. we then update production templates. who updates the production databases depends on the client admin process.

While your at it .. can you give us a "Sign this database with this id' in Designer please .. that would remove my need to use the Admin client for almost anything

Keil Wilson said...

I'm not sure I totally understand your suggestion/question, but I do want to say that I often design locally when I'm away from the office. I frequently make small changes in designer, then flip over to the client to check/test them. For me, when I'm working locally, it's essential that I have the ability to see my design changes reflected almost immediately in the Notes Client. Is that what you were asking?

Jan Van Puyvelde said...

>> the Notes developer *uses* a different set of databases than he or she *designs*
Yes
>> people who design also often want to design using a different ID than they use in the client.
No

Over here, we develop on development servers but using our production ids (which are cross-certified).

The only thing that bothers me is the debugger kicking in while using my mailbox. It was a good thing that the help dbs were excluded from being debugged, but we need a setting (enabled by default) to exclude other system databases (mail, nab, ...) too.

Simon Scullion said...

Assuming you split the data directories as you propose. Could we not just map to the Client data directory with a .dir file if we really HAD to make changes to a "live" database locally?

To see or test my changes would then just be a question of opening the database in the Notes client. Therefore I don't think it matters if previewing from Designer opens another instance.

Roland Reddekop said...

Typically, I design then preview in Notes offline. Having a separate Notes data directory vs. Designer data Directory might be a better way to force the separation of Production vs. Development environments (many Notes shops are lazy in this respect). However, you need to consider the offline developer and make it work for them. I've fixed many a problem offline, especially on the road and then uploaded the fix at my destination.

Arnd Layer said...

As I understand the problem is that when the designer and client processes are separated, the nsf file will be locked by one process and the other won't be able to access it locally.

The optimum solution would be to port the Domino DB server task to the new designer and make it serve all DBs within the designer data directory to local host (127.0.0.0) clients. Both designer and client would access the DBs concurrently as if they were coming from a server.

I don't know if this is feasible at all, but it would provide some additional benefits like local testing of server based access control, ...

Chris Whisonant said...

Both Nathan Freeman and myself think this would be a great idea. He would comment but he's really preoccupied...

wild bill said...

Perhaps this would help.

Almost everywhere I've been, the developers have a separate ID to a development server and environment, and most of the initial development and testing are done there.

Once the app gets through acceptance testing, then its put live (and this should be done by the Admins, so that the dev doesnt have a "live" user ID).

Now, the easiest way to make this simple for notes developers would be to have separate clients running at the same time - I do this all the time.

However, the new "Wiring" schema from nlnotes.exe publishes whether the nlnotes.exe is running within exclipse or not, and appears to be machine wide. So you cant run two notes 8 eclipse based clients at the same time..

Or even a "Basic" notes 8 and a notes 8 "standard"...

If that were to be fixed, and we could reliably run multiple clients at the same time - this would deliver (I think) what your asking for...

Hope this helps, and keep up the good work...!

---* Bill

Anonymous said...

I would love to be able to use 2 different ID's.

Cheers

Maureen said...

This is a great help! A few answers that I know at the moment... You could use the same OR a different ID with Designer, your choice, and switch IDs as needed. Notes Preview would work in this scheme - it's just that it would likely be a separate instance of the Notes client.

We'll still have a way to launch Designer from the "normal" client, but View-Design is a tricky one. And I know a lot of people use that path, so that feels like one of the bigger challenges right now. Another issue is private agents and views for users who don't have Designer rights to the db.

Thanks for all the thoughts, and if you think of anything else, please keep adding as the spec is due soon :-)

Sam said...

if the vote is still open, i use the same ID and same database.

Anonymous said...

A developper is often a poor user! For exemple I only use notes client 3% of the time to read mails. The major part of my time is within the designer. We dont use different ids for dev wich allows us to be connected (mails + sametime). Otherwise it would be confusing : "should I email the dev or the user?". Also dont forget that composite application will require a set of applications for testing.

jonvon said...

>> the "typical" Notes developer *uses* a different set of databases than he or she *designs*

yes this is true, except while in design phase. we do use them while we are designing them. but this does not mean that we should be using the same id. as a developer (this might not be the typical case, not sure) i have privileges that normal users do not have. so i really should be testing with a "normal" id, but typically i am testing with my own.


>> people who design also often want to design using a different ID than they use in the client.

yes i think i agree with this, and i do this sometimes, but of course it requires either multiple clients installed on one machine, virtual machine(s), or multiple computers.

at any rate i think separation is a great idea for a number of different reasons. i think the whole process would just be cleaner overall. it would be easier to simulate test cases. it would lead us as developers to think more about QA in general, it seems to me.

also there is a lot of baggage which i don't need to remind anyone of with having them both sharing the same client instance. properties boxes snafus being the most glaring example.

chandani said...

Sri lankan information portal
Important information about sex, tips, accounting, news, BPO

http://www.singhalaya.blogspot.com

---------

CHANDANI

meta said...

I would love to have Designer have its own ID, properties, etc. Then I could use a special ID for design work, and test in the client with my regular ID with no elevated permissions, and see what regular users will see. It's all too easy to build stuff that works when you have elevated permissions, but breaks for read-only users (for example).