50. 替换设计和刷新设计——Lotus Notes的程序部署和更新之理论一文介绍了理论上LotusNotes的程序部署和更新之概念和过程,实践当然相比更繁杂,涉及到的境况和物事更多,需要更多考量。本文就介绍和讨论一下这些问题。
除非微不足道,任何程序开发都会遇上代码重用的议题。Lotus Notes的程序开发是以一个数据库为部署单位的,重用代码也就是用一个数据库继承另一个称为模版的数据库的设计的形式,应用数据库在创建时复制单个模版数据库的所有设计元素,或者在开发过程中引入(可能多个)模版数据库的特定元素(自R 8起,Lotus Notes改用应用程序的术语代替数据库,不过在笔者的系列文章里,这两个词语时常混用)。一个应用中,既有继承自模版的设计元素,又有专属当前应用的新元素。当模版里的设计元素发生变更后,要保证继承它设计的数据库的相应元素更新,就必须对它们刷新设计。这样自然就产生了区分一个应用中继承的和其他的两类设计元素的问题。
对此,Lotus Notes有两种应对方法。第一种方法是应用数据库继承某个模版数据库的设计(在数据库的属性信息框的设计页显示和设置),那些不属于模版数据库的新设计元素就必须特别标记“禁止设计刷新和替换”。也就是普通元素都来自模版,没有标记。第二种方法则是应用数据库本身不继承任何模版&#