Welcome to MSDN Blogs Sign in | Join | Help

    冲突是微软开发工作时的常态,每个微软新产品的孕育过程概莫能外地充斥着质疑、抗争、苦闷、忐忑……理念的交击、智慧的冲撞让软件开发的各个阶段都弥漫着硝烟,直至产品发布,然后又要迈入下一个循环。对于微软工程师们来说,这样的经历就仿佛是一次次痛苦但不乏惊喜的涅槃。

    这篇博客记录了微软Windows Server 2008 R2*中国团队的一些真实经历与感悟,例如“暗藏杀机”的季度性产品评审会议;微软工程师如何“向用户学习”;软件开发过程中只有对错、没有“权威”……

war and peace in Microsoft product development lifecycle

    *Windows Server 2008 R2是与Windows 7同步研发、同时面世的微软新一代服务器操作系统。

    Windows Server 2008 R2今天在北京正式发布,由我们负责开发的Active Directory Administrative Center(活动目录管理中心,以下简称“ADAC”)也将真正开始接受IT管理员们的检验。

    为迎接这一天,我们准备了非同寻常的一年半。有过重重压力,有过混乱无序,甚至怀疑过这是否是“不可能完成的任务”。而当Windows Server 2008 R2预发布版本问市后,美国权威IT技术信息杂志《Windows IT Po》在一篇新功能点评文章中,将ADAC评价为最受关注新功能第一名,这让我们高兴了好一阵子——我们收获的不仅仅是一件令团队成员自豪的产品,更重要的是,我们证明了中国研发团队的能力。

    在我们在踏上新的征程之时,谨以三个幕后故事来记录我们的努力和过往那些“硝烟弥漫”的日子。

 

测试主管Jun的故事:从虚无缥缈到事实

    Windows Server 2008 R2即将发布第一个测试版时,Jun正在美国参加一个季度性产品评审会议。当时,他的测试团队因为对ADAC采取了与美国不一样的测试策略,在产品开发前期更激进地寻找bug,最后挖出了538个,“荣登”活动目录整个产品线所有新旧产品bug数榜首,并几乎与“活动目录”其他产品的总bug量相当——作为团队代表,如果Jun无法让管理层信服,整个中国开发团队能够在Windows Server 2008 R2发布前解决这些问题,那么这个项目很可能会被砍掉,这意味着十多位工程师一年多的努力将化为泡影。

    当Jun不厌其烦地阐述、分析,并反复强调ADAC一定能够和Windows Server 2008 R2一起发布的时候,“活动目录”产品线的总经理,一位白胡子老者(真的很像圣诞老人)笑眯眯地转过头说:“你知道在英语中我如何来描述你的结论(可以和Windows Server 2008 R2 一起发布)吗?我比较喜欢这个单词:illusion (虚无缥缈)”。

    那一刻,虽然Jun嘴上依然挂着笑容,但是阵阵冷汗已在后背泛起… …在强迫自己冷静之后,Jun回答道:“我们看到的不只是静态的数据,还是一个发展的趋势,基于bug数量递减的速度和趋势,我依然有信心,我们能够完成这一产品。”

    不知道是被中国团队的执着所打动,还是真的相信了Jun的“趋势论”,总之“圣诞老人”在会后并未将这个项目从Windows Server 2008 R2里砍去。但他设置了一个非常严格的时间表,要求中国团队在相应时间内将bug数量降低到可控的范围之内。像很多故事一样,不懈努力的结局是美好的。最终,Jun的测试团队因为出色的表现(自动化测试的稳定性和测试的代码覆盖率都超过了微软的标准)而受到了“圣诞老人“的特别肯定。

 

开发人员Elfe的故事:用户是最好的老师

    在产品开发过程中,开发、测试人员和项目经理之间常常会有很多的争论:争论产品的某一表现究竟是错误还是本该如此的特性;受时间所限,开发人员不可能修正所有的bug,因此对于bug大家会争论它的严重程度与优先级,以决定是否需要修正。有时候实在是各有各的理,谁都说服不了谁,问题就只能暂时搁置。

    当产品第三个里程碑结束时,用户体验小组邀请了几位IT管理员用户,请他们在产品上完成拟定的几项操作任务。用户体验小组架起了三个摄像头,分别对着电脑屏幕、鼠标与用户的脸部,通过录像分析用户执行任务的顺利程度,以衡量产品的设计。研究结束后,用户体验小组给所有开发团队发了长长的报告,列出产品所有成功与失败的地方;此外还精选了一部分录像供大家参考。

    录像中是一张张困惑、受挫、惊奇甚至绝望的脸。有用户在一个没有提示的输入框里进行了十几次尝试却无一成功;有用户对一条简略的出错报告信息上天入地怎么都找不到错误的具体原因;有用户成功执行了操作却因界面未及时刷新而停在那里苦苦等待;有用户误操作不可恢复地删除了重要数据,把嘴张成O形呆坐在那里。

    这些录像就像整蛊视频一样,实在是搞笑。在镜头前,可怜的IT管理员们就像不知情的被整对象手足无措。大家看得乐呀——“这么简单的事他们怎么就不会呢?”

    但在笑过之后,大家又都脸上发烧:这可都是因为我们的错啊。赶紧回头找找,为什么有些问题我们在设计时没能考虑到,为什么有些bug我们没能发现,为什么有些bug我们会认为无关紧要而不去修正。用户是最权威的裁判,告诉了我们什么是对什么是错。

    开发人员 Elfe 感叹:“此后每有争论,我脑海中就会出现用户那张绝望的脸。于是,慎重地从用户角度来考虑事情,而不敢为了追求进度推诿掩藏问题。用户的受挫体验,给我上了最生动的一课。”

 

测试人员Li的故事:不惧权威的质疑

    除了开发新一代的活动目录管理工具外,中国团队还要维护一个从Windows NT4开始,被一代又一代的管理员沿用了十多年传统管理工具。确保它能在Windows Server 2008 R2上稳定运行,是一项至关重要的任务。

    项目开始不久,Li就发现旧工具上的一个右键菜单项未作任何改动就莫名其妙失踪了!检查相关代码后也没有发现什么异常。这难道是其它小组的代码改动所致?虽然中国团队只负责ADAC的开发,但是同样有权限查阅和修改Windows的任何代码。没有理由说怀疑上述问题是别人导致的就放任不管。既然有了代码,Li就主动请缨负责寻找问题的根源。在结合多种排错手段后,终于把问题定位到美国团队负责的界面代码中。

    接下来,Li把问题描述、对应的代码、代码修改前后的比较和逻辑分析发给了相应的美国团队。对方很快就着手分析,一名合伙人级别的开发工程师(微软某产品线或技术的首席代表)为此发信询问更详细的来龙去脉。他坚持认为,根据他原先的设计,相应的问题是不应该出现的,他怀疑是我们团队工程师的不当调用造成的——但Li并没有因为对方是“权威”而放弃质疑。他再次回信分析,最终说服了美国同事在相应的组件中修正了错误,消失已久的右键菜单项又恢复如初了。

 

    类似的情景,在服务器与开发工具事业部中国团队,在整个微软中国研发集团,每天都在上演且永远不会结束。驱策我们不断克服困难、努力前行的动力是身为中国软件工程师的责任感和以创新影响全球用户的成就感。

 

 

徐雁斐

      2009年微软技术大会(TechEd)中国下周就将在北京召开了,服务器与开发工具事业部的中国研发团队将派出31位项目经理、软件设计开发工程师和软件测试开发工程,与中国程序开发者IT从业人员分享我们最新的产品开发。以下是我们负责的课程动手实验室专家交流区列表,希望能在大会现场与大家面对面交流。

针对程序开发者:

时间

课程标题

主讲人

课程简介

11/6

9:25-11:40

WUX301

用Silverlight进行高效的RIA商务应用开发

郭晓颖

类别:互联网新技术

本讲座将为您介绍用Silverlight 3构建商务应用的传统体验以及.NET RIA Services为基于Silverlight及ASP.NET的商业应用开发注入的新活力。

11/6

9:25-11:40

DEV201

在大型研发团队中玩转Agile — 微软研发团队敏捷开发最佳实践(英文课程)

Ramesh Rajagopal

钟鸣

类别:开发工具与技术

本讲座将为您介绍微软的Visual Studio研发团队如何将敏捷方法具体应用于实际的软件开发,并且带来巨大效益的经验分享。

11/6

14:25-16:45

ARC321

多核时代: 并行计算进军主流

朱金生

类别:软件架构及云计算

本讲座将为您介绍微软正探索发掘的一种全新方法,让开发人员通过并行计算来充分利用多核性能,从而开发出在现代多核系统上运行的极具吸引力的全新用户体验。

11/6

15:50-17:00

DEV311

用Visual Studio 2010构建SharePoint 2010应用实战体验

陆榕

类别:开发工具与技术

本讲座将带您全面领略将在Visual Studio 2010中发布的SharePoint 开发工具,包括全新的工程和项目模板等。

11/6

17:15-18:15

BAP303

BizTalk Server 2009性能优化以及Hyper-v 构架虚拟化的最佳实践

马燕

类别: 商务智能及商业应用平台

本讲座将为您介绍BizTalkServer 2009性能测试环境的搭建,典型用例的设计,以及数据的采集和比较。

11/7

8:00-9:10

ARC211

架构利器:Visual Studio架构工具预览

钱量

类别:软件架构及云计算

本讲座将为您介绍Visual Studio 2010中新的架构工具,以及如何使用这些工具来改善您的产品开发流程。

11/7

8:00-9:10

DEV321

新一代工作流基础纵览

郜建

辛晓闻

类别: 开发工具与技术

本讲座将为您介绍工作流的特性,并演示如何用工作流设计器以图形化地方式创建工作流服务。

11/7

10:50-12:00

DEV323 
ADO.NET Entity Framework 4.0新特性及使用技巧

曹阳

类别:开发工具与技术

本课程将带您了解并熟悉ADO.NET Entity Framework 4.0的新特性,包括模型优先开发,延迟加载,WPF数据绑定支持,POCO支持等。

11/7

14:25-15:35

DEV320

WCF – .NET4.0中的新功能

熊炜

薛敏敏

类别: 开发工具与技术

本讲座将为您介绍WCF 4.0的最新功能,并且通过丰富的演示加深大家对它们的理解。

11/7

15:50-17:00

BAP302  

SQL Server 2008 R2的自助式商务智能(英文课程)

Donald Farmer

卓伟雄

类别:商务智能及商业应用平台

本讲座将为您详尽介绍R2中的BI新特性,以及Gemini中的个人商务智能

11/7

15:50-17:00

DEV313

Visual C++ 的复兴

徐鹏阳

焦桢

所属类别: 开发工具与技术

即将发布的Visual Studio 2010可以说是Visual C++的一次复兴,它将会为C++的开发者提供一个更强大,更高效的一流C++语言开发平台。

时间

动手实验室

主持人

动手实验简介

11/7

10:50-12:00

DEVHOL226
使用Visual Studio 2010进行单元测试,及自动生成测试用例和代码

李想

王骏飞

本讲座将介绍使用VSTT进行单元测试的基本概念,并以Spec Explorer为例讲解如何使用Visual Studio对软件系统的行为进行建模等。

11/7

10:50-12:00

BAPHOL227 
构建部署BizTalk Server 2009应用

陈峰

本讲座主要通过实例让您了解 BizTalk Server 2009的新特性以及介绍如何在Visual Studio 2008创建BizTalk工程等。

11/7

13:00-14:10

DEVHOL236 
介绍Windows Communication Foundation 3.5

葛子昂

梁冠荃

本次上机实验的目的是为了让您亲手创建、配置和托管一个WCF服务,并实际使用由一个网站提供的WCF服务,从而理解WCF所使用的编程模型。

11/7

15:50-17:00

DEVHOL256
介绍.NET 4 中的工作流

胡渊

区应洪

通过本次上机练习您将了解创建、托管和运行工作流的基础知识。

 

针对IT专业人士

时间

课程标题

主讲人

课程简介

11/6

8:00-9:10

DAT331  
先睹为快 微软云计算数据库平台 -- SQL Azure

吴中伟

李刚毅

类别:数据平台管理与开发

本讲座将为您介绍清晰而全面的SQL Azure信息包括SQL Azure的架构、基本概念、目前支持的各种功能等。

11/6

10:50-12:00

MGT203 
System Center Configuration Manager 2007 SP2 重要新特性

徐超豪

类别:系统运维管理

本讲座将为您演示如何利用System Center Configuration Manager 2007 SP2所提供的企业内部客户端管理解决方案对企业内部的客户端进行管理和大规模的操作系统部署和升级。

11/6

13:00-14:10

WSV331  
使用Windows 高性能计算服务器高效提速应

徐明强

类别:Windows 服务器

本讲座将为您可介绍如何使用Windows WCF 和Windows 高性能计算服务器2008 来对此类应用进行多个数量级的提速。

11/6

13:00-14:10

DAT201
SQL Server 2008 数据库引擎: 产品发布十五个月后

王枫

类别:数据平台管理与开发

本讲座将对SQL Server 2008针对数据库引擎的主要新功能作一个全面的介绍。

11/6

14:25-15:35

DAT221  
SQL Server 2008 虚拟化和最佳实践

吴家震

类别:数据平台管理与开发

本讲座通过大量实例和实践的分享,从测试数据和真实场景中让您对SQL Server2008 虚拟化有个全面而深入的了解。

11/7

8:00-9:10

DAT313

如何使用SQL Server 2008 Extended Events 进行跟踪及排错

林默

类别:数据平台管理与开发

本讲座将为您介绍SQL Server Extended Events特性,内部架构以及如何使用它分析问题。

时间

动手实验室标题

主持人

动手实验简介

11/6

10:50-12:00

DATHOL127  
集成Microsoft SQL Server 2008空间数据支持的Microsoft Virtual Earth

赵振宇

尹鸿岩

类别:数据平台管理与开发(动手实验室)

本讲座主要通过实例让您了解SQL Server 2008空间数据(Spatial Data)的强大。

11/7

13:00:14:10

MGTHOL234  
Microsoft System Center Configuration Manager 2007介绍

郭昱旻

类别:系统运维管理(动手实验室)

通过本次试验课程,您可以学习到SCCM2007的主要管理能力和功能,对于SCCM2007有了初步的体验和了解。

 

 时间

专家交流区

11/6, 10:50-11:35

BizTalk Server研发团队交流会

11/6, 14:25-15:10

开发工具团队交流会

11/6, 15:50-16:35

微软高性能计算在金融和制造业的行业应用

11/7, 14:25-15:10

SQL Server研发团队交流会

    Win 7是我所用过的操作系统中最好的。靓丽的界面、优秀的软硬件兼容性、高效的运行性能、体贴合理的安全设计等诸多新特性,无一不昭示着Win 7在操作系统发展史上里程碑式的地位。对我和我的同事而言,Win 7的意义不仅于此,我们更是她两个核心组件MSXML和WDAC的幕后推手,一手包办了从功能设计、开发到测试的全部工作。

    作为Win 7重要的核心组件,MSXML和WDAC支持着包括Office、IE、Windows Live、SQL Server等诸多微软产品的运行,它们的稳定性、安全性和性能对于整个操作系统 重要性是不言而喻的。

    技术的演变,有些是渐进的,有些则是颠覆性的。比如,集成电路上的晶体管数目依照摩尔定律发展,纵然指数级增长速度很快,但是依然有规律可循,仍然属于渐进式的演变;晶体管取代电子管、集成电路取代晶体管,却是颠覆性的技术变革。多核(Multi-Core)以及虚拟技术(Virtualization)就是这样颠覆性的技术,慢慢影响着信息产业的大趋势,为硬件制造商带来了前所未有的机遇。这两项技术将显著改善设备性能,并通过硬件集中化来降低成本,最终在整个产品生命周期内取得最佳的收益,而且也符合如今节能环保的趋势。然而,这对于我们Win 7开发者而言却是一个不小的挑战。

    编程模型的改进,以及硬件条件的变更,使得原来可以忽略不计的小概率事故频繁发生。更令人苦闷的是,但凡这样的事故发生就一定是随机事件,重现问题本身不容易,追踪并确认原因困难,修复它更是难上加难了。在计算机教科书上极其普通的一行源代码,在新的硬件环境下就可能成为麻烦制造者——谁会想到就是这样不起眼的源代码,变成了难缠问题的罪魁祸首?并且,一再地不请自来。很多人都把它们叫做臭虫,对我们这群倜傥的年轻工程师而言,既来之则安之嘛。凭借以提高客户体验为己任的责任心和恒心,仔细研读汇编代码,多方查询资料,经过多少个日日夜夜,就差没去烧香拜佛,一个顿悟,突然圆满解决了问题。恰似《关雎》中所描述的一幕:“参差荇菜,左右流之;窈窕淑女,寤寐求之; 求之不得,寤寐思服;悠哉悠哉,辗转反侧……”

win7antibugs_stb china blog

    在开发工程师们“辗转反侧”的同时,测试开发工程师们也开始了他们“悠哉悠哉”的忙碌。这两个组件在微软操作系统中都有着近十年的历史,代码随着产品的不断变迁,也越来越复杂。为确保测试的有效性并排除干扰信息,我们一边编写新测试用例,一边对原先的测试用例进行大量修订。同时,为了加快测试迭代周期,尽快发现产品中存在的缺陷,我们对原有的测试流程进行了大量优化,整个测试周期从三天降低到一天,让缺陷无所遁形,有效地保证了Windows7的开发进度产品质量。

    或许许多用户们对Vista的认知就是硬件配置要求高、性能差。实际上,在高配置硬件上的表现,Vista超过了Windows XP,表现欠佳的往往是低配置机型。当然,用户的需求永远是最重要的, Win 7能否在入门级硬件环境下轻松运行,便也成为用户满意与否的关键指标之一。由于MSXML和WDAC在Win 7中的广泛应用,我们团队自然而然上了性能优化部门的重点关注名单。平均微软年龄才一年半的我们,与美国那些资深工程师相比,无疑在技术上有着不小的差距。虽然也研习过各个操作系统,在一些原理、细节上,我们还是有许多疑惑。然而勤能补拙,深奥的原理并不能阻挡我们渴求完美,但凡遇到不明白的地方,记下笔记,在与美国同事紧密交流的间隙,彻底把问题弄懂并融会贯通为止。这样,在下一次会议中,我们就又能与那些资深工程师们“谈笑风生”了。最终,我们完成了对代码近乎逐行地优化,降低了对其他组件的耦合,减少了对系统内存资源的占用。Win 7能够运行如飞,其中有我们的一份辛劳。

    虽然我们负责的两个组件没有靓丽的用户界面,永远只在后台默默支持Win 7以及诸多应用程序的高效运行,不过,让用户欣喜于这款最时髦、最迅捷的操作系统,就是对我们最大的回报。

    最后,让我用Fort Minor的Remember the Name来总结这段与Win7一同成长的岁月:

It's just ten percent luck

Twenty percent skill

Fifteen percent concentrated power of will

Fifty percent pleasure

Five percent pain

And a hundred percent reason to remember the name

 

 

 

张琪 项目经理

    微软不少Title前都加上Senior来表示这位员工的资深,比如 Senior Vice President, Senior SDE, Senior Test Manager。按照这个逻辑,如果在Intern前加上Senior不就是资深实习生?!

    最近,我有机会独家采访了四位已在微软中国研发集团服务器与开发工具事业部 (以下简称STB China)实习半年以上的同学,与正在准备投简历找工作或者实习机会的同学分享他们一些经验。

senior interns

Qi:计算机应用技术专业研三学生。来STB China实习已有13个月了,参与安全产品的开发。通过同学推荐知道实习生招聘,在www.joinms.com上递交简历,一轮电面,三轮面试后拿到offer。

Lei:通信与信息系统专业研一学生,已在Visual Studio实习半年多,SDET(即软件开发测试工程师)实习生。通过学校BBS知道实习生招聘,将自己的简历投寄到BBS上公布的邮箱,www.joinms.com上递交简历,一轮电面,三轮面试后拿到offer。

Wen:电子工程研二学生。在高性能计算团队担任项目经理已有7个月了。一直以来就知道微软有实习生计划,通过实习同学递交简历,经过一轮电面和四轮面试(包括“午餐面试”)拿到offer。

Terry:计算机应用技术专业研二学生,已实习两年,不久前从Lab(实验室)转学至User Experience Design(用户体验设计),算得上是STB China“骨灰级”senior intern。在校园宣讲会上递交简历,后经同学推荐,经过四轮面试拿到offer。

1. 寻找实习机会时,你会有哪些方面的考量?

Wen: 俗话说,女怕嫁错郎,男怕入错行。所以我先确定自己想要从事的行业(narrow down the industry)。因为一个人一旦踏入职场以后,可能在公司之间跳来跳去,但是要在行业之间跳来跳去是件非常困难的事情。基本上你进入这个行业,以后就可能一直在这个行业发展,最多跳到相关行业。所以一开始找实习的时候,进入什么行业要想好,可以选择和专业相关的行业,可以选择自己感兴趣的行业,也可以选择那种不限专业的行业,比如咨询、投资业。

2. 面试时,你觉得自己哪方面的能力最吸引微软面试官?

Lei:面试官通过一个面试除了看你现有的能力外,更看重的是你有没有可发展的潜力。我面试的时候,一个工程师让我写code,他都没有让我写完就说“Okay”,“Enough”,“从你写得这个code里我看出来你有写code的功底”。然后让我写test case。写好后他说“从你写得这个test case中我看出你很有逻辑性”。

3. 微软是否给实习生提供专门的培训?

Lei:我觉得自己运气很好,赶上了两个给正式员工的培训,一个叫“Engineering at Microsoft”,另一个是给新进测试开发工程师的培训。

“Engineering at Microsoft”培训上一个发言者说的话给我留下深刻印象。他说,“你在这个地方肯定有很多东西是不会的,你肯定要问别人。有两个极端,一个是‘always ask’,一个是‘never ask’, 两个极端都不可取。”一开始在我只知道10%的情况下,我连方向都还没有,请人指个方向。得到了大方向以后自己查资料学习,这样等到了50%的时候再请教一下,等到了最后差不多的时候再跟人家确认一下。

另外,微软奉行的是“授人以鱼不如授人以渔”,导师或是同事一般不会告诉你看什么具体资料,而是告诉你可以通过哪几个网站获得你需要的信息。

在另一个给新进软件测试开发工程师的培训上,Adam说得话也让我印象深刻:“你们现在在这里,不是因为你们现在多么行,而是因为微软觉得你们以后会很行”, “Someone knows nothing, no one knows everything, you know something”,这就够了。

Jeffery's signature

培训课的额外收获 —— "Jeffrey大牛的签名" (Terry的得意收藏)

4. 进入微软后,你是如何融入团队、培养与团队间的默契?

Terry: 每个团队都会不定期地举行一些有趣的集体活动来增加团队士气。比如我实习的小组就曾组织成员到贝太厨房学习烧菜(很难想象,一米八几的大男生煮出来的东西可以吃吗?@,@)、去武夷山、北海旅游。通过参加这些活动,我可以很快地和同事熟悉起来,为日后的合作培养默契

5. 如何安排好学习和实习之间的平衡?

Lei: 从宏观上来讲,实习和学习是不冲突的。对于我们学计算机的来说,实际上你在外面实习,尤其是微软这样的企业实习,你本身就是在学习。学的东西和你在学校里学的东西是互补的。比如你在学校里学OS,学数据结构,在这里就是实践,或者说是进一步的学习。但是从微观上来说有些问题又不得不解决。学业比较紧张得时候,我还是以学习为重。比较有意思的是,我跟我导师说我要去实习。我导师就问我去哪里。我说微软。他说那就去吧,这要是别的公司我就不放你了。他还问我去做什么。假如他觉得是那种对提高自身能力没有帮助的他也不会让我去。

6. 你在实习中最大收获是什么?

Qi: 对自己有更明确的认识吧。我当初来微软的一个目的就是看自己是不是真的适合做技术。现在做下来发现自己还是可以做技术的。做技术没有想象中那么枯燥。对自己更加自信一点,女生也是可以做技术的。所以我对自己以后职业的规划就是走技术这条路。有些事情你觉得你喜欢,但真的尝试了以后未必想去做。而有的事情你一开始没有多大兴趣,接触了以后才发现挺适合自己的。

    找实习、找工作有时就像去商场买鞋子。有些鞋子看上去很闪亮,比如漆皮的,可穿在脚上没走多少路就磨出几个泡。而有的鞋子虽然第一眼不抓人眼球,但是穿在脚上能舒适自在地走上一天。关键还在于那两个字:适合。

    采访的四位实习生身上都有一个共性:enjoy working and enjoy job! 而这份沉浸于工作的喜欢正是源自于他们选择了适合于自己的“鞋子”。

So if the shoe fits, wear it! And then you can walk a long way!

马洁芸 实习生

Product Parade for 60th anniversary China

    上一篇文章向大家介绍了我们设计的一套GUI测试工具组,并称之为“Tao项目”,帮助我们更高效地测试软件的用户界面。在这篇文章里,我们将具体介绍Tao的重要组成部分和工作流程。

    让我们先看一下Tao项目的工作流程及其三个关键组成部分:

图1. TAO项目的工作流程

图1. TAO项目的工作流程

一、用户引导的测试用例生成器

   对于任何对话框,有经验的软件测试开发工程师都可以很快给出一些标准GUI测试用例。例如,测试一个输入框,你可能创建输入最长和最短字符串的测试用例,或者输入带有特殊字符但匹配正则表达式的字符串,或者输入带有Unicode的字符串。我们将这些经验归纳成知识基础,并输入到测试用例生成器(简称TAG)中,TAG把它们抽象成了模型。然后,用户只需提供最少的引导,TAG会自动完成这些模型的实例化,包括生成GUI状态、GUI操作、和测试准则等,并自动生成测试用例和相应测试用例自动化代码。测试用例自动化代码中包括如何打开对话框,如何发现GUI对象,如何实施GUI操作,GUI对象的输入数据是否合法,以及测试准则等。这些都会输入到自动化框架中,从而执行测试自动化。

   这里我们只用简单的例子来阐述测试用例生成器TAG是如何工作的,省去复杂的数学模型和公式的介绍。比如,检查textbox只接收包含 “.”的“字母数字”字符串。如果用户输入一个没有“.”的字符串,在编辑框旁边会出现一个错误提示图标。那么就有:

   GUI初始状态:控件textbox的值为空

   GUI操作1:输入字符串“abc”给控件textbox

   GUI操作1:输入字符串“microsoft.com” 给控件textbox

   GUI结果状态1:textbox的值为“abc”,控件旁显示错误提示图标

   GUI结果状态2: textbox的值为“microsoft.com”,没有错误提示图标

   那么TAG生成的测试自动化就会去验证:

   GUI初始状态 => 执行GUI操作1 => GUI变化到结果状态1,验证结果

   GUI初始状态 => 执行GUI操作2 => GUI变化到结果状态2,验证结果

   这里需要的用户引导是指出哪些GUI对象(比如控件textbox)和它们的哪些属性(比如值)需要进行测试。软件测试开发工程师需要做的是打开“测试用例自动化生成器”,指向对话框中的控件,指出哪些输入是合法的,哪些是非法的;我们称这些是检测规则。根据这些检测规则,TAG中数据生成器可以为这些控件随机生成合法的和非法的数据集,“abc”就是一个非法输入。检测规则包括允许的长度,正则表达式,字符集和类型等各种信息。图4显示一个XML格式的检测规则:

 图2. 包含“.”的字母数字字符串的测试规则 图2. 包含“.”的字母数字字符串的测试规则

   此外,如果GUI的编写语言支持反射(REFLECTION),那么可以通过Static Binary Analysis (静态二进制分析器)获得指定对话框上所有的控件,TAG可以根据标准的GUI测试规则实施静态二进制分析,例如:Tab Order(Tab键顺序), Hotkey(快捷键),Alignment(对齐方式),和Truncation(截断)等。

二、可视树图

   可视树图在这个工具组中扮演联结者的角色,它提供综合的、直观的报告机制。最开始,我们要么手动要么自动把需要测试的GUI结构表达输入可视树图,从此这个GUI结构表达会作为可视树图的基石,整个工具集收集到的数据都可以关联到可视树图。从而可视树图可以为GUI树的每个节点提供直观的报告,用户很容易把它和所测试的GUI联系起来,如:测试用例报告,自动化报告,test pass 结果报告,代码覆盖率的报告和UI差别的结果报告等。

三、UI差别跟踪器

   在上一篇文章中我们提到,GUI的改变在整个软件开发生命周期中很常见,对软件测试开发工程师来讲,管理这些变化和尽量减少其带来的缺陷是巨大挑战,因此我们设计了UI差别跟踪器。它提供GUI的变化报告,以及需要更新的原有测试用例和测试自动化的信息。它在两个不同的层面上工作:

  1. GUI 层面,它会通知软件测试开发工程师GUI的结构变化,如:增加或者删除一个对话框。
  2. 源代码层面:它会用可视化形式显示源代码的变化,这些变化可能影响GUI的显示,它也会通知软件测试开发工程师去注意这些变化。

   UI差别跟踪器的工作过程:

  1. 当软件的新build发布后,UI差别跟踪器会自动执行。
  2. 任何结构变化,需要更新的测试用例和测试自动化建议信息都一起会自动发给软件测试开发工程师。
  3. 任何潜在的代码层的改变也会通知软件测试开发工程师,然后他们会相应评估这些变化对GUI的影响。
  4. 软件测试开发工程师更新相关的测试用例和自动化代码。

   我们的产品中有一个典型功能,包含110个测试用例,我们使用Tao之后看到了显著的变化。过去一个软件测试开发工程师平均两个小时自动化一个测试用例,现在使用TAO,只需要10分钟,从而大大提高了测试效率。更进一步,这个工具显著节省了软件测试开发工程师原本需要花在对比GUI变化上的时间,并告知软件测试开发工程师测试用例需要的修改和补充。目前,我们正在使用该工具集对一个有超过2,000个对话框的复杂系统上进行测试。

   未来我们计划进一步增加该工具集的通用性,使它可以用于其它产品或网络应用程序,同时也计划在以下两个方面扩展这个工具集:

   第一,定义更多相关的GUI测试标准。例如:自动化测试用例的平均错误时间(Mean Time To Failure),以衡量GUI的健壮性。

   第二,从GUI bug数据库中抽取出一些模式(pattern)并定义一些规则。有些Bug即使是在ad-hoc测试中也很难发现。通过分析这个bug数据库,我们希望可以抽取出一些模式并有效地处理这种情况。

    最后,希望Tao项目对各位从事UI测试的同行有所启发。如果您对这个流程还有疑问,欢迎您给我们留言。

 

王景村(测试经理)、李敏(测试主管)

    经济不景气的时代,越来越多的企业努力寻找着减少成本开支的良方。虚拟化技术以其优化应用部署、提高IT投资回报率、节约能耗等诸多才能得到越来越多的关注。然而,在应用虚拟化的过程中,能否顺利实现应用部署,并将这些优势充分发挥出来,取决于虚拟化环境的管理能力。例如,快速高效的虚拟机部署、提高应用部署灵活性的迁移管理能力;对负载优化的管理能力将决定服务的稳定性和资源利用率等等。

SCCM2008 R2    微软的System Center Virtual Machine Manager(简称SCVMM)正是为了帮助客户解决这些问题而开发出来的。它为用户提供了集中的虚拟化环境管理平台,简单易用的管理接口和灵活有效的管理手段:不仅能够统一管理宿主服务器和虚拟机等资源,还帮助IT管理员实现管理的自动化和智能化,提高虚拟化管理水平。例如,在应用虚拟化整合服务器时,IT管理员需要将运行在物理服务器上的系统转移到虚拟机中,没有专业管理工具的帮助这将是一个复杂而繁琐的工作,而SCVMM能够自动完成这个动作,并将转化好的虚拟机部署到系统中;在管理虚拟机群的过程中,IT管理员会由于多种原因需要迁移虚拟机,SCVMM提供了丰富的虚拟机迁移手段,并实现最优化的智能安置,如果和System Center Operation Manager一起使用,SCVMM甚至还能够根据宿主服务器的负载情况自动地、无停机地迁移虚拟机,以优化资源的利用率,并保证服务的稳定性。

    想了解更多关于SCVMM的信息,欢迎访问我们最新的SCVMM中文博客

李雅博

 

原文地址:SQL Server中国团队博客

    2009年夏天,微软中国研发集团服务器与开发工具事业部引来了第三批香港实习生。  Marcus就是其中一位,土生土长于香港、半谙普通话的二十岁小伙子,就读于香港中文大学,修读计算机科学与工商管理双学位课程。他在SQL Server的Manageability小组实习了两个月

 


    时间有如白驹过隙,两个月的实习已近尾声。从香港乘风来到上海、体验微软工作喜与乐、感受上海风土人情──一切一切,尽皆难忘!特撰此文,以初生之犊的眼光记下这两个月的实习经验,既为个人收藏,也与大众分享。


 

在巍峨的山岳中贡献碎石


    记得实习第一天的下午,我的上司Shirley跟我作了一次的迎新详谈,向我仔细描绘我未来两个月的工作的蓝图。那个时候,我对SQL Server一无所知,不过先把工作接下来好了,也着手开始学习使用它。


    第一天接触SQL Server,觉得它就像是一座巍峨的山岳──它高耸入云、绵延千里,其结构之严谨、功能之强大、目光之远瞩,实在令人望而生畏。作为SQL Server的门外汉,真的不知如何入手,更遑论要计划为它加添新的功能了!


    投入实习工作一段时间以后,仍觉得它深不可测,却也渐渐地觉得它平易近人多了。说到要为它贡献一项新的功能,少不免有点胆怯,但我已经有勇气下定决心要把这项功能做好。经过实习的第三个星期的团队内部批阅、第五个星期的外部批阅以后,我们基本上议定了这项功能的定位;在第八、第九个星期的两次文档批阅以后,规格文档也算是完成了。我自问已经在自己能力范围以内把工作做好,算是对得起自己了吧!


    纵使我所订下的功能只是整座山脉的一块碎石、甚至可能只是在山脚旁的碎石堆里的其中一小颗,但我真切地感受到:微软花这么多的人力、物力构筑的宏伟山峦,是为了让我们的顾客站得更高,看得更远。

 


十月怀胎、诞下孩子

    我所体验的Program Manager(PM)的工作,就是在获悉顾客群对产品渴求的一项功能后,对这个功能作完整及准确的定位,并书写一份便于软件开发工程师们工作的规格文档。据悉,PM的其他的工作还包括成本考虑、哪个小功能会留下或者删掉、协调团队与团队之间的合作之类;不过作为一个只待在这里两个月的实习生,暂时没能力、也没时间一尝这些工作的滋味呢。


    在两个月实习期里面,我就是从我的上司口述的一个概念开始,悉心计划、评估顾客实际需要、研究可行性、对功能作精确定位、让同事们检阅定位是否恰当、书写一份二、三十页的文档、再多次批阅……以往作为使用者的我,怎么也看不出就是一个小功能,背后的工作居然是如此繁多!


    如果说,一项功能是孩子,那么我感到我所做的,跟诸位十月怀胎、诞下孩子的妈妈一样。看着孩子在怀里渐渐成形,开始感到他滚来滚去、淘气地踢踢,那种喜悦实在是不能言喻的。其他的同事,或温言软语,或强烈表达,都是为了让我这位妈妈做得更称职,让孩子有更好的未来。实习期太短了,我没有办法看着孩子出生、茁壮成长、长大成人,然则这种看着孩子长出个雏形的喜悦,非笔墨所能形容。

 


结语
   

    两个月的实习快结束了,很感谢我的上司与导师Shirley对我的关怀与悉心指导。也感激团队其他成员对我的包容、帮助、支持与鼓励。日后SQL Server于我来说,不再只是一个产品了──它是活生生的回忆,是一段难忘的岁月,也是一张张的笑脸。

 

白德全

    我一直觉得很莫名,好不容易考进一所男生比例极高的学府,却在一个女生比例最高的学院读书;意外地进入了一个以男性为主导的行业,却在一个男女比例差不多的小组实习。

 

    和许多微软的理工科实习生不同,我的专业是艺术设计。因此,我从来没有实验室的概念。过去三年的大学生活里,最为熟悉的是给我们画油画用的画室和学习各类设计课程的专用教室;对于“CS”、“EE”我也是一无所知,因为我所了解的都是关于视觉传达、数字媒体、工业设计等与设计息息相关的领域;我更不会“编程”,从有记忆开始喜欢和擅长的就只有画画,甚至从来没想过自己除了画画和设计还能干别的什么。于是,刚在STB China结识一些校友实习生时,都会被默认为我和他们一样,也是学计算机的或是电子工程的,问我是哪个实验室的,研几了,然后听到我的专业和年级之后一脸的诧异。

 

    有时自己“异类”的身份挺让我头痛的,特别是刚到STB China的时候。每天中午吃饭休息,伙伴都在热火朝天地谈论关于计算机方面的各种问题,各种术语、缩略语此起彼伏,而我就像个哑巴,会装作比较认真地听他们讲,其实什么也听不明白、也听不进去。但有时觉得自己是个“异类”也挺好的,因为大家会很好奇我平日里到底做些什么,经常兴致勃勃地看我带到办公室里和直接在办公室里创作的作品;他们需要一些与设计相关的帮助也会第一时间想到我,于是我很快结识了不少工程师,也很快与他们拉近了距离。

 

    作为一个UX Intern(用户体验实习生),我的工作可以分为两部分,一部分就是基于我专业的Visual Design(视觉设计),另一部分是边实践边学习的Interaction Design(交互设计)。虽然整天忙忙碌碌,我还是常常在办公室里挤时间,用画笔记录下自己当下的心情,开心了、兴奋了、难过了、烦躁了。每次完成一幅新作品,我就“炫耀”给身边同事们看,然后贴在走道旁的白板上给办公室多一份"另类"装饰。

image

我的办公桌

My CupMy Painted Cup

我的杯子

    我们UX组的头Nico是一个很可爱的法国人。他会带我去参加很多会议,让我知道他和PM、Dev都在干些什么、项目是怎么进行的、进行到哪一步了;他会尽量让我一起参与项目每个阶段的讨论,熟悉UX工作的每个流程,用Nico的话说“learning by doing”;他总会很高兴地听我问问题,然后细致耐心地解答,如果他也不清楚,他也会说出自己对问题的理解……我们常会一起吃饭,看他享受美味的“锅贴”和“葱油饼”。他时不时冒出几句标准的中文,“吃饭”、“明天见”、“周末愉快”、“我很喜欢”……于是实习了一段时间后,我也会用中文和他说:“Nico,我走了”,然后高兴地去坐班车。

 

    我是今年5月底开始实习的,虽然三个月的时间很短,但经历的却不少。这其中最值得一提的就是我们Essential组在广西北海的三天Team Morale:蓝色的海水、银色的沙滩、美味的海鲜,当然还有火辣辣的太阳。第一次知道实习生也可以参加这种活动,第一坐飞机,第一次住香格里拉,第一次除了早饭顿顿吃海鲜、第一次到热带……三天的回忆里记录了太多的第一次。因为这次旅行,我也和一些平日极少有交集的同事认识并熟悉了起来,我的摄影小技巧再次让我人气大增。虽然现在炙热的温度消散了,那海浪的声音也慢慢淡去了,那些美好的记忆和那海的湛蓝一样深深地印刻在了我的脑海中。

Beihai 1Beihai 2

Beihai 3Beihai 4

我蕙到北海

 

    有时我在想,如果没有到STB China的话,这里很多的人、很多的事可能是我这一辈子都接触不到也经历不到的。因为从高中到大学我认识的人几乎都是学设计以及相关专业的;如果当初遗憾地不能拿到实习生Offer,我一定会去一家广告设计公司或者工业设计公司实习,然后会按一条似乎绝大多数同学都会选择的路走下去,做一个平面设计师,每天日伏夜出地工作。于是,现在走过的每一步都让我觉得非寻常。

 

    但其实,我也没什么非寻常的,因为我就和STB China所有的实习生一样,在这个地方学习、成长。我也越来越爱这个叫STB China的地方。

 

刘蕙

    200958号,对于大多数的公司人来说是个很普通的一个工作日,可对我来说,这天却是个大日子——准备了许久的微软上海第一次女性员工大会今天终于要举行了。

到酒店的时候时间还早,酒店员工正在紧锣密鼓地做着最后的准备。只是除去穿制服的酒店员工,现场还有另外一群女生,她们有的在分发资料,有的在调试投影设备,时不时热络地交谈着,难掩兴奋之情。

 

她们和我一样,既是微软的员工, 也是微软女性员工协会上海分部执行委员会的一员。这里简单介绍一下微软女性员工协会(Women @ Microsoft, 我们常简写为W@M)—— W@M在美国总部雷德蒙由来已久,如今已发展成为微软最大的多元文化团体,主要是为吸引、培养和挽留女员工而自发建立的一个支持和互动平台。

 

协会所举办的所有活动中,最令人瞩目的要算每18个月一次的微软全球女性大会,这个盛会每次都会安排各种关于女性职业发展、工作协调和家庭生活的讲座,也为女员工提供了一个开放式的社交平台,因此颇受女员工的欢迎。而上海分部则是两年前刚刚成立,那时得益于我们的“丝绸之路”交流计划,使员工在美国总部工作、学习之余,接触了这个协会,并感受到协会所带来的巨大凝聚力和对女员工的助力。其后,近十位女工程师经过一段时间的摸索和努力,在人力资源和各个部门领导人的支持下发起和成立了W@M上海分部。经过两年的积累和发展,最负盛名的女性员工大会第一次在上海举行了。

 

时间一分一秒地流逝,来自微软上海各个部门的女性员工陆续到场了,看着这些或熟悉或陌生的面孔,原来我已经加入微软将近三年了。

 

三年前,我还只是服务器与开发工具事业部的一名实习生。虽然高中读的是理科,大学学的是工科,早就习惯了男女比例严重失调的氛围,但真正进入IT行业、进入微软后,周围女生比例之少还是着实让我惊讶了一段时间。也许,高中选择理科只是一两年,大学选择工科也就四年,可选择IT作为职业则可能要十年甚至更久的时间,这需要很大的勇气。

 

记得当初看到W@M活动的海报时,我欣喜异常。到了活动现场,我第一次感受到,原来微软也有这么多女生啊!一种归属感油然而生。

 

正如这次大会上一位美国资深项目经理提到的,女性在跨国企业遇到的诸多挑战之一就是孤独感,越做到高层,这种感觉越明显。她常常一连开五天的会,五天里没有见过其他的女性。为了克服这种孤独感,在过去的三、四年中,她开始有意识地在公司内部增加与人交流的频率,并组织了一个小型女性团体,以期在职业发展的道路上互相帮助、共同前进。而W@M存在的意义正在于此。

 

十点,大会准时开始,特意从北京赶来的微软中国研发集团资深人力资源总监Danielle Monaghan为大会做了简短而精炼的开场演讲。紧接着的讲座既有关于职业发展的“发展战略思维”,也有关于工作与生活的“平衡各种角色”。由于要负责部分会务工作,我无法全程聆听精彩的演讲,但是时不时传出的笑声和掌声,我能想象到那些场景,正如过去的两年我所参与的每个活动一样。

 

短暂的午餐过后,下午的第一场是关于女性步入领导阶层的挑战的专题讨论。

 

参与的嘉宾既有来自微软的,也有来自微软以外的;既有来自IT的,也有来自非IT领域的;既有来自商业企业的,也有来自非盈利组织的。这些优秀的女性领导人以其丰富的人生经验,在台上畅所欲言,妙语连珠,引得台下掌声连连。

 

确实,作为行业里的少数群体,不管是步入领导阶层,还是在职业发展初期,我们都面临着很多的挑战。例如,常听到抱怨说女性承受了太多的偏见,像技术不够强之类的——但如果自己真的技不如人,那就不能说人家戴有色眼镜看你了。

 

讨论会上,IBM Marketing Insights总监提到,每天走进办公室,她都只是把自己当成一名员工——忘记自己性别的原因之一,就是要抛开由性别而来的一系列假设。团队成员之间,技术有强有弱很正常,但因为一方是女性,这种强弱对比就成了偏见。当然不可否认这种“偏见”的存在,不过往往那是在第一印象中。在与团队伙伴工作一段时间后,当自己的真实能力得到了证明,获得的将会是因印象的反差而来的更强烈的赞叹。

 

其实,我们在抱怨男性对我们有偏见的时候,殊不知我们也会成为被抱怨的对象:女性往往具有较强的语言表达和交际能力,而且,作为高科技企业里的少数“族群”,女性也更容易引起注意,这或者可以说是“少数派的优势”。就如嘉宾之一——中美清洁能源合作组织主席提到的,其实如果你是女性,有工程教育背景,懂得怎么沟通,懂得怎么管理,懂得业务战略并具有执行力,这将是一份最好的简历。是啊,凡事都有两面性,关键在于怎么扬长避短。

 

场上讨论还在继续,场下一位特殊的观众一直静静地坐在会场的后排,他就是我们产品组的总经理。说他特殊,是因为他是观众中唯一的男性——他也很认真地听着,时不时观察着观众的反应,偶尔也露出会心的微笑,看着这些,我心中充满感激。因为他从得知要举办这次的大会开始,就一直关注着我们的筹备情况。对于W@M上海分部执行委员会的每个人来说,我们都有着自己的本职工作,作为工程师的我们,在筹备大型活动方面经验尚浅。而他作为主要的支持者之一,从大会的议程到形式提出了很多建设性的意见,甚至运用其丰富的人际关系网帮助我们邀请到了微软之外的优秀女性领导人。而事实也证明,这样多样性的嘉宾组合为与会者提供了非常全面而又独到的视角与见解。

 

其实,每次与他私下谈到会务安排的进程,我都能深刻地感受到,他是真心希望这次大会能成功,尽他所能帮助着女性员工发展。感谢我们的“外援”,也感谢为大会和W@M上海分部执行委员会提供支持的每一位同事,在此献花一束! clip_image001[1]clip_image001[1]clip_image001[1]clip_image001[1]clip_image001[1]clip_image001[1]clip_image001[1]clip_image001[1]clip_image001[1]

    最后,大会在热热闹闹的圆桌讨论中结束了,看着步出会场的女性员工满意的笑容,W@M上海分部执行委员会的每个人心里都暖暖的,过去几个月的努力是值得的。其实我们希望做到的,不是让每个女性都投身IT、加入微软,因为所有的抉择都应该源于个人的兴趣和目标;我们也并不奢求在IT界男女比例平等,因为天性使然,这是我们不可不承认的差异。我们只是希望看到,那些有潜力、有发展空间的女性不会因为偏见而踌躇不前,我们也愿意为已经踏入这个行业的女性同行们不断注入新的动力。

李丛昱

   

 

尊敬的各位读者, 首先感谢您阅读我们这篇博客摘要。如果您对其中一篇博文有任何想法或疑问,请直接在相关博文后面直接留言,以便负责博客的相关研发工程师能給于及时跟踪或答复。如果您的问题与我们的博文内容没有直接的联系,建议您直接在微软中文技术论坛(http://social.microsoft.com/forums)上查阅或提问,那里有更多微软MVP、微软讲师、技术支持工程师和广大的IT专业人士、开发人员、微软技术爱好者,分享技术经验,解决技术问题。谢谢!

Visual Studio 2010 Beta1 中的 MPI Cluster Debugger

在Windows HPC中写过MPI程序的朋友们应该用过Visual Studio2005/2008中的MPI Cluster Debugger吧。网上也可以搜到不少关于这方面的使用教程(blog, white paper)。在集群中调试MPI程序感觉如何?MPI Cluster Debugger用起来方便吗?Visual Studio 2010 Beta1已经发布,我们HPC组对其中的MPI Cluster Debugger做了很大改进,尽可能地使它变得更加便捷。下面就跟随我一起看看吧! 点击这里阅读全文。

Asset Intelligence 简介

资产管理是企业IT管理中的必不可少的一环也是繁琐的一环。本文旨在通过介绍Asset Intelligence, 让读者基本了解微软的企业资产管理方案。本文着眼于Asset Intelligence功能和使用的简要介绍,让读者对Asset Intelligence有个整体的了解;后续还会有一系列Asset Intelligence的专题文章对此功能进行更深入介绍。本文适用于System Center Configuration Manager 2007 SP1。 点击这里阅读全文。

客户端的安装调试简析

ConfigMgr  日常工作中经常碰到的一个问题就是客户端安装完成以后无法正常工作,这里我特指一些site configuration无法通过policy的形式到达客户端。这往往涉及到很多不同的因素. 在这篇博文里面我将会介绍几类常见的导致这种情况的原因,并且共享给大家一些简单的调试方法。点击这里阅读全文。

SQL HADR多个技术概览和比较

对于企业级用户和关键系统来说,最重要的要求之一就是系统的高度可用性和数据的安全性(High Availability and Disaster Recovery,HADR)。我们先来了解一下HADR的问题空间。HADR有两个目标和衡量方式:1、保证系统可用:目标恢复时间(Recovery Time Objective,RTO):出了故障后把系统恢复正常工作状态所需要的时间。点击这里阅读全文。

SQL Server 2008故障转移集群概述

故障转移集群(Failover Cluster)是实现SQL Server高可用性解决方案之一。一个集群通常由多台服务器组成,每台服务器称为一个节点。通过使用冗余节点来减少宕机时间,为客户关键业务的高可用性提供了有力的保障。与以前版本相比,SQL Server 2008故障转移集群做了很大改进,不但简化了安装和维护,而且提供了新功能减少系统维护时的宕机时间,比如循环升级、循环打补丁等。本文将简述一下SQL Server 2008故障转移集群的基本结构和原理。点击这里阅读全文。

Microsoft SQL Server 2008故障转移群集在Hyper-V虚拟机上的多种组建方式

Hyper-V虚拟机给我们带来了诸多便利,比如应用程序整合、节能、节约成本、提高资源利用率等等。随着Hyper-V虚拟机的推广,用户的使用越来越普及。很多用户在Hyper-V虚拟机中用到了MS SQL Server。但是单独(standalone)的SQL Server 不能提供高可用性和灾难恢复的功能。在对可用性有较高要求的Hyper-V用户面前,故障转移群集(Failover cluster)是必然用到的功能。当虚拟的生产服务器宕机时,热备份中的虚拟的服务器可以很快投入工作中。 然而在虚拟机上搭建故障转移群集比在物理机上搭会有更多种组合。点击这里阅读全文。

字符串marshalling进阶篇

字符串Marshalling基础:在本地代码中,字符串按编码可分为ASNI字符串和Unicode字符串,按实现不同,可分为LPSTR(char*,wchar*)和BSTR。在托管代码中,与字符串相关的有String,stringBuilder两个。点击这里阅读全文。

CLR 4 新特性 ------ 概览

.NET 4中发布了最新版本的公共语言运行时,简称CLR (Common Language Runtime) 。这个版本是CLR 2.0之后又一个新的版本,包含着CLR小组几年以来的辛勤工作。CLR上海团队计划在未来的几个月内陆续介绍其中的一些特性,本文作为一个概览,先作蜻蜓点水,抛砖引玉。也欢迎大家回复本文,告诉我们你所感兴趣的话题,我们会进一步作深入的介绍。点击这里阅读全文。

CLR 4.0 Beta1新功能:Stub Method Redirection

.NET Framework v4.0和VisualStudio 2010 Beta1已经出来有阵子了,估计有些喜欢尝鲜的朋友已经下载试用了。这一次发布包含了大量的新功能。我们上海CLR开发团队会编写一系列的文章介绍Interop的相关新功能。我来给大家简单介绍一下Stub Method Redirection功能。这个功能是CLR上海开发团队设计、开发并测试的新功能之一,这一次我们上海CLR小组共开发了下面几个功能… 点击这里阅读全文。

    两天后,我将离开微软中国研发集团服务器与开发工具事业部(以下简称STB中国),但我不会走得太远——新的部门是在北京的微软大中华区开发工具及平台事业部。作为STB中国团队的创建者之一,做出这个决定对我来说并不容易;不过我很肯定,经过多年的磨练和砥砺,STB中国团队今天已经站在了一个更高的平台上。所以,对这个创新机构的未来,我充满了信心。

    2005年初,STB中国在上海成立。这几年里,我们和华东地区的产业伙伴紧密合作、不断向新的目标发起冲锋。在这里,我想借助我们的博客,谈谈过去四年多来我的一些粗浅感受——以及这个不断成长的团队是多么让我自豪。

    在中国设立服务器与开发工具研发团队的构想萌生于2004年。在总部的大力支持下,我从雷德蒙返回故乡上海,组建创业团队、确立发展目标、锁定研发方向。几年过去了,回头看看,我深刻地感受到,跨国企业本土化研发的深度完全是取决于“态度”——客观地说,无论在哪个行业,你都很难找到这样一家公司,她是如此渴望在经营、管理、研发、合作等各个方面都深深融入中国本土,并梦想着成为中国IT产业的一部分。她就是微软。

    在微软,你几乎看不到那种大多数跨国公司“通行”的、任用不懂中文的外籍高管的情况;更重要的,在许多全球性企业都以简单的项目外包和产品汉化作为其在中国从事本土化研发的重大进展的背景下,微软却真正地做到了把中国视为创新基地,做到了资源最大化、团队本地化、研发核心化、合作多元化和产品定制化。

    今天,微软中国研发集团的北京、上海和深圳团队都已成为微软全球研发体系和中国自主创新事业的重要链环。

    创新实力和产业影响力的持续增长无疑是令人兴奋的——以我身处的STB中国团队来说,在过去的一年里,我们便迎来了一个个值得骄傲的瞬间。例如,去年春季发布的微软三大企业级软件产品就是我们与STB世界各地团队共同奋斗的成果。之后,我们又陆续为包括微软第二代高性能计算产品、最新的Azure云计算平台在内的多项技术和产品研发做出了重大贡献。再如,去年问世的中国第一台百万亿次超级计算机曙光5000A正是我们与本土伙伴并肩作战的结晶——去年夏天,我们和曙光的团队紧密协作,最终“交出了一份满意的答卷”、“创造了中国高性能计算的历史”——不少朋友可能不清楚,曙光5000A有两个很有趣的“唯一”,首先,它是当时全球超级计算机TOP 10中唯一的非美国研发的产品;其二,它还是十强机中唯一一款采用Windows HPC Server 2008的高性能计算平台。

    “扎根中国”,我们希望把这个承诺落到实处。无论是开发工程师、测试工程师、项目经理、架构师、甚至管理者,不知道客户最终想要的是什么,我们永远不可能做出能为客户产生价值的产品。因此,除研发工作外,STB中国团队还积极通过各种渠道与中国本地客户和合作伙伴建立联系,在微软中文技术论坛上回答问题,在技术大会上演讲

    打难打的仗才能锻炼好队伍 —— 正因如此,在团队建立之初,我们就将研发方向锁定在对公司具有战略意义、对全球用户而言至关重要的那些项目上。我想,这也会为STB中国团队今后的创新实践指明方向。

    态度决定深度。在惜别STB中国之际,我坚信不久的将来,随着与客户和合作伙伴的深入交流,不断将各方需求融入到产品研发过程中,这个团队可以在中国做出世界一流的研发。

    两天后,也就是我在微软的第十五年,我将从服务器与开发工具事业部的研发部门调任至技术推广部。在新的岗位上,我会负责在整个大中华区推广微软最新技术的创新应用:协助我们的合作伙伴及独立软件开发商改进商业模式、提高自身能力;支持中小企业快速成长;为开发人员和相关专业的师生们提供创新经验和技术资源等等。

    STB中国的同事们,过去四年多来,每时每刻我都享受着与各位携手工作的过程。我也坚信,在未来的日子里,我会随时关注更多来自STB中国的成就与贡献,我也期待着在今后的工作中、在与客户的互动和交流中能与大家再度携手。

    让我们继续一起加油,为我们的客户创造新的商业价值!

image

谢恩伟

 

    不知不觉,离2009年5月12日已经过去了一个多月,而离2008年那个令全中国人民刻骨铭心的日子也相距了一年之久。然而,岁月的河流对去年发生的汶川大地震似乎显得无能为力。时间,并没有如潮水般将那段记忆从人们心中洗刷淡去;记忆,却在时间的沉淀中愈发清晰。

    我依然记得去年5月12日的情景。那天下午天气很好,办公室里安静得只有自己思考的声音。忽然,Outlook弹出公司发送的一封新邮件,在第一时间向全公司的员工告知了发生在天府之国那令人震惊的消息。接下来几天的捐款公司上下所有人更是慷慨解囊,有些部门的老板甚至发起了员工捐一元,自己就对应捐两元的竞赛,丝毫不怕个别员工会“恶意”捐款让老板“破产”的风险。

    在一年后的今天,一年多前所发生的一切依然历历在目。带着让灾区更快更好地重建起来的强烈愿望,5月22日下午,服务器与开发工具事业部的公民责任委员会向在紫竹办公的近400位员工发起了“纪念5·12一周年公益义卖活动”,向全体员工征集义卖物品,号召大家参与这次义卖,并将义卖所得全部捐献给灾区。而我有幸受邀为这次的义卖活动主持。

    活动从策划发起到进行义卖仅短短几周时间,但义卖现场却热闹非凡,气氛丝毫不差庙会。许多员工捐出了自己的私人物品,摆放在义卖现场竟从大会议室的前门到后门摆满了两大排。捐出的物品更是琳琅满目,从精装书籍,生活用品,护肤品,手饰,婴儿用品,工艺品,到电子用品等等,还有人特地自制了一些蛋糕送到现场参加义卖。每件物品的起价并不高,很多都从个位数起价,但到场的同事都踊跃竞拍,从10元竞价到上百元,甚至上千元。每一个人都发挥出前所未有购物狂的潜质。而每一位竞拍成功的人,无论出价多少,都获得了周围人充满感激的热烈掌声。身为主持,站在台上,看着大家争先举手竞拍,看到一件件拍品都发挥出比它本身更多的价值,心底不禁有股暖流涌动。

    而各部门的老板们的捐赠就更令人惊呼:捐时间和私人服务!有的老板捐出了4个小时1:1教授DJ技能,有的捐献晚餐时间亲自下厨做特色法式大餐外加品酒常识,有的捐出双休日充当司机和导游游览水乡同里,还有的干脆就捐半天的贴身服务,至于是什么,就由出价的人说了算咯。当然,老板的时间都是蛮贵的,但仍不乏买主。大多数老板们都被不同部门的员工抢购一空,除了某位卖高尔夫时间的老大。不是因为底价太高,或是因为老板没有人缘(恰恰相反的是此位老大用“人见人爱,花见花开”来形容最恰当不过),看来高尔夫作为贵族运动在本分的IT员工中还是比较缺乏市场。

    其实类似的自发性活动在服务器与开发工具事业部并不少见。在汶川大地震一周年前夕,高性能计算SQL Server两个团队分别奔赴四川走访受灾群众安置点和学校,捐款捐物。而公民责任委员会作为服务器与开发工具事业部中由员工自发成立的组织,时常为同事们提供各类志愿活动信息,甚至精心组织多项富有新意的公益活动。在这样的氛围里工作,能感受到的不仅是身边(以及自己)的每个人对工作和技术的热情,更能感受到人与人之间的关怀。我们知道物资捐赠的也只是绵薄之力,但我们相信无数个绵薄之力加在一起,就能让爱散播在社会的每个角落,让我们居住的家园变得更美好,无论是今天,或是更灿烂的明天!

郭晓颖

尊敬的各位读者, 首先感谢您阅读我们这篇博客摘要。如果您对其中一篇博文有任何想法或疑问,请直接在相关博文后面直接留言,以便负责博客的相关研发工程师能給于及时跟踪或答复。如果您的问题与我们的博文内容没有直接的联系,建议您直接在微软中文技术论坛(http://social.microsoft.com/forums)上查阅或提问,那里有更多微软MVP、微软讲师、技术支持工程师和广大的IT专业人士、开发人员、微软技术爱好者,分享技术经验,解决技术问题。谢谢!

 

高性能系统棧的推倒和重建  (一)

作者简介: 徐明强博士现任微软中国研发集团服务器与开发工具事业部高性能计算资深架构师,领导HPC产品中的并行编程模型和运行时系统的设计与架构。 徐明强博士拥有21年高性能计算领域专业经历,包括8年学术政府实验室的研究和13年的业界经验。点击这里阅读全文。

 

System Center Configuration Manager 2007补丁简介

当补丁发布以后,用户可以联系微软客户支持团队下载,并且根据相应的KB文章进行安装。下面,我们就简单地介绍一下System Center Configuration Manager 2007中的补丁。 点击这里阅读全文。

 

调试客户端部署问题 -- 将ccmsetup作为系统服务运行

我在过去一些年中常见的一个客户端部署的问题是将ccmsetup程序用作一个系统服务。绝大多数情况下,我们可以将ccmsetup程序作为系统服务正常使用。然而,也有一些情况中这么做会带来预料不到的结果,随后导致客户端部署的失败。这篇文章介绍了一些这样做带来的后果,同时介绍了这么做如何导致了客户端部署失败。 点击这里阅读全文。

 

Microsoft Management Summit 2009

上周在拉斯维加斯,一年一度的微软管理峰会(Microsoft Management Summit, MMS) 如期举行。MMS为全世界IT Pro提供了微软IT管理领域的最新进展和深度的技术体验。此次峰会一如既往地吸引了全世界的IT管理领域的专家,共同探讨这一领域的各种主题。本次的MMS中,共有900多场精彩的演讲及用户体验活动,集中展示了微软在此领域的各个产品及解决方案。点击这里阅读全文。

 

听微软大牛们谈“怎样成为优秀的工程师”

这天正午,上海紫竹园晴空万里,微软服务器与开发工具事业部(STB)正在会议室进行一个午餐谈话,主题是“怎样成为优秀的工程师”。听众是来自各个部门的员工,大部分是年轻面孔。面对听众的是主持人和四位“大牛”,其中有三位是经理,一位是资深的个人贡献者(Individual Contributor,IC)。他们相同的是都有很强的技术背景,深谙什么是优秀的工程师。我们SQL Server中国研发中心的总经理孙博凯(Prakash Sundaresan)也落座其中。主持人先后问了数个问题请大牛们谈论,我将这些谈论记录下来,和大家分享:点击这里阅读全文。

 

30分钟内加载1TB 的数据——SSIS打破商业ETL工具的记录

许多企业拥有海量的数据,并将其存储在多个不同的数据源。为了给用户提供有意义和可靠的信息,企业需要提取、转换和加载数据(Extract, Transform, and Load data,简称 ETL)。SQL Server 集成服务 (SSIS)可以让企业把来自异构数据源的任意数据加载到数据库。2008年2月,微软宣布了SQL Server 集成服务数据加载的一个破记录壮举:SQL Server集成服务用不到30分钟的时间把1 TB 的数据从平面文件加载到SQL Server 2008。这比其他商业ETL工具的最佳时间快了30%。点击这里阅读全文。

 

升级到MSXML 6.0

由于历史原因,MSXML有许多版本共存,比如3.0、4.0、5.0和6.0。让我们的客户把他们的应用程序移植到MSXML 6.0上去是我们的最终目标。点击这里阅读全文。

 

简要介绍SQL Server 2008新的事件处理系统——SQL Server Extended Events

SQL Server Extended Events(下面简称XEvent)是SQL Server 2008里新加的事件处理系统,用来取代SQL Server原先的SQL Trace的跟踪机制。事件处理系统对一个复杂服务器系统的排错,调试是极为关键的。和SQL Server原来的事件处理系统相比较,XEvent具有下列的优势:点击这里阅读全文。

 

超轻量级MSXML多功能测试程序

MSXML是微软非托管代码栈中最为核心的XML服务集合,不但适合基于COM的开发应用,更是微软AJAX解决方案和客户端XSLT解决方案的核心组件。上一次我们介绍了一个基于HTML和MSXML6的超轻量级XPATH测试程序。本次我们将推出一个更全面的MSXML测试程序。这个程序可以验证XPath、XSLT、Schema和XDR,并支持Namespace。点击这里阅读全文。

 

使用微软SAP BI Connector组件分析处理数据

微软SAP BI Connector组件(Microsoft Connector for SAP BI)是由微软中国SQL Server商务智能团队开发的集成服务(Integration Services)新组件,它的主要功能是让用户更方便地在微软SSIS集成环境中与SAP NetWeaver BI交互数据。点击这里阅读全文。

 

Silverlight3的7个新功能

在刚刚结束的Mix09大会上(Mix是微软面向web开发者和设计者的会议),Silverlight团队的程序经理Joe Stegman介绍了silverlight3的许多让人兴奋的新功能,摘录如下:点击这里阅读全文。

 

.NET Interop入门-P/Invoke和Reverse P/Invoke

最近在论坛上经常看到一些基本的interop的问题,给我动力写完之前的.net interop入门系列,给刚刚涉足.NET  interop的朋友们一个大体上的概念。每每谈及.NET interop,我的脑中总是出现下面一幅图: 点击这里阅读全文。

 

成功从SBS 2003迁移到SBS 2008的关键

从SBS2003到SBS2008的迁移安装(Migration install)是SBS2008安装中常见的方式。在SBS官方博客上发布了一篇文章讲述了进行迁移安装的关键。点击这里阅读全文。

原文发表地址:http://blogs.technet.com/chinahpc/archive/2009/05/11/volunteertrip.aspx

    4月24日到29日,HPC中国研发团队和一些家人朋友,还有现已回到美国工作的前部门经理Alex Sutton,一行22人去了四川省旅游,不仅游览了绮丽秀美的九寨黄龙,还访问了震区都江堰的受灾群众安置点,最开心的是在我家乡的山村小学里见到了好多可爱的小朋友。相信不少朋友都听说过“多背一公斤”这样号召旅行者出行时多背一些物品给贫困山区小孩的故事,而这次把我们的集体旅游与志愿者行动结合起来,则是我们HPC全体成员的共同心愿。成行之前,作为一名积极的志愿者,我推荐了两个选项:去都江堰市龙池镇云华村,捐献旧笔记本电脑协助上海市闸北区热爱家园青年社区志愿者协会(下文简称“热爱家园”)开展电脑培训班,这是我去年曾经实地考察参与了前期调研的项目; 或是访问捐助我家乡县城里大山深处的“夫妻小学”,我搜到的南充日报报道来看他们的确非常需要帮助。让人喜出望外的是,最后我们不仅去了云华村,大多数的同事还去了我的家乡,好好利用了我们公司的每人每年三天的志愿者假期。我相信我们大多数人都乐于助人,但往往有这样那样的顾虑让我们不能成行,身体力行做个志愿者,并没有想象的那么困难。

    24日,从上海飞到成都,我们没时间休息,就汇同热爱家园的职员陈佩赶赴云华村,到了都江堰,“岷江黄浦江水水相融, 上海都江堰心心相连”的大幅标语格外显眼,有名的板房区“幸福家园”显得秩序井然,路边很多楼房的裂缝仍然清晰可见,但更多的是推土机和起重机在热火朝天地重建家园。而我在将近一年的离别之后重访故地,忍不住客串做起了导游,向大家介绍眼前的情景和地震时的故事:这块空地,曾经停放了好多军车搭建了好多帐篷,“铁军来了”、“有困难,找铁军”的横幅格外暖心;那条二王庙后门的公路上,曾经有检疫人员不辞辛劳地向来往车辆喷洒消毒剂;还有多次出现在新闻联播的紫坪铺水库,曾经有无数冲锋舟运走受灾群众,运来物资运来官兵运来希望。

多次出现在新闻联播的紫坪铺水库 仍在抢修中的龙池隧道

  (多次出现在新闻联播的紫坪铺水库)        (仍在抢修中的龙池隧道

云华村板房区 搬运物资到板房区

          (云华村板房区)                   (搬运物资到板房区)

    车开了近三个小时,穿过还在施工中的隧道,开过还在修建的龙池公路,终于到了龙池镇云华村的受灾群众安置点,也就是上海建工援建的板房区,上次来这里调研的时候,我还在上海建工的厨房蹭了几顿饭呢。可能是乡亲们还在劳动,小孩们还在上学,我们并没有见到太多村民,把5台笔记本电脑、若干路由器集线器插线板和长长短短的网线放在热爱家园的云华图书室后,我们走进一家农户,一位大姐和一位老奶奶热情地和我们聊了起来,从她们那熟悉的乡音中,我听到隐隐的伤痛,却流露出更强的坚韧与希望,还有一份真诚的感谢。我们带的东西并不多,也没有时间把网络环境全部搭好,只希望这一点点帮助对即将开展的电脑培训班有些作用。大山里的孩子和青年,急需电脑和互联网来获取信息,学习知识,建设自己的家乡。在返程的车上,我代表四川人由衷地感谢我的同事们愿意大老远地来看看震区,大家都说我太客气了,Ming更是说道:打在手上,全身都会痛,四川人民受灾了,全国人民都心痛。地震过去快一年了,我们见证灾区同胞自强不息重建家园,我们祝福灾区同胞平安幸福安居乐业。

等待图书室管理员 村民们搬进板房前的临时居所

       (等待图书室管理员)              (村民们搬进板房前的临时居所)

Ming与老乡聊天 我们在云华图书室外的合影

      (Ming与老乡聊天)                  (我们在云华图书室外的合影)

    4月28日,游完九寨沟和黄龙的美景之后,超过半数的同事跟我回家乡南充市营山县。不巧的是,连接成都和营山的达成铁路因为扩建施工暂时关闭,于是我们从成都十陵汽车站搭乘客车,耗时4个小时,匆匆吃了午饭,又坐上县团委老师帮我们联系的面包车沿着盘山公路开了2个小时,最后在崎岖的山路上步行了半个小时,到达了我们的目的地合兴乡糖房村大垭口“夫妻小学”。当我们抬着黑板提着礼物走近小学,远远地就听到了小孩子们嘹亮的歌声,心一下子被感动充满了。紧走几步,我看到了眼前的画面,廖老师正领着站得整整齐齐的小孩子们大声唱歌,他们最大的也只是在上二年级啊,歌声轻灵稚气,眼神清澈纯净,笑容天真无邪。还有不少学生家长,围了上来,老乡们不善言辞,但一看就知道是已经站在这里等了我们很久。

通往“夫妻小学”的崎岖山路 搬运黑板

   (通往“夫妻小学”的崎岖山路)                (搬运黑板)

从附近赶来欢迎我们的小村民 小朋友们唱歌欢迎我们

   (从附近赶来欢迎我们的小村民)          (小朋友们唱歌欢迎我们)

    老师领着学生们回到教室,幼儿园一个教室,一二年级一个教室。简陋的教室有一面是土墙,有一些大的裂缝,夏天很热,教室光线很暗,廖老师走上教室中间的一张课桌上,伸手拉了开灯的绳索,然后带领幼儿园的孩子们一起念自制黑板上的bpmf拼音,孩子们认真地齐声背诵帮助记忆的口诀“广播电台播播播”(b),“两个门洞摸摸摸”(m),窗外的我们和家长都开心地笑了,我想我们都看到了未来的希望。接着廖老师把两个教室的孩子集中到一起,带着他们唱起了一首“爱心叔叔”的歌,我们都很感动,不知道这是不是廖老师自己谱词谱曲的。第一排一个小女孩,长得有点像我的小侄女,我拉着她的手,问“你喜欢读书吗”,她一点也不怕我,也用小手拉着我的大手,扑闪着大眼睛说“喜欢,语文数学我都喜欢”。校长让我们给学生说些什么,因为有的小孩子听不懂普通话,George让我代表大家说说话。而我望着满满一教室可爱的小朋友,和充满期待的老师家长,一时不知说些什么好,他们需要太多的东西,而我们能提供的又太有限。最后我问了一堆问题:你们喜欢读书吗?你们喜欢你们的阳老师吗?你们喜欢你们的廖老师吗?阳老师和廖老师非常地辛苦对吗?我们都要好好学习好不好?得到的则是小孩子们一次更比一次大声的肯定回答。Alex用中文跟打了招呼,孩子们也都兴奋地叽叽喳喳,要跟见到的第一个老外交朋友。最后我们回到教室外的空地,George向校长和老师捐赠了我们带来的物品,大家还当场捐出七千多元,用于教学点的房租等校舍建设。

廖老师带领小朋友学拼音 Alex向小朋友问好

    (廖老师带领小朋友学拼音)                (Alex向小朋友问好)

“夫妻小学”全貌 教室窗外的学生家长

     (“夫妻小学”全貌)                    (教室窗外的学生家长)

George代表我们捐款、捐物

   (George代表我们捐款、捐物)

    校长和老师承诺会将这笔钱的用途告知我们,而我们每个人离开的时候也在心中思考着这样一些问题:怎么样才可以更好地长期帮助这些老师和孩子呢,如果我们有更多的资源,怎么样才能有效地利用起来呢,目前由我们公司或者个人来直接负责运营是不现实的,是不是有合适的非营利组织可以合作呢?这些问题尚在思考、探讨之中。如果您有意愿、有资源帮助大山深处的老师和孩子,有扶持他们长期发展的推荐方案,我们期待倾听您的声音。

 

 

                                                                                                                       魏臻

 

More Posts Next page »
 
Page view tracker