案例分析:Sil“.NET研究”verlight在中国人寿的应用

  笔者自2003年首次听到Macromedia公司提起RIA(富互联网应用)一词到现在整整7年了。一度被认为是互联网应用趋势的RIA经历了7年之痒,但仍然没有在互联网上得到大规模普及,特别是企业应用就更加少见。做个不恰当的比喻,传统基于Html的应用就像互联网应用中的绿叶一样,而RIA技术由于酷炫的用户体验效果就像是美丽的花朵。现在开心网和腾讯QQ等商业应用中已经运用了RIA技术在其社交网站中得到应用,但这毕竟还是少数,大多数互联网应用特别是企业级应用仍然选择传统高稳定性与高响应能力的Html应用路线,那未来的互联网应用,特别是企业应用能够迎来RIA的春天,绽放出漫山遍野的花朵呢?

  还记得2000年刚接触Flash开发,发现ActionScript可以通过面向对象的方式实现MIS系统应用,但Macromedia公司对Flash的定位仍然是面向设计人员,在面向开发方面的进展不得不用缓慢来形容,直到2004年在被Adobe公司收购的头一年才真正意义上推出了面向开发者的Flex 1.0版本。笔者虽然对当时FLEX Store应用所振奋,但很快发现其第一个版本在大数据量下低迷的表现。

  而Flash+AS和FLEX这两条路线,使得开发者很难去抉择。当我还在一边看着LUAR编写的《Flash MX 2004 ActionScript 2.0与RIA应用程序开发》,LUAR本人却在博客上发表了《Flash未来未有来》的文章,作为中国Flash应用开发的领军人物,主动得出"Flash没有帮助开发者开发RIA"的结论。当然现在的Flash经过10年的苦心经营,应用已经非常广泛,特别是在一些Web页面的应用上面。

  RIA技术选型

  2008年,中国人寿养老保险公司提出开发面向企业客户的养老金精算咨询系统(PACS),但由于养老金咨询中的方案数据采集与精算过程非常复杂,使用传统B/S架构很难实现。由于多年来的RIA开发经历,作为项目经理的我提出在此项目中尝试使用RIA技术进行开发,以到达客户友好性与易用性的目的。微软发布一年的Silverlight引起了项目组的注意,由于企业B/S开发的两大阵营,一个是Ja上海徐汇企业网站设计与制作va,另一个是.NET平台。

  针对主流RIA技术笔者进行了对比,当时Java平台的JavaFX仍然处于beta阶段,而在此前笔者已经在一些项目中运用了ExtJS等通过JS实现的类RIA应用,但实际开发效率较低,而且脚本出错概率较高,JS调试相对困难,企业架构要求的稳定性得不到很好的保障。因此,我们将目光集中在了.NET框架下的Silverlight上,经过与微软中国的多上海企业网站制作次沟通交流,并进行了必要的性能测试。以下是通过实际测试当中的性能对比(对比基准为Flash):

  测试一:后台运算性能测试,使用相同的素数查找算法

上海闵行企业网站制作o;" border="1" cellspacing="0" cellpadding="0">

测试项目

Silverlight上海徐汇企业网站制作strong>

Flash

查找100万以内

单线程:0 .423 秒

双线程: 0.267 秒

1.335秒

查找1000万以内

单线程 9.833秒

双线程: 6.144 秒

35.62秒

  在线测试及源代码下载地址:http://www.itwriting.com/primetest

  测试二:UI性能测试,使用小球碰撞模拟


测试项目


Silverlight2


Silverlight 3(cached)


Flash


Flash(cached)


16个小球


238FPS

上海闵行企业网站设计与制作

116FPS

64FPS

64FPS

32个小球

133FPS

112FPS

54FPS

64FPS

64个小球

62FPS

107FPS

41FPS

64FPS

128个小球

35FPS

99FPS

18FPS

57FPS

  在线测试及源代码下载地址:http://bubblemark.com

  注:在最新公布的Silverlight 4.0中,官方指出UI线程性能提升了5.5倍,Worker线程处理性能提高870倍。

  这里要特别说明一个问题,Silverlight与Flash本身的运行时都在客户端,以前我也在Silverlight发布会中提出Silverlight后台语言支持能力更强,但被很多人误认为是服务器端语言,其实Silverlight与Flash一样可以通过多种网络协议连接不同技术架构的服务端程序,但就客户端的运行时来说,Silverlight是基于.NET的JIT Compiler的,而且有CLR基础类库支持,所以与Flash前端运行时有很大差别。

  Silverlight 实现RIA端到端的优势

  谈到微软专门为Silverlight包装的Core CLR运行时环境,就不得不说到整个.NET框架的优势,很多人将.NET CLR与 JRE做比较,两者都具有相当强大的基础类库支持,可以说为企业开发提供了基础,而Silverlight享受到了这样的基础类库,但为了减小运行时文件大小,提高用户下载安装体验,微软去除了无用的服务器端基类,保留了主要的客户端类库,下面我将结合Core CLR来说明Silverlight在企业级开发中的优劣势。

  下表是笔者总结的在企业级应用开发方面Silverlight的优势:

  其中最为重要的一点就是前端Core CLR的支持,大家可以参见MSDN来获得Silverlight 4基础类库的全部资料

  本文不会对CoreCLR做过多介绍,结合客户端架构将Silverlight主要基础类库总结如下:


层次


基类库支持程度


XAML表现层


丰富的原生控件(System.Windows.Controls 超过100种控件类)与自定义控件库( System.Windows.Controls. UserControl),支持全局样式修改与资源管理(System.Resources),支持动画(System.Windows.Media.Animation),效果(System.Windows.Media.Effects)


客户端控制逻辑层


.Net Framework多种基本类库支持,包括多线程类库(System.Threading),安全类库(System.Security),反射类库(System.Reflection),Linq类库(System.Linq),数据流操作类库(System.IO),XML操作类库


通讯层


包括ADO.Net交互类库(System.Data.Services),WCF交互类库(System.ServiceModel),网络类库(System.Net )等等

  而使我们选择Silverlight的另外一点是,结合.NET服务器端技术,可以在一个技术体系下构建端到端的RIA应用,在开发上由于语言的一致性可以共享类库,而同样的IDE环境能够提供方便的前后端一体化调试功能等功能。

  通过Silverlight如何加强数据展现能力

  要构建企业级应用,就必须要使得数据的展现和编辑更加方便直观,传统基于HTML标签语言的web应用,可以通过input和Table等来实现数据编辑与展现,但无法超出其能力之外,很多第三方的Web应用控件都是利用JS脚本来实现排序,拖拽等效果,但脚本语言毕竟是低效的,并且具有许多外部原因(如浏览器环境等)使得其稳定性不高,而Silverlight原生的控件在数据展现与编辑上面具有良好的表现。

  以PACS系统中的数据列表为例,使用Silverlight的DataGrid控件,原生支持列排序,列拖拽,也可以通过代码实现过滤,分页。由于我们在一些应用场景中需要对每一条记录都有对应的处理流程和功能按钮,因此使用DataGrid控件中定义行模板(DataGrid.RowDetailsTemplate)就可以实现自定义行样式的效果。而在< DataTemplate />中你可以加入任何XAML元素,使得Silverlight应用可以简单快速的实现以前难于实现的效果。

  当然除了数据列表的展现方式,Silverlight提供更多的图形化展现方式,比如原生的各种统计图表,以下是Silverlight的Chart控件应用,在拖动各种参数时,图表将以动画形式变换,而不需要写任何代码。

  Silverlight Do It in Naturally

  除数据展示以外,在传统WEB应用中,可能会遇到更多的数据录入上的限制,比如一种分段设置参数的应用场景,当我们要输入任意年龄段的对应参数时,传统Web应用没有好的解决方案,可能只会通过下面的方式来进行数据录入:

  但如果使用Silverlight自定义控件就可以实现如下更加人性化的设计:

  通过点击就可以简单实现在分段的中间插入分段,拖拽就能删除分段,这样的设计符合"do it naturally"用户体验设计原则。而且Silverlight"一切皆为用户控件"的思路,使得开发者可以很简单的开发一个用户控件,而且这些用户控件可以被整个项目充分复用。

  "体验先行"的开发流程

  Silverlight基于"体验先行"的设计,颠覆了传统业务需求模式,改变传统开发流程,是开发团队可以选择以界面而非功能为起点的开发模式。在PACS项目需求分析中,我们没有采用需求规格说明书面向功能的阐述方法,因为业务与IT的认识隔阂往往会导致项目失败。在Silverlight设计工具Blend中包含了原型开发工具SketchFlow,通过简单的原型控件拖拽就可以快速开发系统原型,使得业务部门迅速理解界面与逻辑关系,避免了业务与IT在最终交付物认识上的差异。以下是PACS在需求分析过程中的原型与最终系统截图对比:

  Silverlight在PACS开发中带来了开发过程的革命,经过最终评估,采用快速原型的方式大大减少了需求变更,确保了业务满意度。

  展望未来

  展望Silverlight技术未来发展,在刚刚结束MIX10大会上,微软已经将Silverlight定位为未来Windows Mobile的主要开发技术,加之以前在跨浏览器,跨平台的策略,实际上已经实现"手机、PC、电视"三屏合一,可以很清晰地看到微软有使用Silverlight实现客户端应用大统一,从而全面收复Web应用失地的趋势。因此,未来微软肯定还会不断加大此项技术的认知度,而Adobe公司不会放弃通过占有率全面反击的机会。这也是我们作为企业开发者希望看到的竞争态势,那么RIA在经历7年之痒后,春天是否真的要来了,我们拭目以待!

时间: 2024-09-20 22:49:55

案例分析:Sil“.NET研究”verlight在中国人寿的应用的相关文章

SharePoint 2010 整合Sil“.NET研究”verlight 4应用 - 任务管理

SharePoint 2010可以与Silverlight实现紧密集成.不管是在浏览器中运行的Silverlight程序还是单独的一个Silverlight程序,都能与SharePoint 2010实现很好的整合.本文中我们将实现一个Silverlight和SharePoint高度整合的例子,通过SharePoint 2010客户端对象模型访问SharePoint任务列表.同时,我们还将学习如何通过SharePoint自带的Silverlight Web部件来宿主Silverlight应用.下图

Sil“.NET研究”verlight 游戏开发小技巧:动感小菜单2

动感小菜单其实是想模仿Apple的菜单按钮设计制作,但是画虎不成反类犬,看起来有点别扭,昨天各位园友提了这方面的建议,感觉太硬如果加入动画可能更好,非常感谢各位,而今天这篇的动感小菜单2,让按钮更加动感"柔"顺:)期望能做的更好吧. 我们可以直接借助昨天的工程,在上面的基础上修改,打开昨天的工程(Silverlight 游戏开发小技巧:动感小菜单): 直接选定一个StackPanel的Group,然后按住Alt键复制一个,为了方便编程,这次我们将它制作成一个控件: 在结构里面直接选择刚

Sil“.NET研究”verlight与HTML双向交互

Silverlight具备很好的用户体验,但有时需要在页面的布局上进行特殊处理,比如作为webpart集成到Sharepoint中等等. HTML和Silverlight之间的双向交互可以更灵活的使用Silverlight进行开发,上午摸索了一下,记录在此. 一,向Silverlight传递数据,实现个性化加载 Silverlight在HTML中的引用是: <object data="data:application/x-silverlight-2," type="ap

案例分析:如何将免费社区转化为成功的商业模式

社区 Nisan Gabbay注:非常高兴本周的案例分析出自Startup Review的读者Kempton Lam. Kempton是一位管理咨询师,专于创业指导,您可以查看Kempton的背景及博客.Kempton采用了和我相同的案例分析流程,作为编辑,我的工作是确保其与Startup Review保持格式上的一致.如果你有意成为Startup Review的嘉宾作者,请与我联系. 为什么研究这个案例 iStockphoto既是一个摄影师社区,也是一个高质低价的庞大图片库.到2006年10月

Digg&amp;nbsp;案例分析:为什么技术人群是重要的用户

一直觉得Digg是我错过的了一个Web2.0应用,想去研究研究一下,感谢丁丁提供的译文! Digg 案例分析:为什么技术人群是重要的用户原文作者:Nisan Gabbay***:雷声大雨点大原文链接:Digg Case Study: Why techies are an important audience原文发表时间:2006年10月15日 为什么做这个案例分析从2004年12月面世至今,Digg已经成为Web2.0的成功典型.Digg是一个提供新闻内容的网站,它一反传统的层层审核的编辑制度.

《数学建模:基于R》一一1.7 数学建模案例分析——食品质量安全抽检数据分析

1.7 数学建模案例分析--食品质量安全抽检数据分析 1.7.1 问题的提出 该题选自2013年"深圳杯"数学建模夏令营A题. "民以食为天",食品安全关系到千家万户的生活与健康.随着人们对生活质量的追求和安全意识的提高,食品安全已成为社会关注的热点,也是政府民生工程的一个主题.城市食品的来源越来越广泛,人们消费加工好的食品的比例也越来越高,因此除食材的生产收获外,食品的运输.加工.包装.贮存.销售以及餐饮等每一个环节皆可能影响食品的质量与安全.另一方面,食品质

MySQL运维案例分析:Binlog中的时间戳

背景 众所周知,在Binlog文件中,经常会看到关于事件的时间属性,出现的方式都是如下这样的. #161213 10:11:35 server id 11766 end_log_pos 263690453 CRC32 0xbee3aaf5 Xid = 83631678 我们清楚地知道,161213 10:11:35表示的就是时间值,但除此之外呢?还能知道它的什么信息呢? 案例分析 先从一个典型的案例入手来讲述其中的细节,比如曾经在Galera Cluster碰到的一个问题,可以先看一段Binlo

《深度学习导论及案例分析》一第一部分 基 础 理 论

   本节书摘来自华章出版社<深度学习导论及案例分析>一书中的第1章,第1.1节,作者李玉鑑  张婷,更多章节内容可以访问"华章计算机"公众号查看. PART1 第一部分 基 础 理 论   本书第一部分主要探讨深度学习的基础理论.深度学习起源于神经网络,其本质是一系列深层网络模型的学习和训练算法.本部分涵盖了深度学习的主要内容,有助于读者在总体上把握深度学习的发展脉络和体系结构,是开展进一步相关工作的基础. 这部分共包括13章.第1章勾画深度学习的起源和发展.特点和优势.

沈阳摄影工作室案例分析

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 今天老曹就来说下我对一个沈阳摄影工作室网站的案例分析,网站地址www.sypgsy.cn 这个站是由老曹去做的,整个站做了多个关键词的排名工作,并在Google和百度上都做了排名.现在网站的多个排名都出现在了百度和Google的首页.首先说下这个沈阳摄影工作室的主要做的内容,就是以本地的婚纱行业为主,不断的扩展其规模,以婚纱摄影为主的一个工作