ASP和Domino的比较(偶尔编程PK处处编程)

        ASP(Active Server Pages) 是基于服务器段端的编程框架,是运行在IIS内的一系列互相关联的脚本引擎部件,目的是动态产生Web页面——内容由嵌入在Web页面的脚本程序通过ASP引擎动态产生。ASP与传统的基于CGI、PERL等繁琐的方式将动态数据技术集成WEB相比较,有了很大的提高。作为一种动态的数据引擎,ASP在某中程度上可与Domino作些比较。要求大量的时间和开发资源,ASP可以创建不同类型的应用,但是这些应用还只是最基本层次的。从根本上说,它适合用来创建简单的、基于数据驱动的Web页面,尤其是仅仅基于Windows NT上应用。相对来说,Domino提供的跨平台应用开发,是基于“偶尔编程Code-by-Exception”的方法,而微软则采用了“处处编程Code-by-default”的方法。Domino提供了可以结合良好适应性的编程逻辑的各种高级的应用编程构件,如子表单、表单、视图、代理等。利用较高层的编程手段,通过简单的点击对话,Domino采用简单命令或Notes公式就可以完成编程。更复杂的Domino应用,则可以采用脚本语言、Java、JavaBean或ActiveX控件。所有的编程方法,都访问到集成在Domino中功能服务,如企业数据集成、消息传递、安全性、工作流、日程表、内容索引、全文索引、目录管理等。所有这些,使得Domino的应用可以迅速地被创建和修改。开发者可以把主要精力放在应用逻辑的处理上,而不是底层的代码编写上。

服务器脚本语言:
      在IIS服务器中,ASP服务器脚本语言是最主要的基础。然而,它需要开发者将所有的逻辑用脚本语言编写,并且只有该页面被调用时才会被激活。Domino提供了一种适应性更强的服务器端脚本编程能力,以及代理管理技术。应用逻辑的实现是“偶尔编程的”:可以采用对话框的界面方式来编程,也可运用Notes公式、Java、兼容Basic语言的LotusScript 语言等。并且,代理不但可以在不同的页面事件中触发,而且可以基于调度的,可以不需用户的干预而触发。

动态/个性化的页面:
      通过ASP技术,可以执行基于HTML页面中的应用逻辑,提供了动态和个性化的内容。而这些只是Domino的缺省属性:每一个设计元素都是可编程的,用户的身份由Domino自然维护,Domino在用户请求的同时自动产生页面。开发者不需要跟踪用户的身份,也不需手工编写或维护复杂的脚本程序和HTML页面来产生动态的,个性化的内容。

数据库驱动的页面:
      通过动态数据对象(ADO),ASP脚本可以在WEB页面中访问后台数据库。Domino通过跨平台的LS:DO方式提供同样的方式,访问ODBC数据源。事实上,通过OLE的方式,如果限定在Windows NT上,开发者同样可以利用ADO方式访问数据库。除此以外,利用集成在Domino中的企业集成连接件(DECS),开发者可以不需编程就在Domino应用中能访问到企业数据库资源。Domino可以直接访问DB2、Oracle、Sybase、文本文件和文件系统,或EDA/SQL系统。此外Domino还可以集成SAP、事务处理系统、MQseries、CICS等等。

将内容与业务逻辑相分离:
       微软鼓励开发者将应用逻辑编写在客户自己制作的控件中,即将应用源码与ASP服务器本身分开。然而,即使控件中包含了某些静态的业务逻辑,需要根据不断变化的业务逻辑来访问和操纵这些控件的脚本,依然存在于ASP的HTML页面中。这种基于页面的方式,使得代码的维护变得非常困难。一个布局的改变,或者一个控制控件的逻辑改动,将要牵涉到很多的文件。改变后的页面不得不用手工方式进行发布。(采用手工修改,或将该过的文件通过文件系统拷贝)到运行该应用的服务器上。相比之下,Domino采用基于表单的方式,将逻辑区分于布局,而且通过广泛使用设计模板,真正做到使应用与设计、逻辑分离。表单用于控制布局,在表单中,元素背后存放逻辑(字段,代理,操作),这使得在页面中的布局与逻辑区分开来。在模板中,存放了所有的设计元素(字段,代理,操作)。维护时,只需要对应用模板更新。通过Domino 的复制机制,能够将所做的修改自动发布的所有相应的服务器上。所有升级工作将由系统自动地按预先安排来完成。

开放的脚本:
         ASP技术提供了内置的对VBScript 和JScript的支持。JScript是基于ECMA-262标准的语言:JavaScript。Domino提供可扩展的、开发的脚本编程环境。除了与BASIC兼容的LotusScript之外,可使用Java来编写服务器端程序。并且,Domino“偶尔编程”的开发手法,提供了开发效率,具有更广泛的适应力:除了脚本编程之外,对于复杂逻辑的实现,Domino提供了非编程实现的办法:如高层次的应用开发部件(如表单、视图、字段等等),对应用服务(如数据连接、报文传递、工作流、安全性等)的简单访问方法,支持高效率的逻辑实现方法(如点击对话框、简单命令、易学的Notes公式语言)。结合复杂脚本编程手段与能够被多种工具利用的、开放的对象模型,使得Domino成为既强大有开放的编程开发环境。

独于的浏览器:
        ASP脚本中可以嵌入逻辑,以判断查询该页面的浏览器的类型。利用这些信息,应用程序开发者可以针对不同的浏览器提供不同版本的页面。缺省地,不需人工干预,Domino就可以提供与浏览器独立的HTML页面。采用与ASP一样的方式,Domino可以通过编程增强对浏览器类型的判断:通过CGI变量获取客户机类型信息编写应用逻辑,返回不同类型页面。

可操作性:
         微软认为用ASP开发WEB应用是“可操作的”。客户化的页面、动态产生的HTML页面,可以用ASP技术与VBScript技术很容易地实现,远胜过传统的WEB开发工具如C、PERL、CGI等。在这方面Domino则远远超过了ASP技术:“偶尔编程”的开发方式、高层次的开发部件、基于表单的而不是基于页面的开发办法、可面向非专业开发人员的应用开发,以及功能高级的编程能力,和通过用模板来管理应用,用复制机制分发应用等等。
用Domino开发Web应用的优势

今天,微软的ASP技术,主要是被用于创建基于Web的前端连接到现有的后端系统或数据库的应用。但开发用于处理业务流程、管理工作流或加强协同工作的应用,还需要许多附加的系统及大量的需要编程的组件集成工作。这其中包括:需要定义储存机制,核心基础服务需要安装与配置的、并且需要通过手工的方式集成对象,需要创建的客户化Active Server Component 以及为上述组件的组合编写的大量代码。为了充分发挥ASP的功能。开发人员应深入理解多种微软的产品。相比之下,Domino提供了一个集成的平台和一个高层的、可视化的开发环境,使开发者可以快速而简易地创建Web应用。此外,除了服务器端编程、动态内容生成、由数据驱动的Web页面、内容与应用逻辑的分离、高层次的应用部件和集成的应用服务外,Domino还具有了针对ASP的众多优势。这些优势具体体现在开发诸如前端办公处理系统、内容管理、与企业系统如关系型数据库系统、ERP应用与传统系统的集成等应用上。集成的核心服务:企业级数据存访、报文传递、目录服务、复制、安全性、内容索引、全文检索、日程安排等。IIS和ASP不提供应用需要的基础服务。这些服务必须以分开的形式加以安装及管理。开发人员只能通过手工的方式通过编程Active Server Component的方式实现(如果有这样的Component的话)。而核心应用服务是Domino提供的内置基础设施的一部分,服务是一致的,可以由任何类型的应用访问到:而IIS与ASP应用中,由不同的访问模型、安全模型、复制机制、管理特性相结合才能提供与Domino相类似的服务功能。Domino通过点击对话、Notes的公式语言、脚本语句及Java对象接口等方式提供对核心服务高层次的访问能力。Domino灵活的应用开发环境可以充分地利用现有的基础服务功能。
安全性
Domino在应用中提供了难以匹敌的安全性特征。Domino构建了从最底层起的安全体系,它所涵盖的范围并不是简单的文件、目录或者某些组件接口。一且某个用户通过了服务器的授权——这种授权可以是基本的身份验证还是SSL——则Domino就能控制其会话,保护应用元素直到字段一级。Domino共分7个层次对系统的各个级别进行颗粒化的权限管理。用户可以根据应用的实际情况被指定为不同的角色,以确定哪些信息可以被访问,哪 些操作可以执行。而ASP应用的安全性则完全依赖于几种不同的安全模式:NT、IIS和用于数据存储的后端系统。由于微软的安全模式均围绕于所谓计算资源,对文件及目录访问可以被限制,但即没有页面之内的权限控制又没有应用中的角色控制。ASP的后端系统,如Exchange 依然缺乏了象Domino系统这样的安全能力,甚至在为某些协同工作的应用编写了相应的代码后,Exchange仍然不能像Domino那样提供诸如文档级直到字段级的存取权限控制。
快速的应用开发
Domino高层次的编程部件、对核心服务的容易访问、“偶尔编程”的编程方式,使开发者可以迅速完美地实现业务需求。开发者应尽量将时间用于处理业务问题,而不应过多地困扰于手工地去集成应用服务所需的系统架构。ASP应用是以“处处编程”为思路而开发的,所有的应用均由一段Script开始,而且通常需要一些定制的Active Server Component。虽然微软扩展了Design Time Controls的用途,可以生成某些常用功能(如数据库联接件等),但是定制任何元素——包括定制由Design Time Controls生成的代码——都需要开发者具有相当的Script括定制由Design Time Controls生成的代码——都需要开发者具有相当的Script经验和特定的Active Server Component的知识。相比之下, Domino则结合了几种高层次应用的部件(如子表单,表单,视图,代理等)和灵活的应用逻辑:这些逻辑可通过高层次的方法的,如点击对话框、简单命令等生成,也可通过简单的公式语言定义。当这些高层应用部件和应用逻辑工具的使用受限时,Script,Java,JavaBeans及ActiveX组件均可用以构建更加深层的应用。所有这些应用都可通过模板进行管理,再通过复制技术加以分发。Domino的应用可以快速地构建,然后完全可以由不用的开发人员为用户进行相应的修改并再次投入使用,而后者并不需要具备原先开发者相同的水平。可以进一步说明的是,对于一个跨国的组织来说,一个Domino的应用可以一次性完成开发,然后通过Domino Global Designer工具将其翻译成各国语言。广泛、灵活的企业集成Domino通过大量灵活的开发选项,提供了广泛针对企业数据的集成能力。利用DECS,企业的数据可被无缝地做为Domino应用的一部分,同时这些数据仍保存在其原始的存储空间中。这种深层的Domino与企业系统的集成并不需编程,而且对于Domino的开发人员来说也是透明的。此外,针对应用的某些具体需求,开发人员也完全有能力通过LotusScript或者Java进行编程性控制。IIS/ASP应用则需要通过COM对象,例如ADO、COM TI,或者是定制的Active Server Components去访问企业系统。这些对象是通过ASP引擎执行Script存访。Visval InterDev提供了可以生成基本的、访问关系数据库的Script的Design Time Controls,而访问其他系统则另外需定制组件并将其手工集成到应用中。
动态,层次化视图
工作流应用中的动态信息和Web站点都需要动态的、层次化的显示文档和页面的视图。Domino的视图是通过高层次的、可视化的工具产生的,并不需要额外的编程。一旦开发者定义了哪种文档属于该视图,Domino就会自动地为视图进行相应的管理,如索引更新及保持对视图内容的跟踪等。如果需要的话,可在视图中增加相应的逻辑和全文检索。而在ASP应用中,视图需通过Content Linking Object的编程,手工地维护一个URL文件才能实现,或者通过Active Server Component去查询后端系统。
定时代理
为处理没有用户触发的事件,定时代理是必须的。Domino的代理技术是非常灵活的,既可以处理用户触发事件,也可根据预先确定的时间间隔去处理已安排的事件。IIS/ASP由于不能提供此类机制,因而限制了他们的工作流的能力。为执行上述的应用逻辑,微软的Web应用开发者必顺脱离IIS/ASP环境,而在Exchange5.5的服务器上去创建和维护相应的Script。
内容结构和集成对象存储
ASP应用是基于页面的,它由大量的位于文件系统中的文件所构成。IIS没有提供除文件系统外其他的Web应用存储机制。如果需要将用户的信息存储在数据库中,则只能在IIS/ASP的系统环境外去生成这样的数据库,同时也必须通过Script和Active Server Components才能够去访问。Domino应用通过有结构的对象存储管理组织其中的内容与索引属性。针对Web应用典型的非结构化的信息特点,Domino的内置集成的对象存储是最优的存储与管理容器。另一方面,它还能够无缝地集成从企业系统(如关系型数据库系统)中的数据。
设计元素的复制、存储和管理
ASP的应用是一组存储在文件系统目录中的相关文件。这些文件包含了HTML内ASP的应用是一组存储在文件系统目录中的相关文件。这些文件包含了HTML内容、布局、客户端的Script(如JavaScript)与服务器端Script等。根本没有真正的办法体现所谓应用的管理。而应用在多个服务器的分发也是通过文件系统的拷贝操作实现的,相比之下,Domino将所有的应用设计元素存储在一个单一的、结构化的存储体中。Domino基于表单的设计方法将应用的布局与其信息的应用逻辑分离开来,并将其存储在自定义的文档中。应用的设计则通过包括了各种设计元素(如表单、视图,代理等)的模板进行管理。所有的应用都可通过Domino的复制技术进行分发,而应用的更新则借助于一个定时运行的设计更新进程自动地实现。模板为多个应用提供了独有的维护能力:一个单一的模板可同时为多个应用提供公用设计框架,而这些应用可以是在整个公司的范围内使用的。
平台无关性
IIS只能运行于Windows NT操作系统之上。Domino以及Domino的应用可运行于多种平台之上,从而相应使客户的业务需求、伸缩性要求不因供应商的原因而被确定在某一个单一的平台上。Domino提供了跨平台的特性,但同时也支持及维持与微软的相应技术,如NT、ActiveX、ODBC、MAPT、OLE Automation等的集成。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jaminwm/article/details/566665
个人分类: Lotus
上一篇 Rational ClearCase 的不爽
下一篇初为项目经理
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭