C# 开发能够与Lotus Notes(.nsf)数据库交互的应用程序

C# 开发能够与Lotus Notes(.nsf)数据库交互的应用程序,c#,lotus-notes,C#,Lotus Notes,我是一名c#开发人员,对开发一个windows应用程序感兴趣,可以连接到LotusNotes.nsf数据库并显示如下信息 1) 表格数目 2) 视图数 3) 脚本库 4) 行动 5) 代理人 完成此操作后,我希望读取每个表单以及每个表单中可用的UI元素,并生成一个等效的.aspx文件 我的系统上安装了lotus notes客户端和设计器 有人能建议如何继续执行此要求吗?不久前,我有一个项目要求与Notes进行通信,我们找到的最佳解决方案是在Notes机器上编写web服务,以公开各种信息 您可以使

我是一名c#开发人员,对开发一个windows应用程序感兴趣,可以连接到LotusNotes.nsf数据库并显示如下信息 1) 表格数目 2) 视图数 3) 脚本库 4) 行动 5) 代理人

完成此操作后,我希望读取每个表单以及每个表单中可用的UI元素,并生成一个等效的.aspx文件

我的系统上安装了lotus notes客户端和设计器


有人能建议如何继续执行此要求吗?

不久前,我有一个项目要求与Notes进行通信,我们找到的最佳解决方案是在Notes机器上编写web服务,以公开各种信息

您可以使用Java来实现这一点,有一个非常丰富的Java API可以帮助您。 我不知道有什么方法可以通过.NETAPI与Notes直接通信

我想阅读每个表单和每个表单中可用的UI元素,并生成一个等效的.aspx文件

对于上面的部分,我不完全确定您想要的是什么-您是否正在尝试在ASP.NET网页中复制Notes表单?
如果是这样的话,这可能会是一项棘手的任务,因为您需要处理Notes中所有可能的元素,并将它们转换为ASP.NET等效项—这并不是很快就能完成的事情

不久前,我在一个项目中要求与Notes进行通信,我们找到的最佳解决方案是在Notes机器上编写web服务,以公开各种信息

您可以使用Java来实现这一点,有一个非常丰富的Java API可以帮助您。 我不知道有什么方法可以通过.NETAPI与Notes直接通信

我想阅读每个表单和每个表单中可用的UI元素,并生成一个等效的.aspx文件

对于上面的部分,我不完全确定您想要的是什么-您是否正在尝试在ASP.NET网页中复制Notes表单?
如果是这样的话,这可能会是一项棘手的任务,因为您需要处理Notes中所有可能的元素,并将它们转换为ASP.NET等效项—这并不是很快就能完成的事情

你应该在这里找到你需要的一切
这是我使用任何IBM技术的第一站


PS

你应该在这里找到你需要的一切
这是我使用任何IBM技术的第一站


PS

如果您想实现某种Notes数据库到ASPX的迁移工具,我建议您看看设计DXL方面。虽然不支持使用DXL编码的设计元素进行往返,但您可以轻松地将所有设计导出到am XML文件并从中开始。我相信,通过解析XML,您几乎可以重新创建所有内容,成功率将取决于您的.NET技能。同时,这种方式只适用于一次性导出,不适用于动态更新的数据库。因此,假设您希望一次性导出和转换,而不是在Notes中设计应用程序,然后将其转换为ASPX。

如果您希望实现某种Notes数据库迁移工具到ASPX,我建议您查看design DXL方面。虽然不支持使用DXL编码的设计元素进行往返,但您可以轻松地将所有设计导出到am XML文件并从中开始。我相信,通过解析XML,您几乎可以重新创建所有内容,成功率将取决于您的.NET技能。同时,这种方式只适用于一次性导出,不适用于动态更新的数据库。所以假设您希望一次性导出和转换,而不是在Notes中设计应用程序,然后将其转换为ASPX。

使用允许您使用数据库的domino interprop库。像这样:

var session = new NotesSession();
session.Initialize("password");
var db = session.GetDatabase("server name", "path to database", false);
if (db == null) throw new ArgumentNullException("cannot load database");
var collection = db.CreateNoteCollection(false);
collection.SelectScriptLibraries = true;
collection.BuildCollection();
var dxlExporter = session.CreateDXLExporter();
dxlExporter.OutputDOCTYPE = false;
var noteId = collection.GetFirstNoteId();
while (noteId != null)
{
     var doc = db.GetDocumentByID(noteId);
     var xml = dxlExporter.Export(doc);
     //do something with DXL
     noteId = collection.GetNextNoteId(noteId);
}

使用允许您使用数据库的domino interprop库。像这样:

var session = new NotesSession();
session.Initialize("password");
var db = session.GetDatabase("server name", "path to database", false);
if (db == null) throw new ArgumentNullException("cannot load database");
var collection = db.CreateNoteCollection(false);
collection.SelectScriptLibraries = true;
collection.BuildCollection();
var dxlExporter = session.CreateDXLExporter();
dxlExporter.OutputDOCTYPE = false;
var noteId = collection.GetFirstNoteId();
while (noteId != null)
{
     var doc = db.GetDocumentByID(noteId);
     var xml = dxlExporter.Export(doc);
     //do something with DXL
     noteId = collection.GetNextNoteId(noteId);
}

我们还开始导出DXL文件,并使用自己编写的导入器导入它们。因此,我们与richtext正文进行了斗争,以避免无法将它们导出为正确的html…我们还开始导出DXL文件,并使用自己编写的导入器导入它们。所以我们和richtext主体进行了斗争,以避免无法将它们导出为正确的html。。。