教你如何学习Lotus Domino/Notes

Domino是什么:
一、是一个文档数据库系统
二、是一个邮件服务器
三、是一个目录服务器
四、是一个web应用服务器,支持web应用程序(lotusscript,perl,cgi)和java。

Domino的扩展:
一、Domino至少可以通过下面列出的手段访问其他系统
   lcslx,
   ls:do,
   java,
   decs
二、domino自身可以调用com组件和win32 api
三、domino可以调用c接口


Domino初学者的入门地图
一、domino作为文档数据库具有数据库的一般特性:增删改查。你可以将信息存到domino数据库中进行处理。很多应用程序不就是以此为基础的吗?

二、domino是一个邮件服务器,支持smtp和pop3。domino作为邮件系统,可以通过配置建立复杂的邮件网络。

三、domino可以支持ldap,可以集成/被集成其他目录服务器,如windows ad,netscape ldap server等。并且可以和iis,websphere等应用服务器做SSO。

四、domino作为web应用服务器可以建立b/s应用,并可以通过它的扩展接口集成其他的系统。domino支持java,可以运行java代理和java servlet。(说明:R5 jvm:1.1.8)domino内置了java servlet manager。

五、domino可以发布xml。不信就去查查ibm红皮书吧。


可以学习什么

一、domino管理的两大主要问题:邮件和目录。看看帮助吧。能够熟练地配置domino邮件系统并且可以做到ldap目录集成的管理员,基本上是高人了。

二、开发的几个重要问题:
(客户端开发的问题)
表单、视图、数据库的几个事件,例如queryopen,postsave等。能够合理地将代码分布在这些事件里,基本上算是精通的人了。
另外要了解如何调用windows上的OLE类。怎么找OLE类的帮助?designer,随便做一个按钮,click事件里,lotusscript。看到左边的帮助了吗?自己选择吧。最重要的几个OLE类:MS Office,IE Navigator(看数据库web导航器的设计去!),如果你还是很懂,看看ms ado。

(b/s开发的几个问题)
b/s开发设计的技术要多一些,html,vbscript/javascript,xml等。
其实我们如果用其他语言开发过b/s系统可以发现共通的地方:
web上交互方式两种最重要的:GET和POST。
我们可以将Web Query Open代理想象为GET操作,就是你要在页面打开前进行页面的初始化。
当你想向服务器提交数据处理请求时,执行的是POST操作-Web Query Save。
有许多人喜欢在表单上放置按钮运行代理:@command([Toolsrunmacro];"XXX"。这样做不是不可取。如果你转到ASP,JSP或者利用CGI,Servlet就很难适应。因为这些开发方式都是最终要执行一个docuemnt-form-submit。
举个例子:
对当前的文档有三个操作:保存并新建、保存、提交审批。
一般的初学者会这样:@command([filesave]);@postedcommand([compose])、@command([filesave])、@command([toolsrunmacro];"TiJiao"。

如果你想将来能适应jsp,asp,cgi,servlet的设计,可以使用这样的方式:
方式一、在表单上放一个域SubmitType,文本,type=hidden,default value=""。
做一个web query save代理-"Submitdocument.quot;。
三个操作就变为:document.forms[0].SubmitType.value="1";document.forms[0].submit()、document.forms[0].SubmitType.value="2"";document.forms[0].submit()、document.forms[0].SubmitType.value="3"";document.forms[0].submit()。
代理内容:
select case doc.SubmitType(0)
case "1"
  ...保存并新建的处理代码
case "2"
 ...保存的代码
case "3"
  ...提交的代码
case else
  ...出错控制!


方式二、巧用$$QuerySaveAgent域(这时系统的域!)
创建一个名字为$$QuerySaveAgent的文本域,缺省值“NoAction”,type=hidden。三个操作的代码是:document.forms[0].$$QuerySaveAgent.value="SaveAndNew";document.forms[0].submit()、document.forms[0].$$QuerySaveAgent.value="Save";document.forms[0].submit()、document.forms[0].$$QuerySaveAgent.value="TiJiao";document.forms[0].submit()。
然后建三个代理:SaveAndNew、Save、TiJiao即可。分别处理。
说明:$$QuerySaveAgent的功能和表单的WebQuerySave事件一样,它的值是告诉服务器在web query save时执行哪个代理。具体请看designer帮助!

明白了这些原理,大家可以多使用一些document.formName.submit()的javascript做程序。尽量避免使用在web页面调用公式的方式。

我见过许多人将用户输入的合法性检查放到代理里进行。出错了就alert一下。为什么不用javascript先检查,然后将document.formName提交呢?

(扩展接口的使用)
domino连接RDBMS的最好方法是java.sql.*,虽然R5只支持java 1.1.8 API。使用数据库系统自身提供的jdbc driver是最好的,因为人家优化过呀。db的jdbc driver通过java代理的“编辑项目”按钮可以引入到当前代理里。

记住扩展方向:
一、Domino ------> RDBMS:编程接口有LCLSX,LSO,JDBC
二、其他系统 -----> Domino:Domino COM、Notes JDBC/OBDC Driver、Domino Java API/C API、NotesSQl等
  

你可能感兴趣的:(Lotus)