MDAC Component Checker 2.0发布了

2008年12月,在圣诞前夕SQL中国研发中心Data Programmability团队发布了MDAC Component Checker 2.0版本。 Component Checker的产生源于MDAC版本不兼容给应用软件带来的困扰。在MDAC的发展历程中,存在2.1、2.5、2.6、2.7和2.8多个版本。它曾绑定在不同的Microsoft产品中(Microsoft SQL Server、Microsoft Visual Studio、Microsoft Office、Microsoft Back Office以及一些其他的微软产品),也曾作为独立发布软件(madc_typ.exe)在MSDN上发布。现在,MDAC作为系统组件捆绑在Windows XP SP2以及以后的Windows系统中。 由于应用程序使用MDAC所遇到的大多数问题都与版本不匹配有关,早在2005年,Microsoft就发布了Component Checker 1.0,用于检测Microsoft MDAC的安装版本,并可诊断并报告安装相关的各种问题。此次推出的新版本Component Checker 2.0由SQL中国研发中心上海Data Programmability团队开发。新版本的改进和新功能包括: 支持更多的Windows平台 支持生成MDAC快照(适用于Windows XP SP3和Windows Server 2003 SP2) 支持64位的Windows 谈到Component Checker 2.0研发的经验和挑战时,软件工程师Simon Yuan说:“Component Checker 2.0提供了对更多的Windows平台的支持,并且是兼容较低版本的Windows平台的。同时我们也考虑到了用户重新安装了更高版本的MDAC独立安装包这种情况,并提供了相应的支持。在开发和测试过程中我们需要考虑Windows平台和MDAC组件之间的各种可能的组合,并在每一个我们所支持的平台上进行了大量的测试。Component Checker 2.0的开发中,我深刻体会到了Microsoft对产品质量的严格要求。” 如果你想了解更多Component Checker的信息,请访问 MDAC Utility: Component Checker。更多SQL中国研发团队的信息和动态,请继续关注我们的博客。 庄永真 Program Manager

2

现在可以下载MSXML4 SP3 Beta了

MSXML 团队很高兴地向大家宣布:现在可以下载试用MSXML 4.0 Service Pack 3 (SP3) Beta了! MSXML4 SP3 可以完全替代以前的MSXML4 SP1和MSXML4 SP2。MSXML4 SP3包含以下改进: 修复了许多安全缺陷 提高了软件的可靠性 MSXML 4 SP3适用于下列操作系统: Windows 2000 SP4 Windows XP SP2 Windows XP SP3 Windows Server 2003 SP1 Windows Server 2003 SP2 Windows Vista RTM Windows Vista SP1 Windows Server 2008 您的意见和建议对我们而言非常宝贵,因此请您: 下载安装MSXML 4.0 Service Pack 3 (SP3) Beta并确保您的软件能像以前一样正常运行。 通过Microsoft Connect把您的意见或发现的问题反馈给项目团队。请确保您已经注册过Microsoft…

1

SQL Server的中文资源

大家在查阅SQL Server的资料时,可能大多都是英文的文档。其实还有很多中文的资源可以查阅。比如: SQL Server 2008 新特性视频 SQL Server中文论坛 SQL Server 2008白皮书中文网页 SQL Server 中文技术文档和最佳实践 MSDN MVP中文技术文档中心 希望以上资源对大家更好的了解SQL Server 和 SQL Server2008有所帮助。 张瑞 Test Lead

1

体会Microsoft的更快、更高与更强——侧记TechEd 2008上海技术大会

2008年是奥运年,2008年对Microsoft来说也是至关重要的一年,多项重量级产品都在这一年发布。正如奥林匹克运动会所提倡的更快、更高与更强,在Microsoft这一年所发布的产品中,人们处处都可以看到Microsoft的更快、更高与更强的精神——在参加完TechEd 2008上海站的技术大会之后,我对此又有了更深切的感触。 TechEd 技术大会是Microsoft在全球为IT业内人士举办的年度技术教育大会。自1994年登陆中国以来,TechEd迄今为止已举办了13届。今年的TechEd技术大会分别在广州、上海和北京举办,与会者人数远远超过去年,达到6500多人。 图1 谢恩伟在2008 TechEd Keynote上介绍动态IT 2008年11月4日,上海站的TechEd技术大会在上海贵都大酒店盛大开幕了。微软中国研发集团服务器与开发工具事业部的总经理谢恩伟在Keynote上介绍了多款Microsoft服务器端最新产品和工具,包括Microsoft Virtualization、Windows HPC Server、SQL Server 2008以及Visual Studio 2008。在11月4日的Keynote上,微软及合作伙伴们对这些产品和工具进行了精彩的展示。对于IT经理们,最大的亮点莫过于Microsoft Virtualization产品的Demo。IT经理们在一天之中的忙碌工作以及遇到的各种问题被拍摄成一小段VCR,而Microsoft Virtualization产品针对VCR中各种问题都提供了快速而高效的解决方案。通过现场一位IT经理的现身说法,Microsoft产品的最新特性深深打动了在场听众的心。 作为TechEd 2008上海站SQL Server Booth中的一员,我也亲身感受到了TechEd与会者对SQL Server 2008新产品的热情和激动的心情。在SQL Server的展台周围有很多企业的IT架构人员和技术人员前来询问SQL Server产品的使用问题以及SQL Server 2008的新技术特性。与会者对SQL Server的存储能力和SQL Server商务智能(Business Intelligence – BI)中数据分析和挖掘关注度比较高。有些与会者所在公司的技术架构中并没有采用或者即将采用SQL Server数据库,他们对SQL Server新产品特性亦表现出了很高的关注度。我们展台派发的SQL Server 2008的试用光盘在当天下午第一节课程结束之前就被索取完毕。 图2 微软产品展区人头攒动 SQL Server 2008已经在今年7月份正式发布了,新产品同时凝结了Microsoft总部和中国SQL Server研发团队的努力和辛勤劳动。在4日、5日两天的课程中,来自美国 SQL Server Analysis Services的部门项目经理Donald Farmer和我所在SQL Server中 国研发中心SQL BI研发部门的部门经理赵晓燕一同主讲了《SQL Server 2008的BI新特性》和《商务智能的未来之路》两门课程。在4日的《SQL Server 2008的BI新特性》中,Donald和晓燕不仅对SQL…


在Internet Explorer中正确使用MSXML

我参与了IE7的开发过程,看到了在IE浏览器中形形色色使用MSXML的方法。显然有一些东西困扰着开发者:MSXML“混乱”的版本以及如何创建“正确”的实例。下面是一段非常常见的代码:if (Web.Application.get_type() == Web.ApplicationType.InternetExplorer) {  var progIDs = [ ‘Msxml2.DOMDocument.6.0’, ‘Msxml2.DOMDocument.5.0’, ‘Msxml2.DOMDocument.4.0’, ‘Msxml2.DOMDocument.3.0’, ‘Msxml2.DOMDocument’ ];   // MSXML5.0、MSXML4.0以及Msxml2.DOMDocument都存在问题  for (var i = 0; i < progIDs.length; i++) {    try {      var xmlDOM = new ActiveXObject(progIDs[i]);      return xmlDOM;    } catch (ex) {    }  }  return null;} 以上代码遍历progIDs数组并且实例化客户端版本最高的MSXML DOM然后返回给调用者。这段代码暗含: 兼容性我们尽力保持各个版本MSXML直接的兼容性,不过,他们之间仍然有不少差别。MSXML 3和MSXML 4是在XML拓荒期时实现的,从中我们学习到了许多经验。MSXML 5是为微软Office产品量身定做的。有时候我们不得不在不同版本上修改某些设计与实现。依次遍历不同的MSXML版本将更容易遇到不期而遇的由于版本行为差异引起的问题。 健壮性由于资源有限,我们不可能修复每个版本中的每个缺陷,于是我们针对性地把资源集中于MSXML 6(最新版本)和MSXML 3(最广泛使用的版本)。 测试成本依赖越多的MSXML版本意味着发布你的应用程序之前需要越多的测试。 在这篇文章中我将简要给出MSXML的历史、生命周期以及版本,通过一个例子提供网络中使用MSXML的最佳实践的细节,以及一些需要注意的地方。…

1

SQL Server团队博客

为了加强与客户的交流,微软SQL Server部门许多小组都维护着自己的博客。在这里你不但能找到内幕开发技巧,认识开发精英,捕获最新产品和技术动态,还有机会把你的问题或者期望直接传递给开发团队! SQL Server China R&D SQL Server Storage Engine PSS SQL Server Engineers SQL Server Security SQL Server Express The Data Platform Insider SQL Server Reporting Services Microsoft SQL ISV Program Management  Service Broker  SQL Server Manageability Policy-Based Management PERFGURU: Technical Blogs on All Kinds of Performance Issues  Data Development  ADO.NET  Astoria JDBC  SNAC  …

1

SQL Server Build系统

你知道SQL Server这么庞大的企业级数据库服务器产品是如何build出来的吗? 这有些相关的数据: 每个build 的大小在300GB左右。 每个完整的build需要几十台高端的服务器运行2.5天。 每个完整的build由几千个job、10000多个参数组成。 我们每天同时做20个左右的build,每周130个。 位于美国微软总部雷蒙德和北京的build团队能够保证build全天24小时不间断的顺利进行。 从去年至今,我们build team已经成功而准时地完成了数以千计的build。 也许你会问:你们的build怎么这么大?怎么需要这么长的时间?为什么你们每天要做这么多build? 为什么我们的一个build这么大?比如说你的32位中文零售开发版SQL Server的DVD,包括工具和帮助文档是4GB,那么你可以这样估算一下:首先加上一些内部的build信息和统计,以及用于debug的Symbol,然后乘以2(retail版,debug 版),再乘以3(CPU 类型:x86、x64和ia64),再乘以所有的版本数(企业版、开发版、标准版等),最后再乘以支持的语言数。不只1个TB 了吧?J 幸好SQL 2008 的setup 团队采用了consolidated setup模式,这样在一个语言包中,安装程序可以判定你的CPU类型并根据你输入的产品序列号,自动安装对应的版本。由此我们的build才压缩到了300GB。 为什么我们的一个build需要这么长时间?Build这么庞大的企业级数据库服务器产品是一个极其复杂的过程,况且SQL Server的build 系统已经是微软内最为高效的系统之一。她是图形化用户界面并且高度自动化的。历经60小时,多数build会顺利的自动完成并通知相关人员其build的状态及信息。如果build失败,其也会提供详细的错误信息用于debug。SQL Server的build 系统不仅如此易用和高效,同时可以灵活的适应某些特殊的需求和build工作流。SQL Server的build 系统是由Windows Workflow Foundation驱动的,其数以千计的job被并行或串行的分发到几十台 build机器上并完成。build的过程包括: 将几十GB的源文件及相关的所需文件和资源同步到build机器上 源代码静态分析 编译所有的可执行文件和测试文件并签名 生成系统数据库 优化 本地化 制作安装文件和安装包并签名 索引Symbol和源文件 我们每天做这么多的build正体现了我们如何支持整个SQL Server工程体系和构架: 首先需要声明的是我们随时都在为多个产品提供支持,比如当前的SQL Server 2005和即将发布的SQL Server 2008。 在SQL Server 2008的工程体系和构架中,我们将每个需要增加或增强的功能特性做成一个单独的分支,在这个功能特性开发和测试完成后,其代码才会合并到SQL Server的主线代码中。因此根据功能特性的优先级和大小,SQL Server分成了几十个不同的团队,每个团队包括了架构师、项目经理、开发和测试人员,帮助及案例文档专员,甚至科学家和科研人员。每个分支都需要build来进行及时的测试,因此有了这个我们当前每周需要的build个数——130。当build结束后,Test Execution team和其分支团队会执行自动测试来确保其代码的质量符合严格的要求和标准。最后当这个功能特性开发和测试完成后,其代码将会融入到SQL Server的主线代码中,然后其它各个分支团队将重新获取主线代码并融合其分支的当前代码,来保证和主线代码的同步。…

3

关于团队文化

在上一篇关于SQL Server中国研发团队的文章中,我提出“文化”是团队建设中领导层面临的最重要的挑战之一。我们如何确保团队伴随着“正确的”文化而成长?究竟什么才是“正确的”文化呢?在这篇文章中,我想比较深入地探讨这个问题。 让我们首先从“文化”这个词的定义谈起。韦氏词典将“文化”定义为:主条目:culture  读音:[‘kʌlʧə]功能:名词词源:Middle English,cultivated land,cultivation,from Anglo-French,from Latin cultura,from cultus, past participle 综合的人类知识、信仰和行为的一种模式,这种模式取决于学习能力和传播给下一代的能力 b:一个种族、宗教或社会团体的习惯信仰、社会形态和物质特征 c:一个机构或组织特征性的一套共同的态度、价值观、目标和实践  d:与一个特定领域、经济活动或社会特征相关联的一套价值观、约定或社会习俗。 如此说来,文化是指共同的态度、价值观、目标和行为。每个组织都有一种文化,无论这种文化是刻意培养出来的还是自然演化而来的,或是这二者的结合。有时候,一个组织会很明确地用语言描述出他们希望培养的价值观和文化属性。但是,大多数人都无法理解甚至不记得一个组织“强制”的文化应该是什么,这一点并不让人惊奇。我们每个人都伴随着某种文化背景成长,但估计很少有人会说,他们是通过阅读一份文档中的价值观描述而获得这种文化倾向的。多数人都是通过日常生活汲取文化营养,包括每日体验、行为、反应、正面或负面的反馈和累积,并且从接触到的不同的社会角色像我们的长辈、上司及同事感受文化影响。随着时间的推移,这些价值观念和行为模式就根植在我们的脑海中,我们自己也成为 “已有文化”的一部分,并开始向组织内的其它人传播这种文化。 研究显示,无论是个人抑或团体、组织,一旦染上某种文化就很难改变或“去除”。同时,就长期影响而言,要区分成功的组织和平均或低于平均水平的组织,“文化”元素是一个更可靠和更重要的衡量因素,其可靠性和重要性远远超过商业策略、一项具体的技术或流程优势,甚至超过特定的领导力优势,不论这种领导力是如何有魅力或富有远见的。恕我直言,这就是为什么让一个团队伴随着“正确的”文化起步是如此重要,不论每个组织如何定义“正确的”文化。 对一个像SQL Server中国研发团队这样的组织而言,显然很多“正确的”文化是遵循我们位于雷德蒙的“母团队”而来的。当然,这是在中国,我们会理解和适应以使我们自己的本地特色融入到文化中。但一些本质特征仍然是从雷德蒙的母团队中继承而来的,正是这些特征界定了我们是谁,以及我们的行为特征。那么,这些所谓的“SQL Server文化”是哪些呢?很难为这个积累多年的文化给出准确定义或归结为几个关键点,但我尝试在这里列出几点我认为是SQL团队文化的核心: 系统文化 我们是一个系统的团队。我们创建关键业务平台软件,数以万计的组织利用我们的软件建立和运行关键业务应用,而这些应用又被全世界范围内的数万人群使用,一天24小时,一年365天地不间断应用。我们开发的软件有着数年的生命周期,实际上往往是几十年。任何错误或弱点,无论它存在于我们的设计阶段、实现阶段或流程、方法学中,都可能而且肯定会被表现出来。所以对人的素质要求门槛很高!在这种环境下要取得成功,我们需要一种专业级工程师的思维(见下文)。业余选手不适合! IC文化 建设关键性系统软件是需要数年时间来学习的。我们常常在招聘工程师时告诉他们,尤其是对那些刚从大学毕业的人们,甚至要3到4年后他们才能真正在岗位上完全发挥生产力!虽然这听起来有点夸大,事实上是真的如此。工程师要学会客户需求的是什么,如何将其转变为一个产品或功能,什么是好的设计与坏的设计(或伟大的设计),如何权衡利弊,如何有效地撰写强大、安全、可靠、高可扩展性、高性能的代码,而且要易于维护和易于获得领域内的支持,要以有效的方式与团队一起工作,所有这些是需要数年之久才能学会的。这是一个由聪明的新的毕业生转变为专业级工程师的过程,这中间不存在任何捷径。 那么什么是IC呢?IC是微软术语,指个体贡献者(Individual Contributor,简称IC),与领导或经理相对应。在我们这样依赖高度技术技巧与知识的事业中,我们要非常重视个体贡献者。如果每一个聪明的工程师都打算在自己四年职业生涯后停止做开发而仅做管理工作,我们是无法建立像SQL Server这样的产品的。我常常列举这个统计数字:微软全球范围内有几十个或许数百个副总裁,但只有14个院士(我们很幸运,有2个院士在SQL Server)。我的意思并非是说副总裁不重要,但在微软,当然在SQL Server部门也绝对如此,我们非常重视那些愿意将整个职业生涯贡献给技术开发的人。在某种意义上说,比尔盖茨就是一个终极IC,当然他有下属,但他的主要角色是公司的首席软件架构师,帮助把握公司的未来技术方向。在微软,无论怎样强调IC角色和深厚技术知识的重要性都不过分。 事实上,我相信这一点是基础的基础,以至于我此刻想谈得远一点,而并非仅指SQL Server、微软或任何特定的公司。在我亚太区的旅行中,许多人表达了这样的信念或希望:亚太地区作为一个整体(尤其是几个特定国家如中国和印度)在世界经济体系中应该越来越多地承担起技术领导地位。显然,亚太地区有着丰富的人才,为这种可能提供了必要的条件。不过在我看来,同样毫无疑问的是,如果亚太地区真的要做到这点,即由在这里的实验室和公司主导长期的产品线和产业创新,就必须要创造一种重视深度技术成就的文化。在目前的环境下,当我和大学生们谈起他们的职业抱负时,10个里面就有8个想在毕业的几年内成为管理人员。说实在的,我们无法期望在这样的基础上建立下一代的技术领导地位。我认为就整个亚太区生态系统而言,而不仅仅是指某一特定公司或团体,建立一种重视深厚技术知识和IC的文化是势在必行的。 创新文化 数据库产业是一个成熟的一个产业:30多年的历史,每年全球超过200亿美元的年收入,人们很容易认为在这个阶段创新不再是这个产业驱动性的力量了。这样想就大错特错了!在之前的文章从数据库到全面的数据平台,我描述了该领域面临的前所未有广度和深度的挑战。为了应付这些挑战,创新必须是我们基因中的一个核心价值观,否则我们将很快没落。创新是可大可小的,技术上的创新或流程上的创新,但创新必须是深入到每个员工的日常生活和呼吸中的价值观。SQL Server有着创新的传统,甚至从根本上改变了这个成熟的产业,包括领先的易用性和自动化管理、在核心平台上集成BI功能、显著的简化开发者体验等。今天,我们继续着这一传统,在下一版本的SQL Server中有着许多突破性的创新如实体数据模型等。我们绝对需要在未来发展中继续注重创新。 聚焦客户 在今天这种超级紧迫的环境中,很容易仅仅关注竞争对手而忘记了客户。但至关重要的一点是,只有服务好你的客户才能击败竞争对手,而不是相反。聚焦客户,这不是某一个特殊部门或角色的工作。当然,公司肯定设有专门面向客户的部门,像我们的客户支持服务(Customer Support Services,简称CSS)和其他各种领域的组织。但聚焦客户是组织中每个人工作的重要职责。无论你是一个开发者、测试者、项目经理、架构师、甚至管理人员,不知道客户最终想要的是什么,你不可能做好你的工作!没有比失去与客户的联系更容易在行业里落后的了。在我们的团队中,每一个成员都有一项强制性的工作,那就是花一部分时间在客户上,不论是通过新闻组、论坛还是参加客户会议,或其他各种方式。 做正确的事 我可以继续讨论一些SQL Server和微软重视的其它价值观,例如尊重多样性、开放性、诚实但尊重、接受大挑战等,虽然这些都是非常棒的价值观,我们的确非常重视,但如果你什么都谈了,那就等于什么都没谈。所以我想以一个简要的价值观来总结,我称之为“做正确的事”。这听起来可能有点蠢,但这却是我们在SQL Server团队赖以为生的价值观。无论工作内容是关于顾客的,关于产品的,或是一个内部问题,这是指导我们日常工作的座右铭。我想举几个例子说明。我敢肯定,每个SQL Server客户直到今天都还记得Slammer蠕虫病毒。这一事件彻底改变了我们SQL Server团队的软件开发方式。当蠕虫病毒来袭时,我们其实刚刚通过一轮安全压力测试并发布了SQL Server的SP3,SP3实际上修补了蠕虫病毒所利用的漏洞。然而,一旦事情发生了,问题不再是我们是否已经发布了补丁。我们必须帮助客户备份系统,尽快地以安全的方式恢复系统运行。就短期而言,SQL Server团队费了很大力气给出工具和指导方针,帮助顾客恢复自己的系统。但我看到的是我们努力所带来的长期变化,我们开发过程的变化、我们备灾的变化、我们整个安全方针的变化。在过去几年中,这些努力的结果已经证明了自己,SQL Server已经证明自己是市场上最安全的产品之一。这意味着我们将不会再有弱点或漏洞吗?显然,答案是否定的。然而,我们可以说的是,我们每天都在努力着,努力使这种事件发生的可能性尽可能降低;而且如果这样的事件再次发生,我们已经在时刻准备着响应。 我想举的另一个例子是SQL Server 2005中的数据库镜像(Database Mirroring,简称DBM)功能。DBM是该版本中最重要和最受欢迎的功能之一,显然我们面临着压力要发布该功能。然而,快临近SQL Server…

2

做“以客户为中心”的产品研发

“Min,我知道你以前有客户支持的经验,有没有兴趣了解一下微软客户服务是什么样的?”Prakash眨眨眼睛,一副吊我胃口的神态。 “当然了。” “是这样,STB要在中国推广Frontline 项目,我推荐你作为第一个参与者,大概会花3周时间……” “啊,3周是不是长了点儿啊?SQL Server 2008马上就要发布了,我这儿还天天加班呢……”我有点后悔刚才答应得太痛快了。 “花这些时间是值得的。你知道,美国SQL Server团队里好多资深的同事从这个项目回来后,都说自己彻底改变了。” 我心里还是犯嘀咕:你确信他们都是往好的方向变化吗? 以上是本人荣幸地成为中国区Frontline项目第一人的过程。言归正传,先来说说这个Frontline项目到底是个啥东东吧:它是微软服务器与开发工具事业部(STB)为了由“以产品为中心”转变为“以客户为中心”推行的一系列计划中的一部分。参与这个项目的产品研发工程师将用整整2-3周时间近距离观察企业客户使用微软产品和技术的“真实世界”,理解他们实际工作中的迫切需求和“痛苦”,进一步思考如何开发更好的产品和技术。 第一周我在微软亚太区全球技术支持中心与工程师们交流,接听客户的产品支持电话并参与解决问题。余下两周在客户现场,直接参与应用系统部署并听取客户对产品和技术的反馈。 在支持中心的日程安排以小时计。第一天早上9点,准时向我的Mentor小邓报到,她花了一上午向我详细介绍了他们的责任范围、工作流程和使用的各种工具。来而不往非礼也,当天下午我也为技术支持中心的同事们举办了一个“数据库查询覆盖”的讲座。挑选这个题目我是花了心思的,一个是因为查询优化器是我的团队负责的组件,另外大家对查询优化也比较感兴趣。果然,下午的讨论很热烈。小邓要求每个人发言之前先自我介绍一下:叫啥名字,负责什么组件,哪儿人,家里娃多大了……印象最深的是一位绰号“BI一条龙”的同事,他负责集成服务、分析服务和报表服务,在BI方面是位专家。这种介绍方式安排得太周到了,我很快和大家熟悉起来。趁热打铁,讲座后我就和负责各组件的同事约好了时间,周二、周三,和热线部门的几位同事在一起工作;周四是Internet支持部门;周五上午是Supportability,下午访问合作伙伴售前支持。 Internet 支持工程师的工作很有意思,我第一次知道我们的技术论坛等网上社区是有专职人员参予问题解答的。我也使用他们的工具浏览了一下未解答的问题,从SQL实现到数据集成服务问什么的都有,想回答还真不那么容易。这也多少反映了研发人员和技术支持工程师的区别,我们对产品局部功能如何实现了解比较深入,支持工程师则对整个解决方案和产品特性了解的都很全面。 在Supportability部门的半天经历也让我获益匪浅,之前我可分不清楚什么是可支持性,什么是可管理性(Manageability)。在负责SQL Server Supportability的小平跟我讲解之后,我算彻底是明白了。可支持性是指软件诊断、修复和预防问题的能力;而可管理性则指监控、维护和控制软件的能力。举例来说,SQL Server支持在线创建索引,支持数据文件自动增长,自动维护统计值,这说明可管理性比较好;可支持性则反映在解决问题上,比如你会用DBCC检查和修复数据文件,也会用到profiler去帮助你分析性能问题。 在技术支持中心一周结束后,我又现场参与了SQL Server 2008试用客户的应用部署。他们的应用把SQL Server 2008的空间数据支持新功能与商业智能报表相结合,非常直观的展现了各大区域的业务数据。相信随着数据库对空间数据支持的越来越完善,客户开发越来越方便,这种类型的应用会很快流行起来。 最后一周,我和同组的另一位测试开发工程师胡雷访问了一个重要银行客户。通过与项目实施和系统管理人员的交谈,我们了解到用户对SQL Server的能力和易管理性颇为认可,特别是听到用户的几个应用数据量都在n个TB,让我心里颇有些高兴:我们对企业级数据库的重视还是有点成绩的嘛。当然也有批评,比如恢复数据库备份的时候,那个容易被忘掉的“MOVE TO”子句,咋就不能多给点儿提示呢?这个这个,虚心接受。我们就是为了收集意见来的,一定会把中国客户的意见转达到整个SQL Server产品开发团队。 应要求,我们也向客户介绍了SQL Server 2008的情况。客户对一些对银行金融应用相关的新特性,比如外部加密支持、外部密钥管理和可覆盖查询的审计还是很感兴趣的。针对BI数据压缩、数据库备份压缩这样的新功能,他们也询问了很多细节问题。毕竟对TB级的数据库,压缩不单可以提高IO效率,也能节省存储设备上的投资。 为期三周的Frontline项目结束了,比我接受任务时想象的要快得多。我彻底改变了吗?不知道。但是我对什么是好的软件产品的理解有了很大改变:功能强大,有各种超酷特性很重要,但更重要的是能直接满足客户的需求。一个好的产品还要易于使用、方便管理,这叫高可管理性;客户使用上出了问题要容易诊断,最好还能自动修复,这叫高可支持性。 何民 原文发表于服务世界 开发未来。

1

微软为开发人员提供的成长环境

时间过得飞快,不知不觉来到SQL Server中国研发中心(SQL CRD)已半年多了。简单地记录一下自己的感想吧,免得再过些日子就全忘了 J 这半年来,作为一个SDE,我感触最深的就是微软为一个开发人员成长所提供的优越环境,包括世界级的项目机会、丰富的技术资源,以及大量的培训交流。 来微软之前,我和很多人一样,担心从事的会是一些边缘性的工作,无法接触到核心技术。事实证明我的担心完全是多余的,我们和Redmond总部的开发组在同一个平台上工作,共同应对各种各样的技术挑战。例如,我们组开发的产品是SQL Server Integration Service (SSIS),它是一个ETL工具,用于数据的抽取、转换和加载。当面临数据仓库的海量数据环境时,其核心引擎的性能至关重要。在这一点上,遇到的问题、可能的算法改进等,都是在整个组内讨论解决方法的,如果你的算法能有效提高性能,就会被采纳。考虑到微软产品的巨大影响力,你的每一个改进都将影响世界各地的亿万用户,这种成就感是难以名状的。 除了共同改进产品外,中国团队也独立负责一些组件,例如我们SSIS上海小组正忙于SAP BI Connector组件的研发。我们需要全面负责该组件所有的事项,从设计、开发、测试、文档到发布,我们上海小组都需要全面负责、协调各方面的资源。在SSIS下一个版本中,更是计划将核心引擎的很大部分放到中国来开发。在这种世界级、平台级的核心软件开发过程中,开发人员可以接触到最先进的技术,迅速地成长起来。 微软紧密的全球化协作开发也提供了难得的项目学习体验。由于工作需要,我们经常会在即时通信工具Office Communicator上和Redmond总部的开发人员探讨一些问题,然后发现这些问题涉及到其它组,于是又和印度的开发组交流。随后又收到另一个国家的微软顾问的信,希望你帮忙解答产品相关的问题。这不得不让人感叹,软件和互联网真的已经把地球变成了平的。在这种紧密的全球化协作开发中,一个技术人员的语言能力、沟通技巧、技术阅历都会得到迅速的提高。 除了这些世界级、国际化的项目机会外,微软内部丰富的技术资源更是开发人员成长的宝典。作为全球软件行业的旗舰,微软几十年来开发出众多影响深远的经典软件。这些软件研发过程中的经验教训经过一代代的积累,形成了微软内部的异常丰富的技术资源,包括大量的文档、流程和工具。打开SQL Server部门内部的服务器,各种各样的概念、流程和工具软件令人眼花缭乱。以至于我经常感叹,即使想把SQL Server部门内部应用的软件过程和工具等基本掌握,就是个令人望而生畏的任务,更不用提还有那么多其它的产品部门了。当软件工程课本上枯燥的理论化为日常工作中一个个真实的流程、工具时,一个初学者也会迅速成长为一个专业的软件工程师。 最后,微软为员工提供了丰富的培训交流,包括各种讲座、课程和人员交流计划。例如,目前SQL CRD上海就和Redmond有一个双向的交流学习项目。一个称为“丝绸之路”计划,它资助中国的开发人员去Redmond学习工作。另一个则称为“马可波罗”计划,它是反过来资助Redmond的人员到中国来工作一段时间。我在去年入职后,经过短暂的一段熟悉时间后,即受“丝绸之路”计划资助,派往Redmond和总部人员一起工作六周左右。到现在为止,我们SQLCRD BI组的正式员工几乎都被派出学习了一段时间。无论是在技术还是交流上,我们都从这些经历中获益匪浅。 丁晓宁

4