`
从此醉
  • 浏览: 1049774 次
  • 性别: Icon_minigender_1
  • 来自: US
社区版块
存档分类
最新评论

1. 客户端与浏览器

 
阅读更多

很早以前就想写一些关于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是面向私有平台私有技术的,而浏览器则是面向公开技术。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics