Victor带你重新认识XPages

 
XPages是Lotus Domino8.5之后加入的全新设计元素,博主曾作为Domino 8.5 NLV Team的一员,有幸在08年了解并开始接触了XPages,并一直关注于相关技术的发展,作为国内最早接触XPages的人员之一,希望通过这篇博文给大家带来完全不一样的XPages,也许能大大改变你对XPages的认识。

例图,使用XPages重现Notes的经典工作台设计:
Victor带你重新认识XPages

   
博主不是一个文科出身的人,所以思路不够清晰,作为一个理科生,并从事着相当具有逻辑的工作,博主决定使用列表的方式带用自己的视角向大家介绍真正的XPages,本文不仅将涉及到Domino及XPages,更有:XPages Ext,JSF,RESTful,dojo,jQuery,XAgent...
1、XPages从IBM最开始的初衷来看,实际上是希望设计成为一种所见即所得的开发方式,类似于大家熟悉的DreamWeaver,因此一开始的时候博主实际上也只是把它当成一种快速开发工具来看,甚至国内很多厂商内部的开发人员都认为XPages的主要作用是一个漂亮的,可以快速成型的Skin,这些曾经是事实,但仅停留在2010年前。
例图:即便作为一款漂亮的Skin,XPages还是让我们能够快速地开发一个非常漂亮的应用
Victor带你重新认识XPages


2、作为一个想研究XPages的Lotuser,你必须首先清楚一件事情,XPages实际上基于JSF1.1框架的,你可以理解为IBM在JSF框架上定制了一个Domino包,这是一切我后续要向你展示的伟大的技术的一切基石,不管出于何种原因,尽管不是更加完美的JSF2.0,但JSF1.1的框架使得我们的XPages已经几乎无所不能!

例图:你可曾想到过一个Domino应用能做成这样?
Victor带你重新认识XPages

3、XPages从一个Skin产生质变的第一步是OpenNTF上的XPages Ext项目的产生,该项目集结了这个星球上最好的Lotuser,并完全开源!如果你的Domino Server和Lotus Designer没有打上XPages Ext的扩展,或者你根本就不知道这个项目,那非常抱歉,不管你从事Domino开发多久了,但在XPages技术上,你真的连门板都还没有摸到,不管从学习的角度,还是实际应用的角度,XPages Ext都是必选项!甚至可以这样说,学习XPages的话,你可以直接从学习XPages Ext开始。
OpenNTF传送门: http://www.openntf.org,不要光看XPages Ext,不管是首页上,还是Project里都有很多XPages控件,甚至是产品级别的Application,弄一个环境,下载下来看看效果,能让你眼前为之大亮。
XPages Ext传送门: http://extlib.openntf.org/,目前支持的最新版本是需要Domino为8.5.3,不过也有8.5.2的版本,最大的区别在于使用的主题有升级,另外就是8.5.3+Ext会直接支持Mobile开发,这个后面再讲。
OpenNTF是一个全英文的网站,并且在以后的学习中,你会逐渐发现XPages的所有有价值经验都需要你英文读能力过关,因为这个技术在国内没有太多有价值的资源...但国外完全是另外一个景象,正是因为这个原因,博主希望能在国内推动XPages方面出一份力。
4、XPages和XPages Ext的关系可以举个不恰当的例子:Javascript和dojo。
5、学习中最好的一本书叫做:Mastering XPages,还是英文的,网上有PDF可以下载,非常帮的一本书,实在找不到的,可以找博主要;《玩转XPages》是一本市面上可以买到的中文书,但不是很推荐,与Mastering XPages比起来,深度差很远,实际上还有一本专门讲XPages Ext的书,书名就叫XPages Extension Library,博主还没有找到PDF版,Amonze上卖500多RMB,哪位有钱可以消费完后给博主共享一下。
6、控件即Custom Control是一个非常非常强大的设计!一定要用好它,尽管到目前为止博主认为自己还没有完全吃透CC的全部核心价值!初次接触你会以为他是一个SubXPages,就像SubForm一样,但Custom Control中有两个非常其强大的设计(它们都继承自JSF框架):自定义控件属性、可编辑区域,有了他们Custom Control摇身成为一个高度重复使用,且及其灵活的核心组件,博主自己开发的工作流引擎中,直接使用了Custom Control作为可配置流程节点使用,无独有偶的是OpenNTF上有一个WorkFlow也是使用的相同概念,只是博主认为自己的一些设计比之他们更灵活,呵呵...自定义属性等于将一个CC包裹成了一个具有很多属性的Class(没错,我说的就是Java里的Class),而这些属性是可以在进入XPages后在进行实例化为Object的!这些自定义属性都可以根据当前业务需要进行计算赋值,这是什么?这完全是面向对象的概念,但光有自定义属性还没有结束,可编辑区域(Facet)是另外一个非常之让人喜欢的设计,它让你可以为CC预留下位置,根据不同的业务需要再加载或扩充入更多的设计元素,其中就包括Custom Control...这意味着你可以在核心Class的基础上再进行一种扩展,而这种扩展是可以根据实际业务需要随时进行的。
7、XPages还带来了一个全新的开发语言:Javascript ServerSide(JSS),请了解它并使用它,你会发现它实在太好用了,因为它可以直接执行@Formula公式,也封装了例如NotesDatabase这样的Class,同时结合Java和Managed Bean,你能办到很多原先你根本不可能完成的任务,比如:使用OpenOffice将用户上传的Office文档转换为PDF,然后用SWFTools再将PDF转换为swf,hoho,对于一个Javaer而言这并不是难事,但之前对于Lotuser而言这真的很有难度,但是随着JSS这种既可以写公式,又可以写LS,还可以写Java的神奇语言的出现,博主很欣慰地告诉大家,刚才我说的那个功能,我在只使用JSS的情况下整合普配的jar包后码非常顺利地实现了,没有写一行LS代码,也没有写Java代理,你会发现JSS以及JSF让你能做到所有Javaer们能做到的事情,再比如和SAP进行数据交互...有人会说很早前我使用Java代理(Agent)就实现了和第三方系统的数据打通了,但博主没有使用那蹩脚的Java代理,而是使用了一个可能国内没几个人知道的全新设计概念XAgent!

例图:在XPages上实现类百度文库功能,这个并不难,难在通过XAgent结合jar包进行文档的转换。
Victor带你重新认识XPages


8、如果说XPages Ext让XPages上升了一个档次,那接下来要提到的这个完全抽象的技术就是把XPages提高到了前所未有的高度,它就是XAgent!XAgent并不是一个什么全新的设计元素,而是来自于Lotus界的神级人物wissle的一篇博客中的设计思路,就像Ajax对于Javascript一样,是一个高人对于现有技术的使用方式的创造性构思,甚至连IBM自己可能都没想到XPages能这么用;用一句话概括XAgent就是:新建一个XPages元素,然后使用JSS(你可以加入Java和Managed Bean)书写代码,完成要你要的操作,或发布为一个REST(最佳选择),然后在你的应用中调用这个XPages页面,放心!它是接受传参,并能以REST的方式返回值的,因为调用这个XPages非常像传统模式中调用Agent代理,因此wissle取名为XAgent,我本人觉得这个名字取得非常恰当。XAgent意味着两件事情:一是你可以引入jar包,然后在XAgent中直接使用jar包内的代码,Java能干的事,你现在全能干了,Javasciprt能干的事你也全能干了,当然Domino本身能干的事,还是一点不受影响;二是你可以使得你的应用变成一个有非常出色的Web Service接口的应用,而且它还是REST的,不是RPC的!

例图:一个基于REST的日历工具



9、jQuery和dojo的完美引入,首先XPages及XPages Ext的展示层面默认都是使用的dojo框架,效果本身非常漂亮了,反正不是专业公司,很难再超越这个高度了;但同时这一点也不会阻碍你使用jQuery,而且现在OpenNTF上已经有多个基于jQuery Plugins的控件和应用,一个jQuery Extension Library也正在完善中,因此你现在根本不用太多考虑过多的展示层面是否美观的问题,只要你打上了XPages Ext,实际上你的应用从界面美观性来说,就已经达到了产品级别的要求。而更加令人感到振奋的是因为jQuery和dojo的完美引入,XPages是直接支持Moblie开发的,dojo和jQuery各有自己的支持扩展,其中dojo依然是相对更官方一些的支持,而jQuery也非常不错,Mobile的支持在8.5.3上更佳,但在8.5.2上也能做到支持。
例图,Mobile支持展示:
Victor带你重新认识XPages

10、XPages上可以实现数据的统计和分析了!Domino上的数据统计分析功能一直被人诟病,但如果有这样一个工具,它能把Domino内的Doc转换成一行数据,然后根据这些数据进行筛选,分类和统计,那简直是太棒了!那有这样子的功能吗?非常感谢jQuery和dojo这样的JS框架的控件的出现,在XPages.info上就有一个完美的应用xGrid,它使用了jQuery来对数据进行筛选,分类和统计,并通过XPages Ext中REST控件,或者由你手工依靠XPages来输出JSON数据实现在Domino上的数据统计分析!而另外一个应用xCharting则想你展示了如何使用dojo的Chart控件来对数据进行图形话的展示!

例图,使用xCharting对数据进行图形化分析:
Victor带你重新认识XPages

最后不得不说博主才疏学浅,只能尽自己最大的能力向大家展示一个完全不一样,并更加全面和强大的“XPages.真”,最后归纳总结一下:XPages是一个优秀的设计框架,它提供了便捷的所见即所开发环境,强大的编程语言,漂亮的Web 2.0设计,大量的可重用控件,牛叉的XAgent设计理念,对于Mobile的全面支持,和完全可以当成面向对象模型使用的自定义控件,XPages几乎无所不能。
随后的博客中,博主会逐渐通过一些实例,并提供一些Demo来细化今天我所提到的所有内容,除了Domion和XPages技术,你还可以在这里看到对于RESTful,dojo,jQuery,html5等流行技术讨论(特别是如何在Domino中使用),以及如何和SAP进行整合的具体方法(JCO),留意博客的更新或者关注我的weibo: http://weibo.com/victorshe,希望国内的XPages技术能够有更多地人来推动!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值