Domino Web开发规则之三:以资源管理库为中心开发

资源管理数据库以管理公用设计元素为主,作为应用系统的框架提供给应用模块开发使用。主要有以下功能:

  • 管理和存放产品类模块(包括核心和标准应用)所需要的HTML模板/JS/CSS/XML/XSL/图片/控件等。如:公共JS函数库、皮肤所需的CSS和图片以及各模块公共使用的图片或图标等;
  • 存放公共子表单/Web公共组件/WEB应用接口/公共LS类库,如:公用子表单、组织机构选择人员对话框以及核心LS类库或JAVA类库等;
  • 管理数据字典,统一维护,减化重复开发工作;如:下拉列表框中值的选择;

基于此方法管理,能够

  • 有助于开发团队间共享项目成果,
  • 有助于从各个项目积累/封装出优秀代码或组件提供以后项目使用,

1.Web元素管理

使用文档管理WEB元素如:HTML模板/JS/CSS/XML/XSL/图片/控件,在产品开发或项目实施时调用。这样有助于应用开发时的变更/维护。如下图:

clip_image002

  • JS

image

  • CSS

image

  • 图片/控件/FLASH组件/HTML模板

image 

对于产品核心类的图标或通用的小图标(不经常修改的)而存放于图片资源中,供产品和项目开发时使用,如下图:

clip_image002[4]

2.分类字典管理

统一由资源库管理分类字典,可以统一进行维护,不必再为每个应用模块的需要而定制简要表,而且各应用间可共享分类设置。方式如下图:

clip_image002[6] clip_image002[8]

3.Web组件

统一由资源库管理封装公用组件,供应用模块调用。如:公用从视图删除指定文档的代理、AJAX方式的DBLookup代理、组织机构人员选择框、日期选择器、WORD控件JS片断、意见填写对话框等等。

由于每个应用模块都使用在资源库的WEB组件,当WEB组件功能修改或升级时,只需要修改资源库中的WEB组件,而不需要对每个库进行修改。这样有利于版本的维护和功能的更新,有助于团队提高开发效率。

4.公共子表单(sfmCommandFields)

域名 缺省值公式 描述
Notes部分
RF_ServerName @ServerName

类型:姓名,显示时计算 
显示当前所在服务器名称

RF_User @UserName

类型:姓名,显示时计算 
显示当前用户的Notes名称

RF_UserCN

tmpName:=@NameLookup([NoUpdate];RF_User;"displayname");

@If(tmpName=""|@IsError(tmpName);@Name([CN]; RF_User);tmpName)

类型:姓名,显示时计算 
显示当前用户的中文名

如果布署时使用了等价名时可以使用@UserName(1)代替,使用@NameLookup是DOMINO集成了ADS或LDAP时使用。此缺省公式可按情况而定

RF_DocStatus @IsDocBeingEdited

类型:姓名,显示时计算 
当前文档状态

RF_CreateUser @UserName

类型:姓名,创建时计算 
当前文档创建者

RF_CreatedTime @Created

类型:日期,创建时计算 
当前文档创建时间

RF_ResFilePath "VResource.nsf"

类型:文本,显示时计算 
公共资源库路径

RF_OrgFilePath "VOrgManage.nsf"

类型:文本,显示时计算 
组织机构库路径

RF_PortalFilePath "VPortal.nsf"

类型:文本,显示时计算 
首页配置库路径

RF_WfFilePath "VWfManage.nsf"

类型:文本,显示时计算 
流程管理库路径

RF_DBPath @ReplaceSubstring(@Subset(@DbName; -1);"\\";"/")

类型:文本,显示时计算 
当前数据库路径

RF_FilePath @LeftBack(RF_DBPath;"/")

类型:文本,显示时计算 
当前数据库所在目录

RF_FileName @Right(DF_DBPath;"/")

类型:文本,显示时计算 
当前数据库文件名

RF_DBID

@LowerCase(@ReplaceSubstring(@ReplicaID;":";""))

类型:文本,显示时计算 
当前数据库ID

注:只支持R6以上版本,如果是R5版本可使用计算RF_DBPath

RF_ClientType @ClientType

类型:文本,显示时计算 
当前客户端类型

RF_UNID @Text(@DocumentUniqueID)

类型:文本,显示时计算 
当前文档UNID

Web部分
RF_ResURL "/"+RF_ResFilePath+"/"

类型:文本,显示时计算 
资源数据库URL

RF_DBURL "/"+RF_DBPath+"/"

类型:文本,显示时计算 
当前数据库URL

RF_DocURL

RF_DBURL +"0/"+RF_UNID+"?opendocument"

类型:文本,显示时计算 
当前文档URL

Query_String_Decoded Query_String_Decoded

类型:文本,显示时计算 
URL参数解码

Server_name Server_name

类型:文本,显示时计算 
服务器的宿主名称、DNS 别名或 IP 地址,将出现在自引用的 URL 中

HTTP_Referer HTTP_Referer

类型:文本,显示时计算 
HTTP页面引用路径

Remote_Addr Remote_Addr

类型:文本,显示时计算 
发出请求的远程主机的 IP 地址

REMOTE_USER REMOTE_USER

类型:文本,显示时计算 
返回被验证的用户名

Path_Info Path_Info

类型:文本,显示时计算 
附加的路径信息(相对于服务器的 HMTL 根目录),与客户机给出的相同。换句话说,Script 可以通过虚拟路径名称存取,后面是作为 PATH_INFO 发送的附加信息

此子表单做为表单必需子表单,提供这些域供JS、公式和LS方便使用。在开发时将此子表单拷贝至所需要开发的数据库。

5.公共函数库(LotusScript库:LSCore)

此LS存放公共函数,此类函数或过程与应用模块无关(包括产品应用/项目应用模块),完成从产品核心代码角度上考虑,弥补LotusScript功能上不足之处,以产品核心为中心积累公共函数,供产品应用和项目应用使用,做为代码基础调用的统一接口。

存放在此类的函数或过程由产品部统一规划及严格控制。

封装完成后,将所有代码引出至文本文件中,使用%include引用进行预编译。

6.工作流函数库(LotusScript库:LSWorkFlow)

此LS存放处理工作流相关函数和过程,此类函数或过程被相关联的代理调用,完成工作流引擎上的处理。供产品应用和项目应用使用,做为代码调用工作流功能的统一接口。

此函数库以LSCore为基础。在构建时使用LSCore,即在Options中加入

Use “LSCore”

存放在此类的函数或过程由产品部统一规划及严格控制。

封装完成后,将所有代码引出至文本文件中,使用%include引用进行预编译。

原文地址:https://www.cnblogs.com/hannover/p/2062009.html