启动一个Rich Web Client的项目:Qomo OpenProject

一、Qomo OpenProject项目的由来

Qomo OpenProject是一个在Rich Web Client方向上发展的开源项目。它的前身是我在前公司的一个内部项目WEUI(Web Enterprise User Interface)。

用Qomo作为项目名,是因为我不久前刚才珠峰回来。Qomolangma因此成为我能够想到的最美丽的词汇之一。如同珠峰带给我的印象一样,Qomolangma是完美、神秘、遥远和不可企及的代名词。直译藏语的Qomolangma,就是“女神朗玛”的意思。当然,它现在通常是指珠峰。

WEUI这个项目是由三个开发人员完成的,这里我需要先介绍一下他们:

  • 周劲羽(JingYu)

中国最优秀的Delphi开源项目CnWizard&CnPack的发起人和领导者。在2004年4月到8月间,我们能有幸同事四个月。在此期间,我们一起完成了WEUI的内核设计工作。他独立完成了WEUI项目中的LocalDB库这个部分。

  • 周鹏飞(leon)

leon是非常优秀的技术人员和项目经理,目前他是微软的软件工程师。在2004年4月到2005年6月间,我们一起共事。此前,他在思维加速(justep)公司担任内核设计和开发的工作。leon也是WEUI内核设计的参与者之一。他还为WEUI完成一个专用的自动文档生成系统。在WEUI项目中有一个基于VML的Graphics库是由他独立完成的。

  • 周爱民(aimingoo)

我。目前在盛大网络任软件架构师。在2004年4月到2005年8月期间,我在前公司组织并完成了WEUI这个项目,并在WEUI的基础上实现了一个Rich Web Client的DCN(Data Comm-unications Network Managment)系统。

WEUI这个项目是一个企业级的产品/技术。Qomo OpenProject主要是将其中可以公开的部分技术和技巧剥离出来,试图在此基础上形成一个公共的、可重用的 Rich Web Client开发框架和界面组件库。

二、Qomo OpenProject的组成

因此Qomo OpenProject将会由两个部分构成:

  • QomoJS : 在JavaScript的基础上进行扩展,使其支持完整的OOP特性,部分支持一些其它高级语言的语法特性。它本身又由两个部分构成:
    • QomoJS OOP Core : OOP特性的实现内核
    • QomoJS Framework : 语言特性的框架层和基础类库
  • QomoUI : 一套界面组件库。

三、Qomo OpenProject的运行环境

WEUI本身在以企业用户为对象的,在B/S架构下进行开发的一套B端实现技术。因为他有特定的用户对象,因此WEUI从一开始起就没有充分考虑浏览器兼容问题。——你应该知道,企业用户是不大可能让员工在工作机上尝试Firefox/Mozilla或者Opera的。

但Qomo与此不同。Qomo中讨论浏览器兼容问题,但并不要求在Qomo OpenProject中必须去实现它。这个说法的含义是,Qomo OpenProject中将尽可能使代码被运行在不同的浏览器上,但在绝大多数情况下,Qomo将优先考虑对Internet Explorer的实现,而不是兼容。

作为一项约定:Qomo OpenProject公开的代码必须进行(主流)浏览器的兼容性测试,并将测试的结果标注在一个表格中,放在项目的Document目录中。因此如果你打算支持Qomo,你可以选择: - 去完善它的兼容性,或者 - 仅仅是在指定浏览器上去进一步实现它。

Qomo OpenProject的推荐运行环境是:

  • Windows 98以上的操作系统
  • Internet Explorer 5.5以上的浏览器

Qomo OpenProject的每一个发布版本将保证测试并运行的浏览器是:

   名称                                   版本号
----------------------------------------------------------------
   - Internet Explorer 5.5 正式发行版本     5.50.4134.0600
   - Internet Explorer 5.5 sp1            5.50.4522.1800
   - Internet Explorer 5.5 sp2            5.51.4807.2300
   - Internet Explorer 6.0                6.0.3790.0
   - Internet Explorer 6.0 sp1            6.0.3790.1830`
   - Internet Explorer 5.01 sp2           5.0.3314.2100 (仅提供兼容性测试和报告)

四、Qomo OpenProject的特点

Qomo不排斥任何与指定浏览器直接相关的技术的使用,也不排斥在Qomo OpenProject约定运行环境中进行的任何技术、技巧的尝试。

Qomo提供一个完整的OOP Core,使得开发人员可以在此基础上进行大型的类/类库封装。Qomo OpenProjectt也提供完整的Visual Compoent构建方案和底层类库,并包含一些示例代码。

Qomo试图对浏览器兼容性进行探索和尝试。公开有关兼容性的资料和技术实现,但并不保证在未约定的浏览器上的运行。

Qomo是企业级而非门户级的架构。它能适应企业级B/S架构中的B端开发的需求,但不适宜作为“公开的”、“门户级的”网站的B端架构。——除非您不考虑IE之外的浏览器用户的体验。

Qomo是以技术探索为主要方向的。可能他不会按照你所期望的、商业化的发展速度进行升级和更新。但Qomo项目组将保证每一项应用在Qomo OpenProject中的技术的高度公开与透明,并保证应用或者实现这种技术的合理性。

此外,由于Qomo实现了完整的OOP特性,所以他具备对一些新的架构技术的描述能力。

因此我将会推动以“以Qomo OpenProject为基础的B端架构设计技术”为主题的发展方向。

五、参与Qomo OpenProject项目

欢迎你积极参与Qomo OpenProject项目。

如果你希望使用Qomo OpenProject的成果,那么你可以随时从网站上得到他的新版本,并无须任何授权地在商业/非商业的环境中使用它。

如果你希望为Qomo OpenProject贡献代码或者你的新思,那么你可以通过邮件与我联系:aiming@gmail.com

如果你想进行有关该项目的讨论,那么可以在我的blog上留言。如果你的话题可以被展开讨论,我会为你开一个主题。

(* 注:我可能会为Qomo OpenProject项目建立一个开源项目或者维护一个独立的网站。但目前,我还没有时间来做这件事。*)