CLR Interop
访Silverlight中国团队:从事最底层CLR核心代码研发
微软自去年9月首次发布Silverlight后,又立刻在半年后的MIX08大会上推出了Silverlight 2 Beta1,新版的网页开发工具Expression Web 2也已随 Expression Studio 2在4月发布,6月就会推出繁体中文版。根据易观国际最新市场统计数据显示,截止3月底,已经有约30%的中国PC用户在使用Silverlight。如此大的研发和推广举动都表明了微软对富多媒体应用的重视和Silverlight在未来战略中举足轻重的地位。
距离Silverlight 2 Beta1的发布已经有一段时间了,在1.0版本的基础上,新版本进一步加强了网络应用程序的交互式体验,改进了开发人员的开发体验。那么,作为参与了新版本研发任务的微软中国研发集团在这次新产品的开发中究竟做了哪些工作?他们如何看待Silverlight 新功能的改进?在新版本研发中最困难和最难忘的事是什么…带着众多问题,近日,CSDN记者特地采访了微软中国研发集团服务器与开发工具事业部的Silverlight 研发团队,与您一起分享他们在开发中的故事。
“在过去的一年中,我们投入更多的是对Silverlight 2最底层技术的研发以及部分控件和网络支持的测试工作,或许我们的成绩不是那么直观,但却为保障Silverlight 2运行时各方面的性能起到了关键的作用"。
在采访开头,项目经理(以下简称PM)晓颖以这样一句言简意赅的话总结了微软中国研发集团在Silverlight 2 Beta1研发中的贡献。她表示,在研发阶段,微软中国研发集团主要承担了两部分的工作:首先,由于Silverlight 2秉承了Silverlight 1.0的跨平台性,研发团队主要对Mac OS上运行的Silverlight底层.NET技术的核心部分 —— CoreCLR进行了改进,提高了代码的运行安全性和稳定性。另一方面,因为新版本中提供了多种内建控件(如表单控件、布局管理控件等等),极大的提高了开发效率。更多的网络支持(REST,Web Service/SOAP,POX,RSS, Socket,跨域支持等等),使应用程序在互联网上的延展性进一步加强。中国研发团队参与了部分内置控件及部分网络支持的测试工作,对其质量进行保证。此外,对广大中国用户来说,Silverlight 2 Beta 1已支持中文显示以及IME中文输入。中国研发团队在Silverlight 2计划制定的过程中向产品决策者们及时反映了中文支持的强烈需求,并强调其重要性和紧迫性,使Silverlight对中国用户更加友好。
在谈到Silverlight 2与Silverlight 1.0最大的不同之处时,晓颖认为Silverlight 1.0 旨在增强网络富媒体体验,而基于.NET技术的Silverlight 2在此基础上进一步改进了开发人员的开发体验,在不久的未来,Silverlight新版本会做出更大的改进,使开发者对应用程序的大胆想法和好设计成为可能,使互联网服务供应商的开发维护成本更低。
对于Silverlight在中国的使用情况,中国第一家普及应用Silverlight的大型互联网公司—百度 总裁助理张东晨先生表示:“百度一直与微软在Silverlight方面进行深入的合作。去年十一月份,在Silverlight 1.0正式发布不到两个月的时候,百度就发布了采用该技术的音乐抢鲜族频道,提供更加丰富的用户体验,得到了客户以及最终用户的好评。百度将会继续使用Silverlight为用户提供更加出色的互动体验。”
腾讯公司联席 CTO熊明华也表示腾讯公司将使用微软Silverlight技术应用于下一代互联网服务,“腾讯致力于通过以QQ为代表的领先产品为用户提供一站式在线生活服务。我们期待通过此次与微软Silverlight和Windows Server 2008项目的合作,为3亿用户提供更好的在线体验。”
全家福照片
研发过程中三段研发轶事
跨时差沟通交流是关键,攻关阶段一天只睡三、四个小时
在谈到其印象最深刻的研发逸事时,晓颖称在中国做PM与美国PM有些不一样,由于15小时的时差,中国的PM需要花更多上班之外的时间与美国同事交流。她笑道曾有一个项目快要临近尾声,由于某些特殊原因,接到那个项目的时候计划就很紧张,于是到了项目快要递交的时候大家更是忙得不可开交。又因为这个项目的开发工程师恰巧都在美国,而测试开发工程师和PM都在中国,因此充分地交流沟通成了该项目顺利进行的重要一环,到了项目快结束的时候更是如此。当时晓颖手上同时有两、三个项目,为了保证每个项目的顺利进行,她在那段时间与美国同事开的电话会议也特别多,而且大部分会不是在半夜就是在清晨, 至今她仍记得那个星期几乎每天晚上只睡三、四个小时。在项目准备提交的前一天晚上,为了和美国同事一起确保各项工作准备就绪,团队里热心的开发人员和晓颖一起半夜在网络上守着,一到美国的上班时间,大家就一起和美国同事交流项目进展、检查各项工作。“当时针指向了凌晨两点多,‘可怕’的情况终于发生了——我的大脑渐渐失去了意识,我被强行拉进了梦乡……等我醒来已经是一大清早,我怀里抱着笔记本上还显示着我的测试人员和开发人员在即时聊天工具上与美国同事的交谈,以及他们两人如下的对话:
‘1? PM呢?PM呢?怎么不说话了?’
‘时间不早了,大概倒下了。’
‘不过我们项目都认真检查过了,应该没问题了。’
第二天回到公司一看,果然各项工作准备就绪,项目按时顺利提交。” 经过那一晚,晓颖开始注意工作与休息的平衡。“微软本身也一直提倡这样一种平衡。但更重要的是,我更加了解了和我一起工作的同事们,我那可爱的一家人。我们的互相信任、互相理解、互相帮助帮我们度过了之后遇到的所有的紧急情况。”
一个Bug引出七套不同解决方案的风波
一个平凡的日子,开发工程师羿在办公室里埋头写代码,坐在身边的一位测试开发工程师突然发现在Mac操作系统上一个关于Silverlight的测试案例出错了。于是羿启动调试工具帮助查看,怀疑可能是在设计的时候没有考虑到的一个平台差异,就发了封电子邮件询问美国同事了解相关情况。结果,大家对如何解决这个Bug各执一词,提出了很多种不同的方案。羿回忆说“讨论到最后,解决方案是出台了,但是我们团队里的人合计了一下,发觉对一个Bug来说,该解决方案的测试成本偏高。于是大家一致同意在下一个版本的产品中把这个改进作为一个功能特性一起解决。”而对于已经造成的现状,由于只有公司内部的一些团队才会使用到相关功能特性、遇到这个问题,大家决定通过专门制作的一个小工具,帮助查找出有问题的代码进行相应的改进以避免问题产生。
于是,研发团队都将精力集中到如何在下一个版本的产品中解决这个问题的功能特性,并一共总结出了七套不同的方案,经过内部多次分析,选出一种方案并写出了设计提案和详细设计书。恰逢整个研发团队被空降到美国进行交流学习,使得有机会和美国那边的软件工程师及项目经理就这个问题进行面对面的深入交流。又是一番权衡和讨论之后,研发团队对这个方案进行了进一步修改,不仅能解决问题,还降低了开发测试的成本,从这个意义上来说,也就没有必要将它作为一个功能特性来对待了。
提出新测试解决方案,完成不可能完成的任务成就Silverlight 2 Beta 1新亮点
Silverlight 1.0正式发布后,许多用户都表示希望Silverlight能在浏览器内运行Socket,于是产品组决定在新版本里加入对Socket的支持。当时离Silverlight 2 Beta 1的发布只有不到6周的时间,但这项工作对产品代码,测试案例和测试框架的移植工作量却非常大。开始时,测试组的计划是将全部的测试案例移植到浏览器里,并使用已有的Silverlight所支持的在浏览器内运行的测试框架。但通过对Socket 测试案例移植工作量的评估, 作为组里唯一的一名负责Socket测试的测试开发工程师,尧敏觉得如果移植全部的测试案例和一些相关的工具是不可能在6周内完成的,并且风险也比较高。
于是,尧敏向测试组建议在测试框架上面来修改,设计一个新的能在浏览器里面运行的测试框架,并提供和原来的测试框架完全一致并且兼容的接口。在与美国同事多次沟通后,双方均认同这是最有效而且成本比较低的方法。于是尧敏开始研究Silverlight已有的在浏览器内运行的测试框架,并多次与美国同事进行讨论,前后花了近3周时间终于完成了新的测试框架的预览版,在与Silverlight的现有测试平台集合后,原来所有的Socket测试案例都可以不经过任何修改就在浏览器里面正常运行,成功按时在Beta版里实现对浏览器内Socket的支持,而对Socket的支持也成为Silverlight 2 Beta 1的一个亮点。
研发团队的当地客户的关注
除了在技术上为Siverlight的底层技术以及部分控件和网络支持做出贡献,在过去的一年中,研发团队还积极参与Silverlight在中国的推广,直接了解本地客户的产品使用情景、习惯、技能和困难,并通过各种途径与其他Silverlight研发团队分享,促进产品创新和改进以提高中国客户对新产品的理解和应用体验。例如,开设Silverlight中文技术博客——Sliverlight中国开发团队 – 点亮网络,点亮生活;在MSDN 主持中文Webcast;在Siverlight 中文技术论坛上回答问题; 为在线媒体和广告设计公司的开发和设计人员的“Silverlight体验周”提供技术支持等等,让更多的中国网络开发、设计人员和网络开发爱好者尽快了解Silverlight技术。
Silverlight体验周
Silverlight中国研发团队就是这样一个可爱的大家庭,虽时常会出现技术上的分歧和激烈讨论但大家都彼此信任、目标一致,互相理解和帮助,虽研发任务繁重但却一直在快乐的寻找着工作和生活的最佳平衡点,伴随着不断克服各种困难和紧急情况后的成功喜悦,每天也都会面临着新的任务和挑战,他们一直在努力前进着。在采访过程中,记者也深切体会到了这个大家庭成员的热情和积极。
前不久,Silverlight中国研发团队前往美国总部,对将来的工作方向进行了探讨。在今后的几个月中中国研发团队会加强对CLR(Common Language Runtime, 公共语言运行时)的研发力度。除了继续在Silverlight底层.NET技术相关领域进行研发外,Silverlight中国研发团队还会继续对CLR Interop(托管代码和非托管代码之间的互操作性)方面进行改进以及新功能的研发。
详细内容:http://dev.yesky.com/27/8099027.shtml
Enty_yu_俞