Silverlight企业应用实战:第一篇,起源
在系统刚成型那会儿,就想写一些分享介绍一下用Silverlight实现企业应用的心得,但是一直没能腾出时间来。这次是在负责社区的班倩超同学的鼓励下,才下定决心一定要把我们所知道的,所走过的弯路,所得到的经验系统的分享出来。如果SE系列文章可以对你的企业应用项目有所帮助,那就去感谢一下班倩超同学吧。我的新浪微博:@happycharles,欢迎给我提问题,随时探讨。
这是OOB时的系统登录界面。目前已经上线6个月了,从SE 2.0更新到了现在的SE 3.1。有兴趣的同学可以访问 http://zion.earan.net ,测试用的账号是:demo\test1 至 demo\test50,密码是:aaaaaa(6个a)。由于通讯方式选择了Socket,所以如果有些公司的内网限制了端口号。。。那就实在不好意思了。可能会造成登录失败。。时机成熟的时候,我们的通讯底层会迁移到WCF上来,至于为什么一开始不选用WCF,以后会有讨论的!
整个项目的技术预研大概用了1个月左右的时间,是在Silverlight 3 Beta发布以后。当时主要尝试的是现在所使用的多窗体的UI框架。基本上来说预研是成功的,即对Silverlight这个技术有了感性的认识,又了解了Silverlight能做什么,不能做什么(这点是非常重要的,了解一个技术能做什么和不能做什么,是预研最主要的目标)。
随着Silverlight 3.0的正式发布,由于SE 1.0在技术上遇到一些难以解决的问题:多浏览器CSS兼容;多浏览器脚本兼容;客户端环境差异太大,造成系统难以正常运行;我们用网页实现的即时通讯,在客户端(非常非常烂的机器,但确实是客户的机器)上运行非常之慢。。等等。我们本也可以像其他开发公司不得不做出一项重大的调整:全面迁移技术平台到Silverlight上来。
当时做出这个决定需要巨大的勇气。我们是创业公司,一招不慎,全盘皆输。Silverlight就是灵丹妙药?Silverlight会带来什么新的问题?这一切都不得而知。我们只能摸着石头过河。幸运的是,我们最终成功的过了河~
2009年5月,SE 2.0正式启动。系统框架开发大概用了两个月的时间,我们自己开发了UI框架(多窗口)和通讯框架(基于Socket)。当时,Silverlight并没有成熟的UI框架和通讯框架,Page Navigation Framerwork刚出,RIAServices刚出,WCF的支持非常有限。我们其实没的选择,只能自己动手,丰衣足食。事实证明,这套框架是成功的,它承载了现在SE的全部应用。而且无论从UI还是通讯,都无法被现有的任何框架所替代(现在的时间点是2010年5月20日),我们的框架的实现已经走到了Silverlight发展的前面。(很遗憾,目前这两个框架都不能开源。这基本上是我们系统的核心。)
由于开发的内容没有范例,一切都是出于动荡和尝试中。那个时候的痛苦是最大的。Silverlight是未知的,如何实现应用?是否还要仿照传统的网页的UI和UX?怎么做和做什么是当初最为困扰的问题。2009年8、9月的时候,UI做了一次大幅度的调整。既然我们定位于办公软件,那我们就已办公软件的典范——Office作为蓝本吧!当时的想法很简单:做用户最熟悉的界面,降低用户的学习成本。于是我们自己实现了全套的Ribbons(TabControl、CommandButton、DropDownButton、SplitButton、RadioButton、ComboBox、ContextMenu等等)。经历了不断地摸索摔跤,我们终于将Ribbons添加到UI当中。现在,我们可以自豪的说,我们的Ribbons和Office的相似度非常高。很多地方我们的精度都可以达到1像素以内!这是我们反复用PhotoShop截图、测量、对比的结果!(感谢UI团队中每一个人,截图、放大、取色、对比,几乎成为了我们最熟练的工作。)
Ribbons实现了,功能操作没问题了,主体UI还没有着落。最后把心一横,既然Ribbons都做出来了,那就索性把Outlook的邮件界面也搬进来吧。打开PhotoShop,继续:截图、放大、取色、对比。。。一个控件不知道重复写了多少次,一个颜色不知道对比了多少回。终于搞定了Outlook的界面,甚至很多隐性的功能,也都实现并集成进来。
最终,在2009年10月底,我们推出了SE 2.0版本。这是一个包含了:即时通讯、企业信息(邮件)、审批申请、YCYA、资源配合、周计划、公司战略等多个模块的完整的企业应用系统。
2009年11月,我们参加了TechNet大会,在大会上我们联系到了微软的诸位大佬们。我们怀着无比激动地心情给每一个人讲解我们的SE系统,那就好像在介绍自己的“孩子”一样,心中充满了自豪!郭晓颖郭老师说,SE系统是她在国内见过的最好的应用系统;肖江肖博士说,SE系统是国内最早上线的企业应用(之前有人寿的养老保险金系统,但是还没有正式上线),也是最好的;黄继佳经理更是表达了对我们巨大的肯定,将以然胜甲公司加入到Metro项目中,提供给我们最好的技术支持。
事隔半年,每每想来,仍旧心存感激。正因为有这样多的人的帮助,才使得SE系统可以取得今天的成就。也因此,我愿意提起笔(键盘。。)将我们在SE系统的整个过程中遇到的和解决的技术问题分享给大家,也欢迎大家提问和交流。
下一篇,我将梳理SE中有价值的技术点,也就作为SE系列文章的提纲。如果你看过SE系统,希望了解什么,也可以留言给我,我会尽量将我的经验分享给大家。
我们是以然胜甲!