很早以前就想写一些关于Notes的技术思考。一方面觉得感兴趣的人不会很多,这些理解和思考只有对Notes背后的技术好奇的人才会感兴趣。即使是开发人员,不知道或者没有考虑过这些也可以设计出良好的程序。另一方面是对自己的这些思考的水平要求太高,总想着在掌握了主题的所有方面和细节之后才开始写。如果坚持这个最高的要求,那我就什么都写不出来了。现在就当是自娱自乐,也算是对自己之前思考的一些总结。
Notes的开发技术最近发展得很快,XPage方兴未艾,不久的将来人们甚至不会编写传统的Notes程序了。所以对这些即将作古的技术,写下这些东西也算是一种纪念。
用Notes开发的C/S通常被用来与B/S程序相对。但是从技术本质上来说,Notes客户端应用程序更接近于时间上晚于它产生的Web程序,而不是传统的胖客户端程序。应用程序的各个要素,包括界面、业务代码和数据都集中保存在服务器上。Notes用户从登录起,就不断和服务器做交互。Notes向服务器请求设计元素,比如表单、视图;请求数据,比如文档、视图索引。服务器从数据库中找到所请求的资源,返回给客户端。Notes解析设计元素,产生显示,比如表单的固定内容和视图的列;绑定数据,显示动态内容,比如表单中的域和视图中的文档;执行设计元素中的代码。Notes就像一个Web浏览器,应用程序并没有写在其中,而是由它装载和解释。
试想一个传统的用VB、Dephi或者C++编写的客户端程序。除了数据在服务器端,大部分的功能都编码在客户端中。即使在大型的程序中,有良好的分层——界面层、逻辑层和数据层,全部界面和部分逻辑也是在客户端写定。客户端运行时,和服务器交互的只有数据。应用程序稍有改动,就有可能要升级或者重新安装客户端。
Web程序的显示层则完全保存在服务器端,浏览器每次显示的都是最新的版本。传统的Web程序中,网页只承担显示的作用,业务逻辑都在服务器端运行。
和Web程序一样,Notes也不用担心界面的更新。不过Notes更加“激进”,代码也随同设计元素被传递到客户端,并在那执行。这一点有点像当前Web开发中的Ajax技术。从这个意义上来说,Domino服务器只起到数据库和相当于Http服务器的作用。所以,在Notes程序中,要取得服务器的当前时间,还需要一点技巧。
Notes与浏览器的一个巨大的不同在于,Notes是面向私有平台私有技术的,而浏览器则是面向公开技术。
分享到:
相关推荐
浏览器打开CS客户端部署 1、 准备工作 先安装CS程序,记录下可执行程序exe的路径 2、 自定义打开工具的协议(编写注册表register.reg,不能点击直接打开,用文本编辑器打开)
模拟windows客户端内嵌浏览器页面
C#winfrom客户端浏览器,本人亲测试,可以使用,方便,可以查找历史记录
客户端浏览器判断客户端浏览器判断客户端浏览器判断客户端浏览器判断客户端浏览器判断客户端浏览器判断客户端浏览器判断
WebTorrent是一个用于node.js和浏览器的流BT客户端
node使用socket.io通过浏览器通信,类似于聊天工具,可以通过调用接口主动从服务器发送消息给到客户端浏览器,也可以从客户端浏览器发送消息给服务器
resilient.js, 面向 node.js 和浏览器的容错和反应性HTTP客户端 resilient.js A reactive,为收费systems服务器 fallback designed dynamic browsers discovery提供英镑的容错功能( 比如::: 使用领事),
c# Wiform客户端调用谷歌浏览器、Internet Explorer浏览器、打开系统默认浏览器。
emailjs-smtp-client, 用于 node.js 和浏览器运行时的SMTP客户端 电子邮件客户端 SMTP客户端允许你将数据连接到浏览器中的SMTP服务器并将数据流到该服务器。 API安装:npm install emailjs-smtp-client使用以下方法...
axios:基于Promise的HTTP客户端,用于浏览器和node.js
openchain-js, 用于 node.js 和浏览器的JavaScript Openchain客户端库 Openchain是一个开放源码的分布式分类帐技术。 它适合于以可靠。安全和可以伸缩的方式发布和管理数字资产的组织。 访问 openchain.org 了解更多...
服务器端将数据推送到客户端(浏览器)
JSP获取客户端的浏览器和操作系统信息.pdf
1. 打开各种应用:用户可以通过点击按钮来启动本地的.exe程序客户端,从而实现打开各种应用程序的功能。无论是游戏、办公软件还是其他类型的应用程序,都可以通过该功能进行快速启动。 2. 提高用户体验:通过将常用...
RuoshuiNews Android客户端新闻浏览器
E017-渗透测试常用工具-使用Beef对客户端浏览器进行劫持
UserAgentUtils-1.20.jar 通过request请求的User-Agent获取客户端的浏览器类型、操作系统类型、客户端ip地址等的jar包
VRML 客户端浏览器插件 不熟悉的朋友可在这里直接下载
.net-winform客户端调用浏览器打开网页源码.多种用途。