ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:40.21KB ,
资源ID:6274604      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6274604.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(domino新手指南.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

domino新手指南.docx

1、domino新手指南1.前言DOMINO是一个以电子邮件为基础发展起来的标准群件平台,从1982年开始发布第一个版本,至今已经有数十年的历史,正式注册用户过亿。它最大的优点就是提供了大量内置的如SMTP、POP、LDAP、HTTP、HTTPS等集成的系统服务,所以使用户快速构建跨平台的解决方案成为可能。整个平台由DOMINOSERVER(DOMINO服务器)、ADMINISTRATOR(DOMINO管理工具)、DESIGNER(DOMINO开发设计工具)、NOTES(DOMINO客户端)组成,在一些针对性应用方面还有LOTUS-WORKFLOW(DOMINO工作流设计系统)、LOTUS-DOM

2、INO.DOC(DOMINO文档管理系统)、LOTUS-QUICKPLACE(DOMINO协作平台)、LOTUS-LEI(DOMINO数据交互系统)、LOTUS-LEARNINGSPACE(DOMINO培训系统)等强有力支持。本帖隐藏的内容需要回复才可以浏览2.开发工具分析 2.1 帧结构集帧结构类似于HTML开发中的框架设计,帧结构集是帧结构的集合。帧结构是较大帧结构集的一个区段或窗格,并且可以独立滚动。通过使用帧结构集,设计者可以在帧结构之间创建链接使彼此相互关联。帧结构集可以在用户转向或链接到其他页面或数据库是仍然保持某个页面的显示状态。帧结构一般不采用3-D边框,边框宽度设为0。 2.

3、2 页面页面是用来显示信息的设计元素。与收集信息的表单不同,页面主要用来向用户展示信息,因此用户不能在页面上创建任何字段或者子表单,但可以创建HTML控件。因此页面可以用所见即所得的HTML制作工具来进行开发设计。 页面适用于静态信息或者作为其他元素的容器。可以使用页面作为用户应用的开始界面或者作为提交文件后的提示界面。2.3 主表单表单是用于在数据库中输入和查看信息的载体。表单可以包含1)存储数据的字段 2)标注字段或者提供指示的文本 3) 存储用户想要在多个表单上使用的表单元素集合的子表单 4) 可以结合图形和字段的布局区域 它们所采用的方法可以提供更大的设计灵活性5)可以使表单更容易理解

4、的图形 6) 汇总或者组织信息的表格 7)对象 OLE 预定 Notes/FX(TM)字段 文件附件 URL 以及可以扩展Notes文档范围的链接8)可以自动执行函数的动作按钮9)可以强化文档外观的背景颜色和图形10)在表单中包含其他设计元素的嵌入式元素在应用上细分DOMINO系统中表单一般分为主表单和子表单,而主表单又分为数据存放表单和数据展现表单。其中数据存放表单一般的设计处理方式是数据字段设计在该主表单中,公共控制信息(如流转控制)设计成子表单(component)。再将该子表单加入到主表单中。确保整体设计结构清晰,在内容上主要包含的内容有:数据信息、按钮操作、用户界面、功能子表单等。而

5、数据显示表单的设计处理方式是用于在浏览器中进行数据浏览的表单,为了保证界面的友好性,一般采用CSS定义整体风格。 2.4 视图视图是访问数据库中文档的入口,每一个数据库至少必须包含一个视图,基于所选择的准则,视图可以显示数据库的文档子集或者所有的文档。基于文档的内容,也可以对文档进行分组和排序。在创建视图的之前一定要:* 视图有一个中文名称和一个英文别名,在代码中始终引用英文别名* 视图的列样式、列头字体、颜色、大小在同一个数据库内应该统一* 视图标题栏高度,行间距应该统一设定好,一般设定为1和1 1/4* 如果视图需要分类折叠显示,要出现可折叠标记* 视图上的操作应该出现在操作栏的左侧* 视

6、图应该行数应该使用交替颜色显示* 视图列的最后一列应该扩展到窗口宽度* 用户不直接查看的视图应定义为隐藏视图* 如果视图要嵌入到页面,用于Web访问,则应该选定“在浏览器中使用小程序”2.5 文件夹文件夹是用来存储文档的容器。文件夹与视图具有相同的外观,而且其设计方法也与视图大致相同。其区别仅在于应用的时候视图具有可以自动选择并显示文档的文档选择公式,而文件夹则不是,它是通过用户手动的添加来显示文档的。所以在设计的时候,其设计知道方法可以大致跟视图相类似。 2.6 共享代码 2.6.1 代理代理Agent可以让用户在Domino中自动执行许多任务。它们是可以在数据库中为用户执行特定任务的独立程

7、序。例如可以归档文档、改变字段值、发送邮件消息、删除文档或者执行与外部应用进行交互这样的功能更为强大的动作 。代理还能够进行设置在服务器上基于安排或者在出现特定事件时自行运行。2.6.2 WEB服务Web服务和Domino Domino 6是一个理想的应用程序,用于宿主或使用Web服务。由于Web服务主要是由XML数据组成。因为DOMINO目前有更多被设计用来特殊处理XML的LotusScript类,因此DOMINO对WEB服务有天生的好支持。也有一些有用的工具可提供对Domino里Web服务的附加的支持,它们是:对LotusScript的 SOAPConnect-这个工具包含了一个Lotus

8、Script库它允许您使用和宿主Web服务。MS SOAP工具包-由Microsoft 提供的允许Domino在Windows平台上使用或宿主Web服务 .NET-来自Microsoft 的一个工具集让您使用和宿主Web服务这个工具集可由Lotus Notes/Domino经由Common Object Model (COM)接口访问。 以下的段落接着描述WEB服务的本质。Web服务可以被定义为一个应用程序它提供了一个API,以便将自己与其他应用程序集成在一起。Web服务的主要功能是提供过程到过程的交互作用而不需要用户界面,也就是说您可以通过与API接口远程调用这个应用程序,调用这个服务的应用

9、程序被称为客户机程序。XML位于Web服务的核心并为描述远程过程调用Remote Procedure Call Web服务以及Web服务目录提供了一种公共的语言。Web服务这个短语有时可能会容易误解好像它意味着使用Web浏览器,然而并不总是这种情况,有许多不同的调用Web服务的方法例如一个HTTP请求或者来自另一个应用程序的一个电子邮件是其中的一些方法。 调用一个Web服务的最常用的方法之一是通过发送一个HTTP Get 请求到API。经由Internet 访问API有许多优点,API可以被任何具有Web服务地址的全球客户机访问,Web 服务应用程序里的一个修改只需要在数据源完成,Web 服务

10、可以以任何语言和在任何平台上书写,只要那些Web服务根据Web服务标准可访问, 为了使协同性有效,Web服务平台必须提供一个标准系统,该系统将与使用不同的平台和/或编程语言的系统有接口。一个Web 服务平台需要描述此Web服务并提供其他应用程序为了调用这个Web服务所需要的信息。构成Web服务平台的主要技术如下:XML-这是用于在Web服务平台上表示数据的基本格式;SOAP-简单对象访问协议 (Simple Object Access Protocol) Web服务的远程过程调用(RPC)工具SOAP是一个传输协议,它使用HTTP POST请求来传输。方法所返回的响应是一个XML文档。WDSL

11、 Web服务描述语言Web Service Description Language-是一个基于XML的文法,它用于描述Web服务及其函数参数和返回值。UDDI-通用描述发现和集成(Universal Description, Discovery, and Integration)一个基于XML的目录它表示一种技术规范用于发布和发现业务和Web服务。2.6.3 大纲每个数据库都需要一种方法进行导航。可以利用大纲设计起来创建大纲,给用户提供一个自动链接,具有个人风格的站点导航图。大纲可以包含背景图形、定制图标、链接或者操作。所以在设计大纲的时候,对大纲采用的大纲项图标,以及大纲项所采用的字体,字

12、号,颜色,mouseover的颜色等都要事先定制,颜色,图标采用不一定要相同,但是应该在保证风格统一,并且与整体界面没有冲突的前提下,体现出各自的特点。大纲项与大纲都应该采用别名的形式,在程序调用中调用英文别名2.6.4 子表单 子表单 subform是用户可以在多个表单中使用的表单片段。例如用户可以在子表单中建立公司的信头,然后在各种商业表单中使用这个子表单。 子表单能够包含与常规表单相同的元素, 可以基于公式在表单上加载子表单。2.6.5 共享域 共享域类似于字段,但是可以在不同的表单中使用,如果用户改变共享域的属性,那么这些改变就会应用于所有出现这个字段的场合,他的主要作用是域进行一次定

13、义而后重复使用。便于设计改动时的工作。 2.6.6 自动化组件向应用程序中添加自动功能可以加速执行重复任务、路有文档、更新信息、执行计算、运行程序以及检查错误的自动化组件:* 操作按钮通过点击它们,可以使某些任务得以自动完成。特别是对于Web浏览器用户,需要使用操作来模拟Notes菜单项。* 热点热点是用户单击后可执行操作、运行公式或Script以及转向链接的文本或图片。热点是可以到另一个Web站点、数据库或数据库元素的链接,还可以是按钮、弹出式文本或公式以及操作。2.6.7 共享操作共享操作是在表单或视图中设置用户激活的任务。共享操作的设计位置虽然与操作不同,但是设计方法两者没有什么区别,对

14、操作设计的一些规定,在此同样适用。2.6.8 SCRIPT库 脚本库是集中存放共享代码的位置具体可包含LotusScript、JavaScript以及Java库。2.6.9 导航器导航器是用户能够包含可以用于导航的可编程区域和热点的图形。热点通常可以指示用户前往数据库或者Web站点的另外部分。但是总的来讲,导航器是NOTES 4.X版本的产物,是一项过时的技术,所以在开发的时候不再建议开发人员使用导航器,而去使用页面嵌入大纲来对应用进行导航。2.6.10 层层layer这种设计元素不能在数据库级别建立,而是要在页面表单或者子表单中建立。层可以让用户在页面表单或者子表单上放置重叠的内容块,因为用

15、户能够控制信息的位置大小和内容。所以层能够让用户进行灵活的设计,用户能够建立和堆砌多个层使其彼此交错。透明层可以展现其下的层不透明的层可以隐藏其下的层。 层的内容要依赖于用户要在页面还是表单上建立层,当用户在页面上建立层的时候层就可以包含与页面包含内容相同的元素,例如用户能够增加文本和图形等内容;当用户在表单上建立层的时候层就能够包含与表单包含内容相同的元素例如用户能够增加文本和图形 以及受控的访问部分 字段和子表单 2.6.11 DXL Domino数据的XMLExtensible Markup Zarauage可扩展标记语言表示称为DXL。DXL可以描述特定于Domino的数据以及嵌入式视

16、图表单和文档这样的设计元素。随着XML成为交换信息的标准基础,DXL也为将数据的XML表示导入和导出到Domino应用提供了基础。利用DXL实用工具用户就能够查看和导出用户的Domino设计元素,用户还可以使用转换器Transformer实用工具和XSL样式表单文件将其转换为另外的格式,XSL文件包含了针对XML数据的格式 3. 开发要点编码语言以及代码优化分析31 编码语言的选择在具体的开发过程中,根据需求性质,DOMINO可以有多种编码语言的选择。主要有公式、lotusscript、java、javascript语言,比较起来,特别简单的功能和逻辑,用公式实现比较快;复杂的功能和逻辑,用l

17、otusscript比较快。java语言可以实现多线程,完全面向对象,处理大量文档时,如果程序利用到多线程,比不能利用多线程的lotusscript快。另外针对于底层开发,LOTUS还有专门的Toolkits支持:按Lotus产品系列来分,Lotus提供下列产品的工具包: Notes/Domino 、Sametime 、QuickPlace 、Discovery Server 、Other。其中,Notes/Domino和Sametime的工具包比较多,C、C+、Java语言的都有,其他产品的则很少。从这个角度,也可以看出文档数据处理、协同工作是Lotus系列产品的核心价值所在。其中,Note

18、s/Domino的工具包有: Lotus C API toolkit Lotus C+ API toolkit Lotus Domino Toolkit for Java/CORBA Lotus and Notes Toolkit for COM Lotus Domino Driver for JDBC (简称LDDJ) NotesSQL Lotus XML Toolkit(简称DXL) Custom Tag Converion kit(简称DCT) LotusScript Extensions toolkit(简称LSX) 在Domino/Notes的Toolkit中,C API的功能最为强

19、大:可以操纵notes数据库中几乎所有的数据对象:数据库及ACL、文档和域、表单、视图和文件夹、代理、可以为Notes客户端的增加附加菜单、可以用来创建附加的Domino服务任务、可以用来扩展Domino/Notes的事件管理。而其主要限制如下:不能修改已有的Domino/Notes软件,不能去除其已有的功能、特性,或者改变其工作机理、不能修改安全特性、不能修改用户活动记录 支持的操作系统: WindowsNT/2000, Linux, Solaris SPARC/Intel, HP-UX, MacOS, AIX, AS/400, S/390等。32 编码优化原则1)公式语言优化1.使用Cli

20、entType代替UserRoles来检查客户端类型 从R4.6开始,不必使用UserRoles中的$WebClient来检查客户端是否使用浏览器,直接使用ClientType比较快2.使用简单的公式隐藏条件比较快以下三种写隐藏的选择,性能递减。可以利用第一个,不要写判断ClientType的公式;可以利用编辑模式,不要写判断isdocbeingedited的公式 a.根据客户端程序类型 b.根据编辑模式 c.根据公式隐藏3.在dblookup和dbcolumn公式中使用列号比使用域名快使用域名需要在域列表中对比,但直接使用列号会带来维护的困难。4.打开dblookup和dbcolumn的ca

21、che开关cache不但可以使这个公式执行更加快,而且可以使同一个数据库中,同样公式的另一个lookup运行更快。cache是基于数据库的,不同数据库的相同lookup不能利用相同的cache。注意:无论是否打开cache,lotusscript调用evaluate的lookup都不能利用cache。5.根据4,如果公式和lotusscript都要利用相同的lookup结果,可以将信息放到profile文档中。6.要lookup一个包含很多文档的视图时,创建一个隐藏视图,仅包含必要的列。视图越小,越快。7.如果要取视图中的几个列,分别取的话,每个lookup都要花时间。将几个列组合成一个列,用

22、特别的字符分隔,一次取出来,然后分析出几个域。8.一段公式中,数次利用同一个结果集,用临时变量保存,而不是每次重新取9.使用不同的搜索方法,如果处理的文档集较小(例如少于数据库中所有文档的15%),使用lotusscript比公式快,如使用getview , search, ftsearch等方法。10使用显示时计算域来避免不必要的重复计算。下表是使用各种类型域时,不同事件引发的计算情况:Field Create Open Open Show Save RefreshType (empty) (data) DialogEdit DV IT,IV IT IV(normal)Edit DV KF

23、KF IT,IV IT IV(K-UF-DB)Edit KF,DV KF KF IT,IV IT IV(K-UF-Not DB)Computed V V VComputed for display V V V V VComputed forcomposed V上面缩写的解释normal-Normal edit field (not one of the two special ones that follow)K-UF-DB-Keyword, Use formula for choices, dialog boxK-UF-Not DB-Keyword, Use formula for choi

24、ces, check boxes or radio buttonsDV -Default value formula executesIT -Input translation formula executesIV -Input validation formula executesKF -Keyword formula executesV -Value formula executesCreate-Field is being created (either because the document is being createdor an existing document is ope

25、ned that does not contain the field)Open -Opening an existing document in either Read or Edit modeEmpty-Field is empty (exists in document but has no contents)data-Field has dataShow Dialog-User presses the icon to display the dialog box注意两点:1.使用check box和radio box,一打开文档,公式总要计算,即使仅仅打算阅读而不是修改文档,看起来是合

26、理的,因为需要计算出各个项目供阅读嘛2.已经有数据的,使用对话框格式的编辑域,打开时候也要重新计算,这个就不太合理了。 当使用复杂的dblookup时,性能有很大影响。隐藏公式域没有作用,因为仍然会发生计算。按照下面方法解决1)创建一个隐藏的多值显示时计算域:kwDataHidden,计算公式是原来的dblookup公式,但仍然要做如下处理,值公式写成这样: rem Do not run formula during doc save; if (IsDocBeingSaved; Return();); rem Only run if doc is in edit mode; if (IsDoc

27、BeingEdited;DBColumn(.);)2)在表单的PostModeChange中,写:If(IsDocBeingEdited;Command(ViewRefreshFields);),(实际上,如果觉得公式的值的修改频率不是太快的话,这里也可以不写)3)真正操作那个域的公式写:kwDataHidden;并且该域属性选择刷新文档时刷新选项。2)脚本语言优化1.使用For loop,不使用Do loop 或者 while loop的循环前者比后者快60%(不计算循环内部时间的情况下)2.引用数组元素的时候,使用Forall比for快一维数组,前者快75%,二维以上,也可以快50%3.简

28、化if语句lotusscript不会象c那样进行逻辑语句优化,所以 If a=x and b=y then 应该写成 If a=x then if b=y then 后者快40%4.避免混合变量类型(计算)(也就是不要隐式造型) dim a as single dim z as long z = 3 a = 1.0 z = z+a 上面这一段使用了implied casting,z=z+(long)a会比较快1.对整数结果,使用整数除法:z& = x& y& 比 z& = x& / y& 快60%2.仅在有必要的时候才使用variant类型,lotus使用更多的时间处理variant3.读取文

29、件的时候,一次读取一块,而不是一行,下面的例子A比B快接近5倍!而且读取的文件越大,越明显。 example AOpen fName$ for input as #fNumbuff$ = Input$(Lof(fNum),fNum)stPos = 1lineNo = 1eoFile = falseWhile Not eoFile nlPos = Instr(stPos,buff$,Chr$(13) If (nlPos) 0) then fData$(lineNo) = Mid$(buff$,stPos,nlPos - stPos) stPos = nlPos + 1 else fData$(l

30、ineNo) = Mid$(buff$,stPos) eoFile = true end if lineNo = LineNo + 1wendclose #fNum example BOpen fName$ for Input as #fNumlineNo = 1while Not Eof(fNum) Line Input #fNum , fData$(lineNo) lineNo = lineNo + 1wendclose #fNum注意,R4.6以及之前的版本,string变量有64k的限制,所以一上例子a需要再增加一些东西(不能一次读取,而是要分次读取文件),但块读取的好处仍然是显而易见

31、的。R5开始,string变量可以最大达到2G,足够读取非常大的文件了。例子A虽然增加了代码量,但是可以大大加快速度,某些场合非常有用5.避免无谓地使用数组,下面例子A比例子B快两倍Example AFor i = 1 to 100 sum = sum + x(i)Nextt(1)=sumExample BFor i = 1 to 100 t(1) = t(1) + x(i)NextDomino R5引入了新的数组处理函数:ArrayAppend , ArrayGetIndex , ArrayReplace , FullTrim,使用这些函数比自己写相同的功能快6.有一个不使用字符串数组的替代方法把所有数组中的字符串元素构造成一个字符串

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1