Accessing data within a Lotus Notes NSF file using C#

Posted on 2008-10-09
Medium Priority
Last Modified: 2013-12-18
Hi experts,

I'm after a light weight solution that will allow me to access an NSF database using .Net.  By light weight I mean not having to install the full Lotus Notes Client.  I realise this might be a bit of a stretch but I'd at least like to try and establish a list of the dlls that are required.

In terms of functionality I only need to get an item count and possibly iterate all items and get the attachment count as well.  I can see how to do this in the Lotus Notes C++ API.

My main question is which API should I be using?  Is there a set of COM dll's available that I can use through .Net?  Has anyone successfully connected to an NSF through C#?  Are there any code samples available?

Question by:hdkelly
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
LVL 46

Expert Comment

by:Sjef Bosman
ID: 22676893
IMHO: forget it, if you try this with a local Notes database.

If you connect to a server, you can use Java, via DIIOP you can connect to the Domino server.

Alternative: don't open the database but use HTTP to open the database.

Author Comment

ID: 22677226
OK, it seems that the Domino Object Model (domino.dll) is the accept method of COM communication.  I have prototyped a solution using this API that meets my needs.

My question is can I get this prototype to work on a machine without the Notes client installed?  Furthermore, is there anyway to access an NSF database without having the client installed?  I'd like to hope there is as I don't want to distribute the client with my solution.
LVL 46

Expert Comment

by:Sjef Bosman
ID: 22677319
> ... can I get this prototype to work on a machine without the Notes client installed?  

> Furthermore, is there anyway to access an NSF database without having the client installed?

a) Java, DIIOP, Domino server.

But, by all means, wait for others for their opinion.
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Author Comment

ID: 22677390
I'm beginning to accept that you are right.

As a last gasp attempt, is there a subset of required files that can be isolated from the Notes Client install and distributed\registered manually?  Or does domino.dll rely on a whole heap of other configuration and registry settings?
LVL 46

Accepted Solution

Sjef Bosman earned 750 total points
ID: 22677621
AFAIK there are no settings in the registry (or very few). But there is a file notes.ini, which is used extensively for settings and other parameters. I understand your question, it seems valid, but you should also know that the majority of Notes environments really value its impenetrability. What you're trying to do violates at least one but maybe more of the security principles of  Notes.

Anyway, if you want to interact with a Notes database, you are de facto a user, and therefore are required to have a user licence, which is the price of a Notes client. You could say that the Notes client is free, but to use it costs you a user licence.

So, in fact, it is up to your end-user to acquire a Notes client and take care of the licensing issues. All you should do is make sure your solution works together with a Notes client. Using COM is one solution, apparently you managed to use it in your application already.

Honestly, I never tried a minimal installation, it might even be fun. And it might even work, although I don't know how Notes would ask for the password that comes with the id-file you allways need. In any case,  if you copy those files to PC other than the one you installed them on I'd say you'd be violating the copyrights of Lotus Notes...

Author Comment

ID: 22678509
Cheers for the response,

I would certainly expect to pay for a client license on each machine I interacted with an NSF on.  I am not trying to avoid this cost rather I am trying to streamline my deployment process.  And although it is heading that way, I would have preferred not to have a Notes Client install as a prerequesit for running my service.

I am interacting with individual NSF files removed from their native environment and network, so maintaining security in my workflow is not an issue.

I am aware of the importance and function of the notes.ini file.  I'm not prepared to experiment in order to find a skeleton install that works, as unfortunately I don't have the time.  If this is something you come across in the future please contact me.  Otherwise I appreciate your help, your advice has been valuable.

LVL 46

Expert Comment

by:Sjef Bosman
ID: 22678757
Thanks as well.

> I am interacting with individual NSF files removed
> from their native environment and network, so
> maintaining security in my workflow is not an issue.
It might not be an issue on your side, but on the side of the original owner of the NSF files! I for one wouldn't be too happy in discovering that you can fiddle with my mail database... ;-))
But you're right when you say that I should have used encryption if I want my data secure. To rely only on Notes' built-in access rights is not enough.

Featured Post


Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is an old article, please see an updated version of this article, located here: http://www.experts-exchange.com/articles/23619/Notes-8-5x-Windows-7-Notes-info-and-tips.html
This article covers general Notes 8.5 troubleshooting information including recreating the Notes\Data folder.
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question