<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_北京的201个蓝天</title><subtitle type="text">徐磊的博客 - 微软区域总监（Microsoft Regional Director），最有价值专家（MVP 2006 -2010），关注敏捷开发，Scrum模式，微软技术。</subtitle><id>http://feed.cnblogs.com/blog/u/11553/rss</id><updated>2011-11-17T09:01:26Z</updated><author><name>LEI XU</name><uri>http://www.cnblogs.com/ups216/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ups216/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/11553/rss"/><entry><id>http://www.cnblogs.com/ups216/archive/2011/10/09/2203517.html</id><title type="text">TechEd2011 Session - Visual Studio ALM项目管理 端到端的跟踪与控制</title><summary type="text">今年的TechEd 2011上我会和大家分享的话题是：Visual Studio ALM项目管理 端到端的跟踪与控制。 如果你对ALM（应用生命周期管理），Team Foundation Server，Visual Studio 感兴趣，一定不要错过.Code: DEV-T-200-7 时间: 2011-10-12, 8:30 - 9:30 地点: 分会场 3 官网地址: http://technet.microsoft.com/zh-cn/teched2011_session 这个Session钟我主要会和大家交流一下内容： 项目管理：Project Se...</summary><published>2011-10-09T04:44:00Z</published><updated>2011-10-09T04:44:00Z</updated><author><name>LEI XU</name><uri>http://www.cnblogs.com/ups216/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ups216/archive/2011/10/09/2203517.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ups216/archive/2011/10/09/2203517.html"/><content type="html">&lt;div&gt;&lt;p&gt;&lt;span style="font-family: 宋体"&gt;今年的&lt;/span&gt;TechEd 2011&lt;span style="font-family: 宋体"&gt;上我会和大家分享的话题是：&lt;strong&gt;Visual Studio ALM项目管理 端到端的跟踪与控制。&lt;/strong&gt;&lt;/span&gt;  &lt;/p&gt; &lt;p&gt;&lt;span style="font-family: 宋体"&gt;如果你对&lt;/span&gt;ALM&lt;span style="font-family: 宋体"&gt;（应用生命周期管理），&lt;/span&gt;Team Foundation Server&lt;span style="font-family: 宋体"&gt;，&lt;/span&gt;Visual Studio &lt;span style="font-family: 宋体"&gt;感兴趣，一定不要错过&lt;/span&gt;.&amp;nbsp;Code: DEV-T-200-7 &lt;span style="font-family: 宋体"&gt;时间&lt;/span&gt;: 2011-10-12, 8:30 - 9:30 &lt;span style="font-family: 宋体"&gt;地点&lt;/span&gt;: &lt;span style="font-family: 宋体"&gt;分会场&lt;/span&gt; 3 &lt;span style="font-family: 宋体"&gt;官网地址&lt;/span&gt;: &lt;a href="http://technet.microsoft.com/zh-cn/teched2011_session"&gt;http://technet.microsoft.com/zh-cn/teched2011_session&lt;/a&gt;&amp;nbsp;&amp;nbsp;  &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.almnetworks.net/image.axd?picture=Windows-Live-Writer/TechEd-2011-China-Session--Visual-Studio/09B11CC9/clip_image002.jpg"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px" src="http://www.almnetworks.net/image.axd?picture=Windows-Live-Writer/TechEd-2011-China-Session--Visual-Studio/0FC84397/clip_image002_thumb.jpg" alt="clip_image002" title="clip_image002" border="0" height="177" width="244" /&gt;&lt;/a&gt; &amp;nbsp;  &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family: 宋体"&gt;这个&lt;/span&gt;Session&lt;span style="font-family: 宋体"&gt;钟我主要会和大家交流一下内容：&lt;/span&gt;  &lt;/p&gt; &lt;p&gt;&lt;span style="font-family: 宋体"&gt;项目管理：&lt;/span&gt;Project Server &amp;amp; TFS&lt;span style="font-family: 宋体"&gt;集成：打破&lt;/span&gt;PMO&lt;span style="font-family: 宋体"&gt;与&lt;/span&gt;DevTeam&lt;span style="font-family: 宋体"&gt;的信息屏障&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: 宋体"&gt;团队管理：流程模版，任何团队，任何流程&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: 宋体"&gt;配置管理：持续集成，完成规范，计划质量&lt;/span&gt;&amp;nbsp;&amp;nbsp;  &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family: 宋体"&gt;这次的内容很多，因为&lt;/span&gt;ALM&lt;span style="font-family: 宋体"&gt;是一个非常大的话题，涵盖了软件开发中的方方面面；不过这一次我会集中和大家介绍第一部分的内容，就是&lt;/span&gt;Project Server&lt;span style="font-family: 宋体"&gt;的集成功能。这个功能还非常的新，是今年年初的时候随着&lt;/span&gt;TFS SP1&lt;span style="font-family: 宋体"&gt;一起发布的。在我和客户交流的过程中，我发现非常多的用户在使用&lt;/span&gt;Project&lt;span style="font-family: 宋体"&gt;管理他们的项目，对于许多的项目经理来说，&lt;/span&gt;Project&lt;span style="font-family: 宋体"&gt;是非常强大的工具，更重要的是他们非常习惯于使用&lt;/span&gt;Project&lt;span style="font-family: 宋体"&gt;；如果让这些项目经理能够使用他们所熟悉的工具与开发团队沟通，并进行控制和管理就是本次&lt;/span&gt;session&lt;span style="font-family: 宋体"&gt;的主要话题；另外，使用&lt;/span&gt;Project Server&lt;span style="font-family: 宋体"&gt;我们也可以很方便的对大型项目，和多个项目集进行集中管理，综合调配资源。&lt;/span&gt;&amp;nbsp;&amp;nbsp;  &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family: 宋体"&gt;这一次的&lt;/span&gt;session&lt;span style="font-family: 宋体"&gt;中会有非常详细的演示，我会和我的同事采用角色扮演的方式演示项目管理中的几个典型场景，比如：自上而下的项目规划，项目经理实时获取项目进度，审批项目变更等等。相信这是很多项目经理非常关心的话题。&lt;/span&gt; Session&lt;span style="font-family: 宋体"&gt;剩余的时间我会和大家交流两个话题，流程模板和质量控制。&lt;/span&gt;&amp;nbsp;&amp;nbsp;  &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family: 宋体"&gt;这次&lt;/span&gt;TechEd&lt;span style="font-family: 宋体"&gt;上还有非常多的其他有关于开发工具，和开发平台的&lt;/span&gt;session&lt;span style="font-family: 宋体"&gt;，如果你感兴趣，一定要去。特别推荐的是&lt;/span&gt;Sam&lt;span style="font-family: 宋体"&gt;的&lt;/span&gt;vNext session&lt;span style="font-family: 宋体"&gt;，相信会非常精彩。如果说我的&lt;/span&gt;session&lt;span style="font-family: 宋体"&gt;所讲的是现实，他的&lt;/span&gt;session&lt;span style="font-family: 宋体"&gt;讲的就将是理想，而且是很实际可行的理想。&lt;/span&gt;&amp;nbsp;&amp;nbsp;  &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family: 宋体"&gt;另外：这次我会经常在&lt;/span&gt;Visual Studio&lt;span style="font-family: 宋体"&gt;产品展示台处，如果您有任何关于&lt;/span&gt;ALM&lt;span style="font-family: 宋体"&gt;方面的问题，欢迎来这里交流。&lt;/span&gt;&amp;nbsp;  &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Architect: &lt;br /&gt; DEV-T-200-3: Jeffrey Zhou&lt;span style="font-family: 宋体"&gt;使用&lt;/span&gt;Visual Studio 2010 &lt;span style="font-family: 宋体"&gt;旗舰版中的构架工具来理解你的系统&lt;br /&gt; &lt;/span&gt;DEV-T-200-6: Vision Wang &lt;span style="font-family: 宋体"&gt;客户案例分享&lt;/span&gt; - &lt;span style="font-family: 宋体"&gt;通过&lt;/span&gt;Visual Studio 2010 Ultimate &lt;span style="font-family: 宋体"&gt;发现和改进企业信息架构&lt;/span&gt;&amp;nbsp;&amp;nbsp;  &lt;/p&gt; &lt;p&gt;Testing: &lt;br /&gt; DEV-T200-5: Jianbo Li &lt;span style="font-family: 宋体"&gt;有效的系统功能测试&lt;/span&gt; - &lt;span style="font-family: 宋体"&gt;从手工测试到自动化测试，&lt;/span&gt;Visual Studio&lt;span style="font-family: 宋体"&gt;功能测试剖析&lt;/span&gt;&lt;span&gt; &lt;br /&gt; &lt;/span&gt;DEV-T-200-2: Hao Xu Web&lt;span style="font-family: 宋体"&gt;应用系统性能测试与分析&lt;/span&gt; &lt;span style="font-family: 宋体"&gt;－&lt;/span&gt; &lt;span style="font-family: 宋体"&gt;使用&lt;/span&gt;Visual Studio 2010 Ultimate &lt;br /&gt; DEV-T-200-10: Darshan Desai/Cheng Yin &amp;amp;ndash; Visual Studio 2010&lt;span style="font-family: 宋体"&gt;让&lt;/span&gt;&amp;amp;rdquo;&lt;span style="font-family: 宋体"&gt;缺陷无法再现（&lt;/span&gt;No Repro&lt;span style="font-family: 宋体"&gt;）成为绝响&lt;/span&gt; &amp;nbsp;  &lt;/p&gt; &lt;p&gt;LightSwitch &lt;br /&gt; DEV-T-200-8: Suwei Gui Visual Studio LightSwitch - 30&lt;span style="font-family: 宋体"&gt;分钟快速构建商业应用&lt;/span&gt;  &lt;/p&gt; &lt;p&gt;C++: &lt;br /&gt; DEV-T-300-1: Rong Lu &lt;span style="font-family: 宋体"&gt;使用&lt;/span&gt;Visual Studio vNext&lt;span style="font-family: 宋体"&gt;全面管理&lt;/span&gt;C++&lt;span style="font-family: 宋体"&gt;程序开发生命周期&lt;/span&gt;&lt;span&gt; &lt;br /&gt; &lt;/span&gt;DEV-T-300-9: Jason Yang &amp;nbsp;&lt;span style="font-family: 宋体"&gt;如何利用&lt;/span&gt; Visual Studio C++ &lt;span style="font-family: 宋体"&gt;代码分析功能提高软件质量&lt;/span&gt;&amp;nbsp;  &lt;/p&gt; &lt;p&gt;vNext: &lt;br /&gt; DEV-T-200-4: Sam Guckenheime/Jackson Liao &amp;nbsp;&lt;span style="font-family: 宋体"&gt;深入浅出，了解&lt;/span&gt;Visual Studio 11 &amp;nbsp;  &lt;/p&gt;  Azure: &lt;br /&gt; DEV-T-200-11: Wei Xia&lt;span style="font-family: 宋体"&gt;云中开发软件研发模式的未来&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;a href="http://www.almnetworks.net/zh-CN/post/2011/10/09/TechEd-2011-China-Session-Visual-Studio-ALM-End-to-End-tracking-and-control.aspx"&gt;http://www.almnetworks.net/zh-CN/post/2011/10/09/TechEd-2011-China-Session-Visual-Studio-ALM-End-to-End-tracking-and-control.aspx&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ups216/aggbug/2203517.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ups216/archive/2011/10/09/2203517.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ups216/archive/2010/11/26/1888517.html</id><title type="text">微软云计算培训 (ethos)</title><summary type="text">Normal0falsefalsefalseEN-USZH-CNX-NONE培训介绍:Ethos (www.ethos.com.cn)是业内领先的云计算技术与咨询服务提供商，我们计划在十二月初开展一次为期3个晚上的微软云计算技术培训。公司介绍:Ethos是首批在欧洲和中国提供云计算解决方案的公司之一，也是微软中国在大中华区开展云计算业务的主要合作伙伴。Ethos多次被邀请参加微软的Azure相关活...</summary><published>2010-11-26T02:26:00Z</published><updated>2010-11-26T02:26:00Z</updated><author><name>LEI XU</name><uri>http://www.cnblogs.com/ups216/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ups216/archive/2010/11/26/1888517.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ups216/archive/2010/11/26/1888517.html"/><content type="html">&lt;!--[if gte mso 9]&gt;&lt;xml&gt;&#xD;
&lt;w:WordDocument&gt;&#xD;
&lt;w:View&gt;Normal&lt;/w:View&gt;&#xD;
&lt;w:Zoom&gt;0&lt;/w:Zoom&gt;&#xD;
&lt;w:TrackMoves/&gt;&#xD;
&lt;w:TrackFormatting/&gt;&#xD;
&lt;w:PunctuationKerning/&gt;&#xD;
&lt;w:ValidateAgainstSchemas/&gt;&#xD;
&lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;&#xD;
&lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;&#xD;
&lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;&#xD;
&lt;w:DoNotPromoteQF/&gt;&#xD;
&lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;&#xD;
&lt;w:LidThemeAsian&gt;ZH-CN&lt;/w:LidThemeAsian&gt;&#xD;
&lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;&#xD;
&lt;w:Compatibility&gt;&#xD;
&lt;w:BreakWrappedTables/&gt;&#xD;
&lt;w:SnapToGridInCell/&gt;&#xD;
&lt;w:WrapTextWithPunct/&gt;&#xD;
&lt;w:UseAsianBreakRules/&gt;&#xD;
&lt;w:DontGrowAutofit/&gt;&#xD;
&lt;w:SplitPgBreakAndParaMark/&gt;&#xD;
&lt;w:EnableOpenTypeKerning/&gt;&#xD;
&lt;w:DontFlipMirrorIndents/&gt;&#xD;
&lt;w:OverrideTableStyleHps/&gt;&#xD;
&lt;w:UseFELayout/&gt;&#xD;
&lt;/w:Compatibility&gt;&#xD;
&lt;m:mathPr&gt;&#xD;
&lt;m:mathFont m:val="Cambria Math"/&gt;&#xD;
&lt;m:brkBin m:val="before"/&gt;&#xD;
&lt;m:brkBinSub m:val="&amp;#45;-"/&gt;&#xD;
&lt;m:smallFrac m:val="off"/&gt;&#xD;
&lt;m:dispDef/&gt;&#xD;
&lt;m:lMargin m:val="0"/&gt;&#xD;
&lt;m:rMargin m:val="0"/&gt;&#xD;
&lt;m:defJc m:val="centerGroup"/&gt;&#xD;
&lt;m:wrapIndent m:val="1440"/&gt;&#xD;
&lt;m:intLim m:val="subSup"/&gt;&#xD;
&lt;m:naryLim m:val="undOvr"/&gt;&#xD;
&lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;&#xD;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;&#xD;
&lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"&#xD;
DefSemiHidden="true" DefQFormat="false" DefPriority="99"&#xD;
LatentStyleCount="267"&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Table Grid"/&gt;&#xD;
&lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Shading"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light List"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Grid"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Dark List"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Shading"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful List"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Grid"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"&#xD;
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;&#xD;
&lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;&#xD;
&lt;/w:LatentStyles&gt;&#xD;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;&#xD;
&lt;style&gt;&#xD;
/* Style Definitions */&#xD;
table.MsoNormalTable&#xD;
{mso-style-name:"Table Normal";&#xD;
mso-tstyle-rowband-size:0;&#xD;
mso-tstyle-colband-size:0;&#xD;
mso-style-noshow:yes;&#xD;
mso-style-priority:99;&#xD;
mso-style-parent:"";&#xD;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;&#xD;
mso-para-margin:0cm;&#xD;
mso-para-margin-bottom:.0001pt;&#xD;
mso-pagination:widow-orphan;&#xD;
font-size:10.5pt;&#xD;
mso-bidi-font-size:11.0pt;&#xD;
font-family:"Calibri","sans-serif";&#xD;
mso-ascii-font-family:Calibri;&#xD;
mso-ascii-theme-font:minor-latin;&#xD;
mso-hansi-font-family:Calibri;&#xD;
mso-hansi-theme-font:minor-latin;&#xD;
mso-bidi-font-family:"Times New Roman";&#xD;
mso-bidi-theme-font:minor-bidi;&#xD;
mso-font-kerning:1.0pt;&#xD;
mso-ansi-language:EN-US;}&#xD;
&lt;/style&gt;&#xD;
&lt;![endif]--&gt;&#xD;
&lt;p &gt;&lt;img src="http://www.almnetworks.net/image.axd?picture=2010%2f11%2fwindows_azure_300x169.jpg" alt="" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-family: 宋体"&gt;培训介绍&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span&gt;Ethos (&lt;a href="http://www.ethos.com.cn/"&gt;www.ethos.com.cn&lt;/a&gt;)&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;是业内领先的云计算技术与咨询服务提供商，我们计划在十二月初开展一次为期&lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;个晚上的微软云计算技术培训。&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-family: 宋体"&gt;公司介绍&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span&gt;Ethos&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;是首批在欧洲和中国提供云计算解决方案的公司之一，也是微软中国在大中华区开展云计算业务的主要合作伙伴。&lt;/span&gt;&lt;span&gt;Ethos&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;多次被邀请参加微软的&lt;/span&gt;&lt;span&gt;Azure&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;相关活动并发表演讲。更多信息请参见公司网站&lt;/span&gt;&lt;span&gt;&lt;a href="http://www.ethos.com.cn/"&gt;www.ethos.com.cn&lt;/a&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-family: 宋体"&gt;培训内容：&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p style="margin-left: 33pt; text-indent: -18pt" &gt;&lt;span&gt;&lt;span&gt;-&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Azure&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;平台介绍&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p style="margin-left: 33pt; text-indent: -18pt" &gt;&lt;span&gt;&lt;span&gt;-&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Tahoma','sans-serif'; color: black"&gt;Windows Azure: &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 宋体; color: black"&gt;介绍&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Tahoma','sans-serif'; color: black"&gt;Windows&#xD;
Azure &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 宋体; color: black"&gt;的&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Tahoma','sans-serif'; color: black"&gt;Storage (Table, Queue, Blob)&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 宋体; color: black"&gt;和&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Tahoma','sans-serif'; color: black"&gt;Compute&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p style="margin-left: 33pt; text-indent: -18pt" &gt;&lt;span&gt;&lt;span&gt;-&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Tahoma','sans-serif'; color: black"&gt;SQL Azure &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 宋体; color: black"&gt;（架构、使用、部署、迁移、安全、备份、还原）&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p style="margin-left: 33pt; text-indent: -18pt" &gt;&lt;span&gt;&lt;span&gt;-&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;演示及其他&lt;/span&gt;&lt;span&gt;Azure&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;技术&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p style="margin-left: 33pt; text-indent: -18pt" &gt;&lt;span&gt;&lt;span&gt;-&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;学员现场操作练习&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span&gt;Ethos&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;将提供：&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p style="margin-left: 33pt; text-indent: -18pt" &gt;&lt;span&gt;&lt;span&gt;-&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Azure&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;平台的访问权限&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p style="margin-left: 33pt; text-indent: -18pt" &gt;&lt;span&gt;&lt;span&gt;-&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;所有必需的软件、硬件等&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p style="margin-left: 33pt; text-indent: -18pt" &gt;&lt;span&gt;&lt;span&gt;-&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;培训讲师及设备&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p style="margin-left: 33pt; text-indent: -18pt" &gt;&lt;span&gt;&lt;span&gt;-&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;晚餐&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-family: 宋体"&gt;培训时间：&lt;/span&gt;&lt;span&gt;2010&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;年&lt;/span&gt;&lt;span&gt;12&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;月&lt;/span&gt;&lt;span&gt;8&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;日、&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;日、&lt;/span&gt;&lt;span&gt;14&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;日，每晚&lt;/span&gt;&lt;span&gt;6:30&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;至&lt;/span&gt;&lt;span&gt;9:00&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-family: 宋体"&gt;培训费用：每人&lt;/span&gt;&lt;span&gt;300&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;元&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;收取费用主要为了&lt;/span&gt;&lt;span&gt;Cover&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;场地、晚餐、讲师等成本&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-family: 宋体"&gt;为了更好的提供一对一指导，课程人数限制在&lt;/span&gt;&lt;span&gt;15&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;人，先到先得！&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-family: 宋体"&gt;如果您有&lt;/span&gt;&lt;span&gt;1-2&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;年的&lt;/span&gt;&lt;span&gt;.NET&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;开发经验，对云计算和&lt;/span&gt;&lt;span&gt;Dynamics&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;等新技术有浓厚兴趣，良好的中文及英文沟通能力，我们热烈欢迎您的加入，同时也欢迎有相关经验的在校学生参加。&lt;strong&gt;培训结束通过测试的参加者有机会获得在&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span&gt;Ethos&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: 宋体"&gt;的工作机会。&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/strong&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p &gt;&lt;span style="font-family: 宋体"&gt;如有兴趣，请与&lt;/span&gt;&lt;span &gt;&lt;span&gt;&lt;a href="mailto:tianli@ethos.com.cn"&gt;tianli@ethos.com.cn&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体"&gt;联系。&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;img src="http://www.cnblogs.com/ups216/aggbug/1888517.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ups216/archive/2010/11/26/1888517.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ups216/archive/2010/11/01/1888518.html</id><title type="text">PDC10 - 微软宣布TFS成功移植到云计算平台Windwos Azure</title><summary type="text">很长时间没有写blog了，因为最近实在太忙。用我的msn签名来说就是busy as a donkey!  而且最近的重点由点偏移ALM的范畴，更多的开始研究云计算的内容了，一方面是公司项目的需要，一方面也想看看一些实际的技术内容。基本上过去几周我的生活是，白天：Silverlight + Entity Framework + SQL 2008 R2; 晚上是：Windows Azure。真的感觉自...</summary><published>2010-11-01T02:08:00Z</published><updated>2010-11-01T02:08:00Z</updated><author><name>LEI XU</name><uri>http://www.cnblogs.com/ups216/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ups216/archive/2010/11/01/1888518.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ups216/archive/2010/11/01/1888518.html"/><content type="html">&lt;p&gt;很长时间没有写blog了，因为最近实在太忙。用我的msn签名来说就是busy as a donkey! &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://www.almnetworks.net/image.axd?picture=2010%2f11%2funtitled.bmp" alt="" width="425" height="328" /&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;而且最近的重点由点偏移ALM的范畴，更多的开始研究云计算的内容了，一方面是公司项目的需要，一方面也想看看一些实际的技术内容。基本上过去几周我的生活是，白天：Silverlight + Entity Framework + SQL 2008 R2; 晚上是：Windows Azure。真的感觉自己是头驴子，没关系，不是骡子就好。 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;上周末的PDC10实在让人激动，看到了很多新鲜的应用，特别是Pixar的云计算渲染平台，真的是非常的棒。不过最让我激动地是在keynote里面看到了brian harry，这个家伙很少在微软的keynote露面的，虽然还是他那副Farmer的样子，还是觉得挺亲切的。当然，最重要的还是他宣布了TFS在云平台的移植成功：&lt;a href="http://blogs.msdn.com/b/bharry/archive/2010/10/28/tfs-on-windows-azure-at-the-pdc.aspx"&gt;http://blogs.msdn.com/b/bharry/archive/2010/10/28/tfs-on-windows-azure-at-the-pdc.aspx&lt;/a&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;其实这个事情的意义不仅仅是微软为TFS的商业模式有增加了一个选择，在我看来更重要的是它传达了一个信息，像TFS这样复杂的应用都是可以在Azure上成功移植的，我们的程序也都可以，而且这是有可以重复使用的解决方案的。 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;Brian在他的blog中列举了一系列的问题和解决方法非常值得我们参考。 &#xD;
&lt;/p&gt;&#xD;
&lt;img src="http://www.cnblogs.com/ups216/aggbug/1888518.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ups216/archive/2010/11/01/1888518.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ups216/archive/2010/08/25/1807904.html</id><title type="text">配置TFS服务器所需要的数据库权限</title><summary type="text">原文: http://www.almnetworks.net/zh-CN/post/2010/08/25/Database-Permissions-Required-to-Configure-TFS.aspx大多数时候，我们使用SQL Admin来安装TFS服务器是没有任何问题的，但是你要碰上一个留着大胡子的DBA的话，恐怕就没有那么简单了。很多的大公司对安全问题非常重视，所以我们还是需要了解到底...</summary><published>2010-08-25T02:22:00Z</published><updated>2010-08-25T02:22:00Z</updated><author><name>LEI XU</name><uri>http://www.cnblogs.com/ups216/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ups216/archive/2010/08/25/1807904.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ups216/archive/2010/08/25/1807904.html"/><content type="html">&lt;p&gt;原文: &lt;a href="http://www.almnetworks.net/zh-CN/post/2010/08/25/Database-Permissions-Required-to-Configure-TFS.aspx"&gt;http://www.almnetworks.net/zh-CN/post/2010/08/25/Database-Permissions-Required-to-Configure-TFS.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;大多数时候，我们使用SQL Admin来安装TFS服务器是没有任何问题的，但是你要碰上一个留着大胡子的DBA的话，恐怕就没有那么简单了。很多的大公司对安全问题非常重视，所以我们还是需要了解到底TFS需要怎样的权限来进行安装和配置。 &lt;/p&gt;&#xD;
&lt;p&gt;如果你是那个碰到了大胡子DBA的倒霉程序员，请往下看： &lt;/p&gt;&#xD;
&lt;ul&gt;&lt;li&gt;安装TFS的用户需要是&lt;strong&gt;serveradmin&lt;/strong&gt; 的服务器角色，因为在配置TFS的过程中，我们需要安装新的系统信息（system messages)。这个操作需要ServerAdmin的角色权限，具体请见： &lt;a href="http://msdn.microsoft.com/en-us/library/ms178649.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms178649.aspx&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ALTER ANY LOGIN, VIEW ANY DEFINITION&lt;/strong&gt; 服务器权限，因为在配置TFS的过程中我们需要查询已经有的SQL用户并为服务账户创建新的SQL用户名。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;CONTROL on master&lt;/strong&gt;.&amp;nbsp;在master数据库上的权限 &#xD;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;CREATE ROLE&lt;/strong&gt; &amp;#8211;&amp;nbsp;我们需要这个权限来创建 TFSEXECROLE.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;VIEW DEFINITION&lt;/strong&gt; &amp;#8211; 我们需要次权限来查询数据库的扩展属性&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ALTER&lt;/strong&gt; &amp;#8211; 用来安装消息，我们会删除并重建 prc_Install*Messages 存储过程,&amp;nbsp;比如 prc_InstallBuildMessages, prc_InstallVersionControlMessage, 等等。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;EXECUTE&lt;/strong&gt; &amp;#8211;&amp;nbsp;我们需要此权限来执行 prc_Install*Messages 存储过程.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;CREATE DATABASE&lt;/strong&gt; - 我们需要此权限来创建，配置数据挖掘数据库。 &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ups216/aggbug/1807904.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ups216/archive/2010/08/25/1807904.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ups216/archive/2010/08/20/1804814.html</id><title type="text">TFS 2010 备份和恢复的完整解决方案</title><summary type="text">今天早上收到了发自LinkedIn讨论组里面的一封邮件，有关新版的TFS PowerTools对TFS 2010的备份和恢复的全面支持，是Brian Harry昨天和前天分别在博客上发布的两篇文章 new Power Tools which support TFS Backup and Restore, 仅仅看这个名称我就已经很激动了，因为TFS的备份和恢复一直都没有很完整的解决方案，要完成一个很好的备份需要有很多的手动步骤才行。关于这点，可以参考 http://msdn.microsoft.com/en-us/library/bb552295.aspx 我还没有具体测试这个新版的Tfs PowerTools，光看一下截图，可以说确实不错。 </summary><published>2010-08-20T09:41:00Z</published><updated>2010-08-20T09:41:00Z</updated><author><name>LEI XU</name><uri>http://www.cnblogs.com/ups216/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ups216/archive/2010/08/20/1804814.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ups216/archive/2010/08/20/1804814.html"/><content type="html">&lt;p&gt;原文： &lt;a href="http://www.almnetworks.net/zh-CN/post/2010/08/20/TFS-Backup-and-Restore-become-much-easier-than-ever.aspx"&gt;http://www.almnetworks.net/zh-CN/post/2010/08/20/TFS-Backup-and-Restore-become-much-easier-than-ever.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;今天早上收到了发自LinkedIn讨论组里面的一封邮件，有关新版的TFS PowerTools对TFS 2010的备份和恢复的全面支持，是Brian Harry昨天和前天分别在博客上发布的两篇文章 &lt;a href="http://blogs.msdn.com/b/bharry/archive/2010/08/19/backing-up-your-tfs-server-with-sharepoint-and-reporting.aspx" target="_blank"&gt;new Power Tools which support TFS Backup and Restore&lt;/a&gt;, 仅仅看这个名称我就已经很激动了，因为TFS的备份和恢复一直都没有很完整的解决方案，要完成一个很好的备份需要有很多的手动步骤才行。关于这点，可以参考&amp;nbsp;&lt;a title="http://msdn.microsoft.com/en-us/library/bb552295.aspx" href="http://msdn.microsoft.com/en-us/library/bb552295.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb552295.aspx&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我还没有具体测试这个新版的Tfs PowerTools，光看一下截图，可以说确实不错。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;安装了Power Tools以后，在Administrative&amp;nbsp;Console里面会有新的Team Foundation Backup选项出现&lt;/strong&gt;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.almnetworks.net/image.axd?picture=WindowsLiveWriter/TFSBackupandRestorebecomemucheasierthane/5CA9B850/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.almnetworks.net/image.axd?picture=WindowsLiveWriter/TFSBackupandRestorebecomemucheasierthane/2326A859/image_thumb.png" width="596" height="366" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;备份计划向导 - 选择备份数据的位置&lt;/strong&gt;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.almnetworks.net/image.axd?picture=WindowsLiveWriter/TFSBackupandRestorebecomemucheasierthane/46DFCFF3/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.almnetworks.net/image.axd?picture=WindowsLiveWriter/TFSBackupandRestorebecomemucheasierthane/3CBB08FB/image_thumb.png" width="590" height="468" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;运行一个建好的备份计划&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.almnetworks.net/image.axd?picture=WindowsLiveWriter/TFSBackupandRestorebecomemucheasierthane/3C4ED606/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.almnetworks.net/image.axd?picture=WindowsLiveWriter/TFSBackupandRestorebecomemucheasierthane/39494B86/image_thumb.png" width="488" height="413" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;如果你的TFS里面同时部署了门户和报表，这个工具同时也支持对于SharePoint和Reporting Service数据的备份和恢复&lt;/strong&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.almnetworks.net/image.axd?picture=WindowsLiveWriter/TFSBackupandRestorebecomemucheasierthane/7EEDD5A4/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.almnetworks.net/image.axd?picture=WindowsLiveWriter/TFSBackupandRestorebecomemucheasierthane/44925FC3/image_thumb.png" width="488" height="409" /&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;以上仅仅是快速浏览了一下这个工具的功能，这个周末假具体测试一下在给大家提供更多的信息吧。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ups216/aggbug/1804814.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ups216/archive/2010/08/20/1804814.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ups216/archive/2010/08/14/1799547.html</id><title type="text">基于Visual Studio 2010 进行敏捷/Scrum模式开发</title><summary type="text">根据Forrester Research今年第二季度的一份研究报告，在超过1000名专业开发人员中，采用敏捷模式进行软件开发的已经有10.9%采用了Scrum模式，在所有的敏捷开发模式中名列首位，而在所有的软件项目管理模式中，敏捷模式更是被35%的开发人员所采用。当然，研究报告为我们呈现的仅仅是一个统计学的观点，到底你的开发团队应该采用什么样的开发模式，这还是要根据各自不同的开发环境，人员构成，公司架构以及文化背景来决定。 </summary><published>2010-08-14T04:03:00Z</published><updated>2010-08-14T04:03:00Z</updated><author><name>LEI XU</name><uri>http://www.cnblogs.com/ups216/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ups216/archive/2010/08/14/1799547.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ups216/archive/2010/08/14/1799547.html"/><content type="html">&lt;p&gt;原文：&lt;a href="http://www.almnetworks.net/zh-CN/post/2010/08/14/visual-studio-2010-agile-scrum-development.aspx"&gt;http://www.almnetworks.net/zh-CN/post/2010/08/14/visual-studio-2010-agile-scrum-development.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;根据Forrester Research今年第二季度的一份研究报告，在超过1000名专业开发人员中，采用敏捷模式进行软件开发的已经有10.9%采用了Scrum模式，在所有的敏捷开发模式中名列首位，而在所有的软件项目管理模式中，敏捷模式更是被35%的开发人员所采用。当然，研究报告为我们呈现的仅仅是一个统计学的观点，到底你的开发团队应该采用什么样的开发模式，这还是要根据各自不同的开发环境，人员构成，公司架构以及文化背景来决定。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-1.jpg" width="404" height="270" /&gt;&lt;br /&gt;&lt;strong&gt;图1：&lt;/strong&gt;Forrester 关于敏捷模式的调查报告 &lt;/p&gt;&#xD;
&lt;p&gt;Visual Studio 2010 是微软在2010年4月发布的全新一代的集成开发环境，配合同时发布的Team Foundation Server 2010（TFS&amp;#8212;&amp;#8212;团队服务器） ，为开发团队提供了全面的应用程序生命周期管理（ALM）工具和平台。在2010这个版本中，对于敏捷，或者说Scrum模式的支持是前所未有的。虽然微软的Visual Studio Team System从2005年开始发布的时候就提供了敏捷流程模板（也就是MSF Agile）模板，但是2008版之前的这个敏捷流程模板都是基于MSF（微软解决方案框架）的；这个框架是微软针对自己的研发团队的最佳实践进行抽取总结出来的，与广大敏捷开发社区里面所流行的很多敏捷方法并不是很契合，造成了开发团队在实施的时候有很多不适用的地方。因此，微软在开发2010版本的过程中，大量的听取了敏捷开发社区中的声音，在自己的MSF Agile 5.0的模板中进行很多针对敏捷，更确切的说是Scrum开发模式的改进，使得2010版本中所集成的MSF Agile 5.0的模板非常适合我们来进行Scrum模式的开发组织。当然，微软的产品为了追求通用性，在MSF Agile 5.0的模板中并没有完全采用Scrum模式通行的名称和流程；同时，微软在两周前又发布了一个纯粹的Scrum流程模板以供那些希望完全使用Scrum模式的开发团队使用，当然这个模板现在仍然是Beta版。 &lt;/p&gt;&#xD;
&lt;p&gt;我个人认为，开发团队采用哪一个模板并不是最重要的，重要的是我们需要在开发过程中不断地改进过程，并对这个模板进行定制，以便适合我们自己的开发流程。这也是为什么TFS所提供的是一个模板，因为它的目的就是希望我们在这个模板的基础上不断的改进，最终找到适合 &lt;/p&gt;&#xD;
&lt;p&gt;自己开发团队的流程。其实这也很符合Scrum模式的理念；简单一点来说，&lt;strong&gt;Scrum&lt;/strong&gt;&lt;strong&gt;模式是一种针对复杂项目的流程组织方式的框架&lt;/strong&gt;，其目标是为了让我们开发出更高质量的软件产品。围绕的这个目标，Scrum模式为我们提供一个团队模型，一系列工具和一个简单的流程。在这样一个框架之下，Scrum模式要求我们不断地改进流程以达到适合团队的最佳状态，这种对改进的要求也是Scrum模式区别于其他开发流程的重要特点之一。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;为什么Scrum模式适合软件开发？&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;软件行业至今已经有超过40年的历史，很多在软件工程中的管理方法都是在不断摸索中改进而来的。早期的软件行业由于规模有限，绝大多数属于作坊型，几个人在一起靠着自己的聪明才智创造出软件产品；但是当团队规模不断扩大的时候，开发人员开始需要一种模型来组织越来越庞大的团队，满足越来越复杂的需求。因为没有经验可循，软件开发团队将很多传统工业工程的方法借鉴到软件行业，因而出现像&amp;#8220;瀑布式&amp;#8221;的模型。&amp;#8220;瀑布式&amp;#8221;模型要求我们在实际的开发工作开始之前进行很多非常细致的设计和计划，力图将不可控的开发过程细化成可以控制的颗粒，以达到对复杂项目的总体控制目的。但是&amp;#8220;瀑布式&amp;#8221;模型忽视了软件项目的一个本质特点，那就是需求的不确定性；我们不可能像造汽车一样在上生产线之前把所有的零件都设计好，所有的流程都规定好，再进行装配；因为任何软件在实际进行编码之前都没有人知道这些代码应该如何实现，而且每一个开发人员的水平不同，习惯不同，写出的代码也是不同的；再加上客户对于软件的需求也是在不断变化的，一年之前的业务流程很可能在一年之后就产生的变化，如果还按照之前的需求进行开发，那么交付的时候肯定是无法满足要求的；更重要的事，在客户没有看到或者实际操作软件产品之前，他们永远也不能明确地告诉你他们要的到底是什么。因为这种种原因，造成了软件开发不可能采用传统的工程方法进行组织，因为其本身是一种需要依赖于开发人员智慧的探索性行为，也造成了我们的软件项目中有很大一部分是失败的。 &lt;/p&gt;&#xD;
&lt;p&gt;Scrum模式的出现正是基于对于软件开发行为本质的认识，提供了一种松散的框架，让我们使用一种探索性的流程方法来组织本来就是探索性的开发过程；从根本上满足了软件开发本身对于流程的需求。这种方法论实际上是基于爱德华?戴明所提出的戴明环的管理方法；戴明环理论提出：人类在进行任何复杂活动时，获得成功的最有效过程要经过：Plan 计划&amp;#8211; Do执行 &amp;#8211; Check 检查&amp;#8211; Act改进，四个子过程，并不停的迭代以便找到最佳的方法来解决问题。这个理论不是针对软件开发提出的，但是软件开发本身其实就是最典型的复杂活动。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-2.jpg" width="288" height="169" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图2：戴明环&lt;/strong&gt;这里我们再回头看看Scrum的流程，Scrum的流程主要包含以下内容： &lt;/p&gt;&#xD;
&lt;ul&gt;&lt;li&gt;(P) Release/Sprint Planning：发布/迭代计划&lt;/li&gt;&lt;li&gt;(C&amp;amp;P) Daily Scrum：每日回顾&lt;/li&gt;&lt;li&gt;(C&amp;amp;A) Sprint Review：迭代产品检查&lt;/li&gt;&lt;li&gt;(A) Sprint Retrospective ：迭代流程检查 &lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;我们可以看到，Scrum模式的流程与戴明环仅仅相扣。有很多认为敏捷模式会弱化计划的作用，其实不然，敏捷模式更加强调计划，而且强调更加频繁的计划，比如：每日回顾这个流程就要求我们的团队每个成员每天早上用15分钟的时间来回答3个问题： &lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;你昨天做了什么？&lt;/li&gt;&lt;li&gt;你今天计划做什么？&lt;/li&gt;&lt;li&gt;有什么问题阻碍你的开发进程？ &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;其实这正是对于之前开发内容的检查，同时也是对后续开发内容的计划过程。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Scrum模式需要怎样的工具来实现？&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;对于使用什么样的工具来实现Scrum模式，现在也有很多不同的观点。其实有很多人认为白板和即时贴就是最好的工具，其实对于小型团队来说这的确是最有效而且最经济的方法。但是如果考虑到软件公司的管理需求（工作量统计等），远程团队，开发工具集成，代码质量控制，发布后期支持等等；我们还是需要一个高度集成的平台和一整套工具来支持我们的开发团队。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-3.jpg" width="504" height="327" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图3：&lt;/strong&gt;白板和即时贴 &lt;/p&gt;&#xD;
&lt;p&gt;Visual Studio 2010所提供的集成开发环境可以满足我们以上的一系列需求，帮助我们的开发团队更好组织开发，帮助我们的管理层更好地掌控开发过程，帮助软件公司开发出更高质量的产品。 &lt;/p&gt;&#xD;
&lt;p&gt;Scrum模式对于工具的要求，主要集中在以下一个方面： &lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;&lt;strong&gt;团队组织：&lt;/strong&gt;满足PO （产品经理），Scrum Master （流程经理）和开发团队管理，以不同的权限访问团队项目并对不同角色提供个性化的信息支持的能力。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;产品需求记录和跟踪：&lt;/strong&gt;对于Product Backlog Item （PBI 产品需求列表）的添加，编辑，优先级排序以及交付开发团队以后进行跟踪的能力。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;流程管理：&lt;/strong&gt;满足Sprint Planning, Daily Scrum, Sprint Review和Sprint Retrospective这些流程中对于信息共享，信息转移和跟踪的能力。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;产品质量：&lt;/strong&gt;在整个开发过程中，配合Scrum模式达到产出高质量代码和产品的能力。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;下面我们就看看Visual Studio 2010系统在这4个方面如何满足Scrum模式的需求，并协助我们开发出高质量的产品。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Visual Studio 2010上的Scrum团队组织&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;一个完整的Scrum开发团队主要由以下角色组成： &lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Product Owner &lt;/strong&gt;&lt;strong&gt;（&lt;/strong&gt;&lt;strong&gt;PO &lt;/strong&gt;&lt;strong&gt;产品经理）：&lt;/strong&gt;我喜欢把PO翻译为产品经理，因为PO的工作职责就是向客户和干系人收集产品需求，进行排序并保证开发团队按照干系人对需求优先级的要求进行交付。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Scrum Master &lt;/strong&gt;&lt;strong&gt;（&lt;/strong&gt;&lt;strong&gt;SM &lt;/strong&gt;&lt;strong&gt;流程经理）：&lt;/strong&gt;对于Scrum Master我一直没有更好的翻译，将其译成为流程经理是因为这一角色要保证团队按照Scrum的方式来组织开发，并协助团队和PO进行有效的沟通，解决团队所遇到的问题。Scrum Master和项目经理的区别在于，他更加倾向于保证开发流程的完整性而不是倾向于满足客户/干系人的需求。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;开发团队：&lt;/strong&gt;开发团队在Scrum模式中是作为一个整体出现的，一般来说团队的大小控制在3-7个人的规模；团队作为一个整体向PO负责，而不是每个人对于自己的任务负责。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;在Visual Studio 2010 系统中，使用TFS服务器基于角色的权限控制，我们可以很方便地定义出不同的权限范围。当然，最简单的方法是把Scrum团队的角色和TFS的默认角色之间进行映射。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-4.jpg" width="611" height="249" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图4：&lt;/strong&gt;TFS团队项目的默认角色 &lt;/p&gt;&#xD;
&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="140"&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Scrum&lt;/strong&gt;&lt;strong&gt;团队角色&lt;/strong&gt; &lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td valign="top" width="161"&gt;&#xD;
&lt;p&gt;&lt;strong&gt;TFS&lt;/strong&gt;&lt;strong&gt;团队角色&lt;/strong&gt; &lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td valign="top" width="319"&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="140"&gt;&#xD;
&lt;p&gt;Product Owner &lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td valign="top" width="161"&gt;&#xD;
&lt;p&gt;Contributor &lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td valign="top" width="319"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="140"&gt;&#xD;
&lt;p&gt;Scrum Master &lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td valign="top" width="161"&gt;&#xD;
&lt;p&gt;Project Administrator &lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td valign="top" width="319"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="140"&gt;&#xD;
&lt;p&gt;开发团队 &lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td valign="top" width="161"&gt;&#xD;
&lt;p&gt;Contributor &lt;/p&gt;&#xD;
&lt;p&gt;Builders &lt;/p&gt;&#xD;
&lt;p&gt;Project Administrator &lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td valign="top" width="319"&gt;&#xD;
&lt;p&gt;根据团队不同人员的职责具体分配 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td valign="top" width="140"&gt;&#xD;
&lt;p&gt;项目干系人 &lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td valign="top" width="161"&gt;&#xD;
&lt;p&gt;Readers &lt;/p&gt;&lt;/td&gt;&#xD;
&lt;td valign="top" width="319"&gt;&#xD;
&lt;p&gt;如果客户愿意更直接的参与项目，可以允许他们直接访问TFS。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&#xD;
&lt;p&gt;&lt;strong&gt;表1：&lt;/strong&gt;Scrum团队和TFS团队角色映射 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;Visual Studio 2010&lt;/strong&gt;&lt;strong&gt;系统中对需求记录和跟踪的支持&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Scrum模式中的需求主要是采用Product Backlog Item（PBI产品需求列表）和Sprint Backlog Item （SBI 迭代需求列表）来进行管理的，在Visual Studio 2010系统中，直接提供了针对这两个列表的工作项查询，并且还提供了Agile Workbook （敏捷工作簿）帮助我们更好对工作量和任务分配进行调控。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-5.jpg" width="320" height="458" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图5：&lt;/strong&gt;使用MSF Agile 5.0模板创建的TFS团队项目集成了对PBI和SBI的管理功能 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-6.jpg" width="580" height="247" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图6：&lt;/strong&gt;Product Backlog 查询结果 &lt;/p&gt;&#xD;
&lt;p&gt;上图中就是使用TFS内置的Product Backlog查询获取的产品需求列表，这个列表是PO使用的主要工具，我们可以注意到这个列表已经根据Stack Rank列进行了排序，这也反映了产品需求列表的特性：需要根据客户/干系人对需求项的优先级向团队交付任务；而PO的除了需要不断完善这个列表，还需要不断和客户干系人进行沟通，一边确定这个优先级。 &lt;/p&gt;&#xD;
&lt;p&gt;在Scrum模式中，对于优先级的定义决定于两个因素：需求的商业价值和紧迫程度；另外一个重要的指标就是Story Point，这个指标标志着当前需求项的相对大小，注意这里说的相对大小，很多人将这个值理解为人天或者人时，其实是不准确的，因为在PO准备产品需求列表的过程中，仅凭PO的经验是很难准确的判断出以时间为度量的工作量的，但是相对的大小是比较容易判断的。 &lt;/p&gt;&#xD;
&lt;p&gt;另外，从State和Iteration Path两个列的值我们可以看到，已经有一些需求在迭代1-2中已经解决。根据这些信息，PO可以很容易的对工作进度和剩余需求进行管理。 &lt;/p&gt;&#xD;
&lt;p&gt;另外一个重要的查询就是Iteration Backlog查询： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-7.jpg" width="580" height="181" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图7：&lt;/strong&gt;Iteration Backlog查询结果 &lt;/p&gt;&#xD;
&lt;p&gt;Iteration Backlog &lt;a title="_GoBack" name="_GoBack"&gt;&lt;/a&gt;中包含了团队在某个迭代中需要完成的需求以及针对这些需求细化出来的具体开发/架构/测试等任务。在Visual Studio 2010中，微软终于开始支持树形结构的工作项关联，从上图可以看出，每一个User Story的下面都挂接着相应Tasks，这些任务是在Sprint Planning Meeting中由团队成员自己根据PO对需求的阐述进行的细化，同时团队成员还需要根据经验对这些Tasks进行估算，给出基线估值（Original Estimate）。在开发过程中，团队成员在每天的Daily Scrum之前需要对前一天的任务更新状态（State），已完成工作量（Completed Work）和剩余工作量（Remaining Work）字段的内容；通过这些信息我们就可以使用TFS自带的燃尽图报表对进度进行查询和预测了。 &lt;/p&gt;&#xD;
&lt;p&gt;实际上，纯粹的Scrum模式并不关心已完成工作量（Completed Work）也就是以完成工作量的值，但是对于使用人天/人时等信息来衡量团队工作量，甚至依赖这些数据想客户收取开发费用的咨询类公司来说，这些信息是非常重要的。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Visual Studio 2010对Scrum流程中重要事件的支持&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Scrum模式中的几个重要的会议包括： &lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;Sprint Planning Meeting&lt;/li&gt;&lt;li&gt;Daily Scrum Meeting&lt;/li&gt;&lt;li&gt;Sprint Review Meeting&lt;/li&gt;&lt;li&gt;Sprint Retrospective Meeting &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;这一系列的会议是真正体现Scrum模式对于开发流程控制的核心内容，在Scrum模式中另外一个非常重要的概念是：时间箱（Time Box），它要求我们对于流程中的事件进行非常严格的时间控制。很多人在开始进行Scrum模式开发的时候的一个普遍问题是：一个迭代（Sprint）的长度应该是多少？对于这个问题其实也没有标准答案，而必须根据团队的大小来进行判断。对于之前我所建议的3-7人大小的团队，我会建议采用2周的迭代长度。原因在于1周太短，团队还无法完成真正有商业价值并可以进行交付的需求；而3周的时间则太长，需求的变化所造成的风险会变得比较大。 &lt;/p&gt;&#xD;
&lt;p&gt;采用迭代式开发的时候其实长度是越短越好，我们总是尽可能的缩短迭代以便可以通过给客户的交付获得更有价值的反馈以便对后续的开发进行调整，因此这个长度应该是团队刚刚可以完成可交付需求的最短时间。我们需要严格控制的是，迭代的长度应该是一个时间概念儿不是工作量的概念，也就是说如果2周的时间已经耗尽但是团队还没有完成当前迭代中的所有需求，那么也必须结束迭代进行交付，而不能选择延长迭代来完成未尽需求。这样做的结果有两个：1）当前的迭代会以失败告终；2）通过对已经完成需求的交付，我们可以获取客户的反馈。很明显，失败的迭代是我们不愿意看到的，但是客户对于已经完成需求的反馈比保持常胜将军的名誉更加重要，因为后者是保证我们软件质量（符合需求）的重要手段。 &lt;/p&gt;&#xD;
&lt;p&gt;当然，这里隐藏着另外一个很重要的问题，在团队无法完全完成需求的情况下如何还能提供可交付的成果，这就要依靠我们对于需求定义方式的变化和Visual Studio 2010 中对持续集成和更加高效的测试支持来实现了。在需求定义上，我们需要采用业务导向的需求定义，保证每一个需求的完成都可以交付一定的商业价值。以往的需求往往是功能导向的，但是功能导向的需求对于用户来说不一定具备商业价值，但是业务导向的需求则可以保证这一点，比如：我们可以这样定义一个User Story，作为市场经理，我希望对客户数据进行查询以便可以找到本市的客户并和他们进行联系。使用这样的需求定义意味着只要我们完成这一需求对客户就是有价值的，因为它不是一个功能碎片，而是一个用户交互用例。如果在一个迭代中我们无法完成所有的需求，只要完成其中一个，那么都是可以向客户交付的。另外，借助Visual Studio 2010对持续集成和测试的支持，我们可以采用每日构建的方式保证所有完成的代码都符合质量要求，也就避免了在迭代后期进行集中测试而拖延交付的可能性。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Sprint Planning Meeting的支持&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在Visual Studio 2010中提供了一个叫Agile Workbook的Excel模板，可以帮助我们很好地完成Sprint Planning Meeting。在这个会议中，最重要的任务就是将PBI转化成SBI，并且由团队给出完成这些SBI的承诺；团队要做出这样的承诺最重要的依据就是这些需求所涉及的工作量是否可以承受。Agile Workbook正是帮助我们回答这一问题的强大工具。从下图我们可以看到，当我们制定了迭代上的人员配备并将Task分配给每个开发人员以后，模板会给出非常直观的柱状图，帮助团队判断工作量是否可行。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-8.jpg" width="481" height="364" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图8：&lt;/strong&gt;对迭代1-3上的工作量进行横向比较，根据历史数据判断后续迭代是否可行 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-9.jpg" width="481" height="360" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图9：&lt;/strong&gt;在当前迭代上对每个开发人员的工作量分配进行比较 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Daily Scrum Meeting支持&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这个会议非常简短，所以我们更加需要非常直观的图表以帮助团队对进度进行审核，在TFS中提供了燃尽图为团队提供这些信息。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-10.jpg" width="381" height="333" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图10：&lt;/strong&gt;迭代燃尽图 &lt;/p&gt;&#xD;
&lt;p&gt;根据每个开发人员对于工作量的更新，从上图我们可以很容易对完成时间进行预测，图中黑色实线和横轴的焦点就是当前迭代的可能完成时间。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Sprint Review &amp;amp; Retrospective Meeting 的支持&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Sprint Review的支持更多地体现于Visual Studio 2010的持续集成能力，因为这个会议是对于需求完成情况的审核，如果我们能够保证需求是业务导向的并充分利用Visual Studio 2010的自动化构建和测试集成能力。那么我们就可以保证在这个会议上交付一定的商业价值。具体如何使用Visual Studio 2010来实现在后面做详细介绍。 &lt;/p&gt;&#xD;
&lt;p&gt;Retrospective 会议其实非常简单，需要我们团队成员对当前迭代的运作进行总结，但为了使这些信息可以完整的保存以便后续使用，我们可以利用TFS提供的门户站点，定制一个SharePoint的列表分类的记录这些反馈以便团队查询。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;Visual Studio 2010&lt;/strong&gt;&lt;strong&gt;对于产品质量的保证&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;提高产品质量是Visual Studio 2010在设计阶段就确定的重要目标，在2010版本所添加的新特性中，已经想着这个目标形成了一套完整的解决方案。对于Scrum模式来说，交付高质量的产品也同样是其终极目标，而且我们需要在迭代时间很短的情况下仍然保证质量，这就更加需要依赖工具的支持。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;自动化构建&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;之所以把自动化构建列在首位，是因为软件工程发展到今天，自动化构建已经是任何一个想要实现高质量的软件开发团队都必须采用的工程方法；另外，对于Visual Studio 2010系统来说，自动化构建也起着承上启下，贯穿全局的重要地位。当开发软件进入第一个迭代的开发时，所要进行的第一项工作并不是开始实际的编码，而是创建出符合团队需求的构建模板。这样做的目的在于团队在后期的实际开发中可以更加专注于需求的开发，而不必花费额外的时间和精力来集成开发人员的代码；开始阶段的代码量很少，团队可以有更加清晰的思路将迁入策略，架构验证，自动化测试列表设置好并保证构建可以正常运行；如果把这个工作放到迭代后期进行，往往会因为代码中的缺陷和不同开发习惯造成构建模板不能正常运行。 &lt;/p&gt;&#xD;
&lt;p&gt;在Visual Studio 2010中，提供了更加便捷的模板创建工具，特别是添加了Gated Check-in 构建的触发方式，可以保证所有嵌入源代码库的代码都是经过验证的。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-11.jpg" width="499" height="275" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图11：&lt;/strong&gt;Gated Check-in 构建触发器 &lt;/p&gt;&#xD;
&lt;p&gt;Gated Check-in 触发方式和以往的触发方式所不同之处在于，开发人员执行迁入操作的时候代码并不会直接进入源代码库，而必须先经过构建的验证：保证编译成功和定义好的迁入验证测试可以成功运行，然后TFS才会把代码真正嵌入服务器。之前的持续集成（Continuous Integration） 方式也会在迁入的时候进行构建，但是这种构建是将代码先迁入，然后再运行构建，如果代码中已经存在了缺陷，那么在服务器上就会留下缺陷代码；Gated Check-in 借助TFS源代码管理中的&amp;#8220;搁置&amp;#8221;功能，先把代码搁置到服务器上临时存储中，在构建成功后才会正式迁入，所以缺陷代码不会进入服务器。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-12.jpg" width="503" height="497" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图12：&lt;/strong&gt;构建参数配置 &lt;/p&gt;&#xD;
&lt;p&gt;TFS的自动化构建可以集成测试列表，图中的上方的红色区域中就是要求构建从项目文件中的测试列表文件中提取单元测试并自动运行；另外一个在Visual Studio 2010种的重要改进就是下方红色区域中的架构验证参数。如果我们的项目文件中包含了架构层次图（Layer Diagram）的话，那么我们就是添加这个参数让构建自动的验证项目的代码是否符合架构设计的要求。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-13.jpg" width="423" height="290" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图13：&lt;/strong&gt;Visual Studio 2010的层次架构图 Layer Diagram &lt;/p&gt;&#xD;
&lt;p&gt;Scrum模式开发中的架构设计给我们提出了非常大的挑战，由于我们采取业务导向的需求定义，开发人员必须从数据层一直实现到表现层；在这个过程中如何保证项目的架构仍然符合需求非常困难；而Visual Studio 2010的架构验证功能则可以帮助我们在每次迁入代码的时候都进行验证，保证违反架构规范的代码不会进入最终的交付产品。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;消除无法重现的Bug&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;无法重现的Bug一直都是困扰开发人员的问题，开发环境，测试环境，生产环境的不同；开发人员，测试人员和最终用户的不同都是造成Bug无法被重现的客观因素。在Visual Studio 2010中，提供了很多强大的调试和测试工具来帮助我们解决这个问题。 &lt;/p&gt;&#xD;
&lt;ul&gt;&lt;li&gt;IntelliTrace（历史数据调试）&lt;/li&gt;&lt;li&gt;协作调试&lt;/li&gt;&lt;li&gt;测试管理器和手工测试（Test Manager）&lt;/li&gt;&lt;li&gt;实验室管理（Lab Manager） &lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;&lt;strong&gt;IntelliTrace&amp;#8212;&amp;#8212;历史数据调试器&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;IntelliTrace在开发过程中的名称就叫Historical Debugger （历史数据调试器），后来这个用来进行市场宣传的名称反而不能反映它的实质。IntelliTrace可以把程序运行过程中的所有历史数据都记录下来，使得程序员可以回滚到任何的历史点来查看程序状态，这对于开发人员调试复杂逻辑非常有用；之前我们在做同样工作的时候必须反复运行程序，以便找到问题，而现在则可以让程序反向运行。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-14.jpg" width="215" height="389" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图14：&lt;/strong&gt;IntelliTrace调试器重所记录的程序历史数据 &lt;/p&gt;&#xD;
&lt;p&gt;另外，IntelliTrace还可以把这些调试数据另存为tdlog文件；当开发人员A发现了B的一个问题的时候，他可以把自己调试环境中的tdlog发送给B，开发人员B就可以使用这个文件让Visual Studio恢复到开发人员A的调试状态，从而保证B可以有效的重现A所看到的问题。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;协作调试&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;协作调试实际上解决多个开发人员在调试过程中的另外一些信息共享问题的方法，上面的IntelliTrace可以共享调试历史数据；但是用过Visual Studio 的开发人员都知道，像&amp;#8220;断点&amp;#8221;是不能保存到调试数据中，也不会被保存到项目文件中；所以协作调试就提供了开发人员共享断点信息，并且还可以让开发人员在断点信息上添加一些说明，以便帮助其他的开发人员理解问题。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;测试管理器和手工测试（Test Manager）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;测试管理器是Visual Studio 2010系统中为测试人员特意开发的可以独立运行的测试环境，它完全独立，不依赖于Visual Studio IDE，提供非常强大的测试录制等功能。在前面介绍构建的时候我曾经将单元测试集成到构建中去自动运行，但是单元测试只能针对后台逻辑进行，不能解决UI测试，或者叫黑盒测试问题。微软的测试管理器的出现，就是为解决UI测试的问题。 &lt;/p&gt;&#xD;
&lt;p&gt;TFS 2010中专门提供测试用例（Test Case）工作项类型，这个工作项允许测试人员对具体的测试步骤进行设计，并且给出预测的结果；同时，借助测试管理器的录制功能，还可以把测试人员换的操作全部都录制下来，一边后来自动播放；或者生成Coded UI 测试，一旦有了Coded UI测试，我们就可以把这些针对UI的测试也集成到自动化构建中去。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fscrum-15.jpg" width="405" height="231" /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;图15&lt;/strong&gt;：测试用例（Test Case）工作项 &lt;/p&gt;&#xD;
&lt;p&gt;实际上，真正可以使用单元测试覆盖的测试仅占所有的测试的30%都不到，另外这70%的测试以往都是依赖于测试人员手工的进行；现在借助微软测试管理器的功能，我们可以将这些测试集成到高度自动化的开发流程中。可以帮助我们更加快捷的完成测试，为开发人员提供反馈。 &lt;/p&gt;&#xD;
&lt;p&gt;在Scrum模式中，业务导向的需求也要求我们的测试团队可以更加快捷的给出测试结果，前一天完成的需求最好可以在第二天就将测试结果反馈给团队；依赖于每日构建，我们可以在每天晚上将前一天的代码生成一个新版本，共测试团队使用；测试团队在第二天就可以把测试结果反馈给开发团队，同时将可以自动化运行的测试继承到每日构建中；在第三天的时候我们的团队就可以利用这些已经自动化的测试来验证我们的程序了。 &lt;/p&gt;&#xD;
&lt;p&gt;由于每天都进行测试，那么新增的代码量就非常有限，也就使得Bug的数量可以得到有效的控制，从这个方面上说，测试管理器所提供的手工测试，自动化测试录制和回放，并且和构建的继承为我们提供了一个非常高效的高质量的开发平台，从流程和工程技术上为质量提供了保证。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;实验室管理（Lab Manager）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;实验室管理是我在Visual Studio 2010系统中见过的最酷的功能，也是微软继承了自己的多项产品为开发团队提供的最完整的测试解决方案。在测试中一个非常难实现的问题，就是对于不同环境的创建，还原和状态的保存。如果同一个用例在不同的环境中运行，结果往往是不同的，而且我们客户的使用环境也往往很复杂，所以就要求我们的测试人员可以搭建很多不同配置的测试环境，以便验证应用程序可以适应他们要求。 &lt;/p&gt;&#xD;
&lt;p&gt;微软借助自己的Hyper-V虚拟化平台，为测试团队搭建这样的测试环境提供了非常好的支持，比如：我们可以使用SCVMM和TFS协同工作，当TFS需要测试环境的时候，通过SCVMM部署一台符合要求的虚拟机，并把需要测试应用自动的部署到这个虚拟机中，最终在这个环境中运行指定的测试。这样的测试环境避免了测试人员自己的机器不干净而导致的结果偏差，而且还可以通过环境快照的方式吧虚拟机的某个状态直接交付给开发人员进行检查。 &lt;/p&gt;&#xD;
&lt;p&gt;在上面所介绍的这些功能中我们可以看到，实际上我们解决了3个不同测试的不可重现问题： &lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;开发人员本机上的不可重现：IntelliTrace&lt;/li&gt;&lt;li&gt;开发人员和开发人员之间的不可重现：IntelliTrace, tdlog和协作调试&lt;/li&gt;&lt;li&gt;开发和测试环境之间的不可重现：微软测试和实验室管理器，Hyper-V &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;这些功能在工程技术上为团队保证了高质量，同时配合Scrum模式所推行的时间箱管理，业务导向的需求定义以及流程上的保证，Visual Studio 2010系统和Scrum一起帮助我们创建更好的产品和更好的团队。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;结束&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我使用Visual Studio Team System是从2005年开始的，最初的目的只是为了满足远程迁入代码的需要；但随着2008和2010版本的发布，对于流程定制和整体性的质量解决方案的需求越高。幸运的是，这个时候公司为我提供了到澳大利亚接受Scrum Master培训的机会，使我可以体系化的了解了Scrum模式的精髓，回来之后就对我们的开发团队进行了一系列的优化。 &lt;/p&gt;&#xD;
&lt;p&gt;同时，作为Scrum Master我也同时获得了提供Professional Scrum Developer培训的机会，PSD课程是微软和scrum.org共同开发的一套基于实践的scrum开发人员培训课程，它使用Visual Studio 2010系统作为平台，将参训人员分为不同的团队，进行实际的开发工作，在开发的过程中让学员体会Scrum的妙处和Visual studio 2010的强大。目前我们已经在澳大利亚墨尔本和意大利米兰成功运作了这个课程。作为在亚洲去唯一向中国提供这一课程的提供商，我也希望能够和更多的开发人员分享这些内容。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;[注：此文在2010年7月28日发表于InfoQ的SCRUM开发频道，原文地址：&amp;nbsp;&lt;/em&gt;&lt;/strong&gt;&lt;a href="http://www.infoq.com/cn/articles/visual-studio-2010-agile-scrum-development"&gt;&lt;strong&gt;&lt;em&gt;http://www.infoq.com/cn/articles/visual-studio-2010-agile-scrum-development&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt;]&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;&lt;img src="http://www.cnblogs.com/ups216/aggbug/1799547.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ups216/archive/2010/08/14/1799547.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ups216/archive/2010/08/10/1797003.html</id><title type="text">微软SCRUM 1.0流程模板在中文版TFS2010上无法创建项目的解决办法（续）</title><summary type="text">微软在7月22日发布了Scrum Template V1.0正式版, 但是在中文版的TFS2010上使用这个模板的时候会出现错误，原因是在安装中文版TFS2010的时候安装的中文版的WSS3.0中没有英文版的站点模板。 下载Scrum 1.0模板: http://visualstudiogallery.msdn.microsoft.com/en-us/59ac03e3-df99-4776-be39...</summary><published>2010-08-10T15:46:00Z</published><updated>2010-08-10T15:46:00Z</updated><author><name>LEI XU</name><uri>http://www.cnblogs.com/ups216/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ups216/archive/2010/08/10/1797003.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ups216/archive/2010/08/10/1797003.html"/><content type="html">&lt;p&gt;微软在7月22日发布了Scrum Template V1.0正式版, 但是在中文版的TFS2010上使用这个模板的时候会出现错误，原因是在安装中文版TFS2010的时候安装的中文版的WSS3.0中没有英文版的站点模板。 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;下载Scrum 1.0模板: &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/59ac03e3-df99-4776-be39-1917cbfc5d8e" title="http://visualstudiogallery.msdn.microsoft.com/en-us/59ac03e3-df99-4776-be39-1917cbfc5d8e"&gt;&lt;font color="#5c80b1"&gt;http://visualstudiogallery.msdn.microsoft.com/en-us/59ac03e3-df99-4776-be39-1917cbfc5d8e&lt;/font&gt;&lt;/a&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;这个模板在中文版TFS 2010上安装的时候没有问题，但是创建项目的时候会出现如下错误: &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2f5-08-2010+2-03-22+AM.png" alt="" width="545" height="465" /&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="file:///C:/Users/LeiXu.SSW2000/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles37EC4A7/image[7].png"&gt;&lt;/a&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;查看项目创建日志，其中有如下错误: &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;模块: WSS &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;异常消息: TF249033: 该站点模板不可用于区域设置标识符(LCID)。站点模板名称为: TFS2010 Agile Dashboard。LCID 为: 1033。 (类型 TeamFoundationServerException) &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;如果到C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE这个文件夹中，你会发现只有一个2052的模板（中文版站点模板）： &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2f5-08-2010+2-04-57+AM.png" alt="" width="624" height="184" /&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="file:///C:/Users/LeiXu.SSW2000/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles37EC4A7/image[6].png"&gt;&lt;/a&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;解决这个问题的办法是安装WSS 3.0的英文版语言包: &#xD;
&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
	&lt;li&gt;32bit version: &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=36ee1bf0-652c-4e38-b247-f29b3eefa048&amp;amp;displaylang=en" title="http://www.microsoft.com/downloads/details.aspx?FamilyID=36ee1bf0-652c-4e38-b247-f29b3eefa048&amp;amp;displaylang=en"&gt;&lt;font color="#5c80b1"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=36ee1bf0-652c-4e38-b247-f29b3eefa048&amp;amp;displaylang=en&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;&#xD;
	&lt;li&gt;x64 version:&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=45FA2637-EFC0-4ED6-8F47-8A013E9CE9D9&amp;amp;displaylang=en" title="http://www.microsoft.com/downloads/details.aspx?familyid=45FA2637-EFC0-4ED6-8F47-8A013E9CE9D9&amp;amp;displaylang=en"&gt;&lt;font color="#5c80b1"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=45FA2637-EFC0-4ED6-8F47-8A013E9CE9D9&amp;amp;displaylang=en&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;安装这个语言包之后就可以在中文版TFS2010上使用scrum 1.0模板来创建项目了。希望微软可以尽快发布中文版的scrum 1.0模板。 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;[说明：非常抱歉，今天我从新测试了一次，发现我昨天的测试有问题；仅仅安装语言包不能解决问题，应该还需要安装scrum模板的wsp包；有时间的话我会再测试一下，如果大家试过有问题，请和我联系。我会尽快把更新的内容放上来。]&lt;/strong&gt;&amp;nbsp; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;经过我的进一步测试，发现以上步骤不能解决这个问题，但是我找到了一个可以暂时保证我们使用SCRUM模板的办法：手动创建项目门户。 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;1.首先，如果你是在TFS服务器本机上执行一下操作，需要右键点击vs2010，并选择&amp;ldquo;使用管理员权限运行&amp;rdquo;，这样可以vs2010可以正确的在reporting service上创建报表站点 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;2. 在创建团队项目时，选择&amp;ldquo;此时不配置SharePoint站点&amp;rdquo;，这样向导将不会自动创建门户站点，我们就可以在后面手动创建并把他们关联起来。 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fSCRUM-01.png" alt="" width="545" height="276" /&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;3. 项目创建成功后，在团队资源管理器中你会发现没有&amp;ldquo;文档&amp;rdquo;这个节点 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fSCRUM-02.png" alt="" width="189" height="189" /&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;4. 现在打开浏览器（建议同样适用管理员运行），进入门户站点的根节点&lt;a href="http://[YourTFS]/sites/DefaultCollection"&gt;http://[YourTFS]/sites/DefaultCollection&lt;/a&gt; ，并选择&amp;ldquo;站点操作-〉创建&amp;rdquo;，然后选择&amp;ldquo;站点和工作区&amp;rdquo; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fSCRUM-03.png" alt="" width="715" height="216" /&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;5. 在创建站点的页面中，使用和团队项目一致的名称，并在模板中选择&amp;ldquo;TFS2010 Agile Dashboard&amp;ldquo;，然后点击创建 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fSCRUM-04.png" alt="" width="409" height="384" /&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;6. 创建完成后SharePoint会抱怨说没有配置默认项目， &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fSCRUM-05.png" alt="" width="618" height="427" /&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;这时你可以回到vs2010中在新创建的项目上对门户进行配置，并指向刚创建的站点 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fSCRUM-06.png" alt="" width="523" height="228" /&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;在弹出的对话框中将站点指向刚创建的门户，并勾选&amp;ldquo;报表和面板饮用此团队项目的数据&amp;rdquo;。 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fSCRUM-07.png" alt="" width="638" height="437" /&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;点击确定后，TFS会对团队站点进行关联。再次刷新团队站点，一切正常。 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2fSCRUM-08.png" alt="" width="539" height="380" /&gt; &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;以上办法虽然没有完全解决问题，但是可以让我们在中文版的TFS2010上使用SCRUM模板。还是希望微软早日发布中文版的SCRUM模板。 &#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
    &lt;img src="http://www.cnblogs.com/ups216/aggbug/1797003.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ups216/archive/2010/08/10/1797003.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ups216/archive/2010/08/05/1792727.html</id><title type="text">微软SCRUM 1.0流程模板在中文版TFS2010上无法创建项目的解决办法</title><summary type="text">微软在7月22日发布了Scrum Template V1.0正式版, 但是在中文版的TFS2010上使用这个模板的时候会出现错误，原因是在安装中文版TFS2010的时候安装的中文版的WSS3.0中没有英文版的站点模板。 </summary><published>2010-08-04T18:26:00Z</published><updated>2010-08-04T18:26:00Z</updated><author><name>LEI XU</name><uri>http://www.cnblogs.com/ups216/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ups216/archive/2010/08/05/1792727.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ups216/archive/2010/08/05/1792727.html"/><content type="html">&lt;p&gt;原文：&lt;a href="http://www.almnetworks.net/zh-CN/post/2010/08/04/Microsoft-Visual-Studio-Scrum-10-Template-on-Chinese-Version-of-TFS.aspx"&gt;http://www.almnetworks.net/zh-CN/post/2010/08/04/Microsoft-Visual-Studio-Scrum-10-Template-on-Chinese-Version-of-TFS.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;微软在7月22日发布了Scrum Template V1.0正式版, 但是在中文版的TFS2010上使用这个模板的时候会出现错误，原因是在安装中文版TFS2010的时候安装的中文版的WSS3.0中没有英文版的站点模板。 &lt;/p&gt;&#xD;
&lt;p&gt;下载Scrum 1.0模板: &lt;a title="http://visualstudiogallery.msdn.microsoft.com/en-us/59ac03e3-df99-4776-be39-1917cbfc5d8e" href="http://visualstudiogallery.msdn.microsoft.com/en-us/59ac03e3-df99-4776-be39-1917cbfc5d8e"&gt;&lt;font color="#5c80b1"&gt;http://visualstudiogallery.msdn.microsoft.com/en-us/59ac03e3-df99-4776-be39-1917cbfc5d8e&lt;/font&gt;&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;这个模板在中文版TFS 2010上安装的时候没有问题，但是创建项目的时候会出现如下错误: &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2f5-08-2010+2-03-22+AM.png" width="545" height="465" /&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.cnblogs.com/ups216/admin/file:///C:/Users/LeiXu.SSW2000/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles37EC4A7/image[7].png"&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;查看项目创建日志，其中有如下错误: &lt;/p&gt;&#xD;
&lt;p&gt;模块: WSS &lt;/p&gt;&#xD;
&lt;p&gt;异常消息: TF249033: 该站点模板不可用于区域设置标识符(LCID)。站点模板名称为: TFS2010 Agile Dashboard。LCID 为: 1033。 (类型 TeamFoundationServerException) &lt;/p&gt;&#xD;
&lt;p&gt;如果到C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE这个文件夹中，你会发现只有一个2052的模板（中文版站点模板）： &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f8%2f5-08-2010+2-04-57+AM.png" width="624" height="184" /&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.cnblogs.com/ups216/admin/file:///C:/Users/LeiXu.SSW2000/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles37EC4A7/image[6].png"&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;解决这个问题的办法是安装WSS 3.0的英文版语言包: &lt;/p&gt;&#xD;
&lt;ul&gt;&lt;li&gt;32bit version: &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=36ee1bf0-652c-4e38-b247-f29b3eefa048&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=36ee1bf0-652c-4e38-b247-f29b3eefa048&amp;amp;displaylang=en"&gt;&lt;font color="#5c80b1"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=36ee1bf0-652c-4e38-b247-f29b3eefa048&amp;amp;displaylang=en&lt;/font&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;x64 version:&lt;a title="http://www.microsoft.com/downloads/details.aspx?familyid=45FA2637-EFC0-4ED6-8F47-8A013E9CE9D9&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?familyid=45FA2637-EFC0-4ED6-8F47-8A013E9CE9D9&amp;amp;displaylang=en"&gt;&lt;font color="#5c80b1"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=45FA2637-EFC0-4ED6-8F47-8A013E9CE9D9&amp;amp;displaylang=en&lt;/font&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;安装这个语言包之后就可以在中文版TFS2010上使用scrum 1.0模板来创建项目了。希望微软可以尽快发布中文版的scrum 1.0模板。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;[说明：非常抱歉，今天我从新测试了一次，发现我昨天的测试有问题；仅仅安装语言包不能解决问题，应该还需要安装scrum模板的wsp包；有时间的话我会再测试一下，如果大家试过有问题，请和我联系。我会尽快把更新的内容放上来。]&lt;/strong&gt;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;经过进一步测试，这个问题暂时解决，请看后续的文章：&lt;a href="http://www.cnblogs.com/ups216/archive/2010/08/10/1797003.html"&gt;http://www.cnblogs.com/ups216/archive/2010/08/10/1797003.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ups216/aggbug/1792727.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ups216/archive/2010/08/05/1792727.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ups216/archive/2010/07/22/1782826.html</id><title type="text">SCRUM模式项目管理在VS2010上的最佳实践LiveMeeting</title><summary type="text">今晚活动公告 http://www.almnetworks.net/zh-CN/post/2010/07/22/SCRUM-On-Top-Of-VisualStudio2010-LiveMeeting.aspx 微软在今年4月发布了全新的开发人员工具和团队协作平台Visual Studio 2010，在这一版本中，微软对于敏捷开发模式，特别是Scrum模式给与了前所未有的重视，并且在工具，平台，流...</summary><published>2010-07-22T02:30:00Z</published><updated>2010-07-22T02:30:00Z</updated><author><name>LEI XU</name><uri>http://www.cnblogs.com/ups216/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ups216/archive/2010/07/22/1782826.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ups216/archive/2010/07/22/1782826.html"/><content type="html">&lt;p&gt;今晚活动公告&amp;nbsp; &lt;a href="http://www.almnetworks.net/zh-CN/post/2010/07/22/SCRUM-On-Top-Of-VisualStudio2010-LiveMeeting.aspx"&gt;http://www.almnetworks.net/zh-CN/post/2010/07/22/SCRUM-On-Top-Of-VisualStudio2010-LiveMeeting.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;img style="width: 590px; height: 77px" alt="" src="http://www.almnetworks.net/image.axd?picture=2010%2f7%2fTopBg.png" width="590" height="77" /&gt; &lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;/p&gt;&#xD;
&lt;p&gt;微软在今年4月发布了全新的开发人员工具和团队协作平台Visual Studio 2010，在这一版本中，微软对于敏捷开发模式，特别是Scrum模式给与了前所未有的重视，并且在工具，平台，流程模板等方面对于Scrum模式进行了全面的支持。6月份，微软又特意为Scrum开发流程提供了模板。自从团队协作服务器（TFS）发布以来，微软这是第一次提供内置模板以外的其他官方模板，可见Scrum模式获得了微软的充分重视。&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;这次培训的主要内容就是向广大开发人员介绍微软Visual Studio 2010系统和官方Scrum流程模板，以及如何结束vs2010种的各种功能来开发出更高质量的产品并建设更加高效的软件开发团队，具体内容包括：&amp;nbsp; &lt;/p&gt;&#xD;
&lt;ul&gt;&lt;li&gt;&amp;#216;&amp;nbsp; Scrum 模式基本概念和实施经验&lt;/li&gt;&lt;li&gt;&amp;#216;&amp;nbsp; 了解如何使用Scrum流程模板 &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;#216;&amp;nbsp; 定义&amp;#8220;完成规范&amp;#8221;，并使用Visual Studio 2010来实现这些规范 &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;#216;&amp;nbsp; 单元测试 &amp;nbsp;&amp;#216;&amp;nbsp; 代码签入和工作项关联，签入策略 &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;#216;&amp;nbsp; 架构师版（架构设计，架构开发，架构实现和验证） &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;#216;&amp;nbsp; 测试驱动开发（TDD），持续集成，代码覆盖率，代码重构，Test Impact 分析 &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;#216;&amp;nbsp; 敏捷数据库开发，数据库项目，数据库重构，数据库单元测试，数据生成计划&lt;/li&gt;&lt;li&gt;&amp;#216;&amp;nbsp; 用户接受测试（UAT），Microsoft Test Manager测试用例管理，手工测试，自动化测试（CodedUI Test)，分支管理，并行开发； &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;#216;&amp;nbsp; Scrum 团队建设，进度审核和分析，Scrum团队面临的挑战 &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;#216;&amp;nbsp; Scrum Master遇到的典型问题分析，如何使用Scrum让您企业更为有效 &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;#216;&amp;nbsp; Product Owner面临的挑战和典型问题分析，如何与Product Owner协作，如何与Stakeholder协作 &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;#216;&amp;nbsp; 如何扩展Scrum，使用Scrum管理大型开发团队&amp;nbsp;&amp;nbsp; &lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;&lt;strong&gt;讲师介绍：&lt;/strong&gt;&amp;nbsp;徐磊，微软Regional Director，最有价值专家（MVP 2006 -2010），关注敏捷开发，Scrum模式和微软技术。&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;培训时间：&lt;/strong&gt;&amp;nbsp;2010年7月22日星期四 19：30 - 21：00&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;参会地址：&lt;/strong&gt;&amp;nbsp;&lt;a href="https://www.livemeeting.com/cc/microsoft/join?id=DQ8774&amp;amp;role=attend&amp;amp;pw=rc%25%7DP%269Tt"&gt;https://www.livemeeting.com/cc/microsoft/join?id=DQ8774&amp;amp;role=attend&amp;amp;pw=rc%25%7DP%269Tt&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;请提前15分钟登录会议地址。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;微软(中国)社区运营团队&lt;/em&gt; &lt;/p&gt;  &lt;img src="http://www.cnblogs.com/ups216/aggbug/1782826.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ups216/archive/2010/07/22/1782826.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ups216/archive/2010/07/14/1777082.html</id><title type="text">《中文版Scrum指南》正式发布</title><summary type="text">原文地址：http://www.almnetworks.net/zh-CN/post/2010/07/14/Scrum-Guide-Chinese-Version-has-been-released.aspxScrum指南最初是由Ken Schwaber和Jeff Sutherland共同书写的，目的是为Scrum模式制定一个标准化的文档。我们都知道，Scrum是一个框架，而且是一个非常简单的框架...</summary><published>2010-07-14T02:40:00Z</published><updated>2010-07-14T02:40:00Z</updated><author><name>LEI XU</name><uri>http://www.cnblogs.com/ups216/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ups216/archive/2010/07/14/1777082.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ups216/archive/2010/07/14/1777082.html"/><content type="html">&lt;p&gt;原文地址：&lt;a href="http://www.almnetworks.net/zh-CN/post/2010/07/14/Scrum-Guide-Chinese-Version-has-been-released.aspx"&gt;http://www.almnetworks.net/zh-CN/post/2010/07/14/Scrum-Guide-Chinese-Version-has-been-released.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Scrum指南最初是由Ken Schwaber和Jeff Sutherland共同书写的，目的是为Scrum模式制定一个标准化的文档。我们都知道，Scrum是一个框架，而且是一个非常简单的框架，所以这个指南也非常的精简，仅仅14页的长度（这是中文版的长度，英文版有21页，再一次证明中文的精炼），你完全可以在半个小时的时间内读完它。虽然我本身是进行软件开发工作，Scrum也主要被软件行业的敏捷开发团队所使用，但是其实Scrum模式可以为很多其他团队所使用。所以我希望这个指南可以帮助更多的团队来提高效率。 &lt;/p&gt;&#xD;
&lt;p&gt;如果您对Scrum不太了解，完全不知道我在说什么，那么这里是一段摘抄自《中文版Scrum指南》的描述： &lt;/p&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&#xD;
&lt;p&gt;&lt;font size="2"&gt;&lt;em&gt;&lt;strong&gt;Scrum是以经验过程控制理论为依据，采用迭代、增量的方法来提高产品开发的可预见性并控制风险。Scrum的三大支柱支撑起每个经验过程控制的实现。&lt;/strong&gt;&lt;/em&gt; &lt;/font&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;&lt;font size="2"&gt;&lt;strong&gt;第一大支柱是高透明度 &lt;br /&gt;&lt;/strong&gt;高透明度确保管理结果的人看得到那些影响结果的过程方面。这些过程方面不仅要透明，而且那些被观察到的方面也必须被充分了解。这就是说，当某人检验某个过程并认为完成了某些任务时，这个完成必须等同于他们的完成定义。 &lt;br /&gt;&lt;strong&gt;第二大支柱是检验&lt;/strong&gt; &lt;br /&gt;开发过程中的各方面必须做到经常性的检验，以确保及时发现过程中的重大偏差。在确定检验频率时，需要考虑到检验会引起所有过程发生变化。当规定的检验频率超出了过程检验所能允许的程度，那么就会出现问题。幸运的是，软件开发并不会出现这种情况。另一个因素就是检验工作成果人员的技能水平和勤勉程度。&amp;nbsp; &lt;br /&gt;&lt;strong&gt;第三大支柱是适应&lt;/strong&gt; &lt;br /&gt;如果检验员经检验发现过程中的一个或多个方面不满足可接受标准，并且最终产品是不合格的，那么检验员就必须对过程或是材料进行调整。调整工作必须尽快实施以减少进一步的偏差。 &lt;br /&gt;Scrum中有三个进行检验和适应的时刻： 每日例会是用来检验朝向Sprint目标的工作进程，调整以优化次日的工作价值。另外，Sprint评审和计划会议是用来检验朝向发布目标的工作进程，调整以优化下一个Sprint的价值。最后，Sprint回顾会议是用来评审完成的Sprint，并确定什么样的调整可以使下一Sprint的效率更高、结果更令人满意和更易于工作。&lt;/font&gt;&lt;/em&gt; &lt;/p&gt;&lt;/blockquote&gt;&#xD;
&lt;p&gt;Scrum指南同时也为我们了解Scrum模式的很多疑问提供了答案，比如： &lt;/p&gt;&#xD;
&lt;ul&gt;&lt;li&gt;什么是Scrum？&lt;/li&gt;&lt;li&gt;为什么要使用Scrum模式？&lt;/li&gt;&lt;li&gt;Scrum团队的组成以及各个角色？&lt;/li&gt;&lt;li&gt;我应该使用怎样的工具来运作Scrum模式？&lt;/li&gt;&lt;li&gt;我应该使用怎样的流程来运作Scrum模式？&lt;/li&gt;&lt;li&gt;Scrum模式中最常见的问题有哪些，该如何应对？ &lt;/li&gt;&lt;/ul&gt;&#xD;
&lt;p&gt;我真的非常感谢完成《中文版Scrum指南》的团队，你们为中国的Scrum实践者们提供了一个非常重要的文档，是每一个正在或者将要实施Scrum模式的开发人员都应该仔细阅读并理解的重要参考。 &lt;/p&gt;&#xD;
&lt;p&gt;下载地址: &lt;a title="http://www.scrum.org/scrumguides/" href="http://www.scrum.org/scrumguides/"&gt;http://www.scrum.org/scrumguides/&lt;/a&gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.scrum.org/scrumguides/" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.almnetworks.net/image.axd?picture=WindowsLiveWriter/ScrumGuideChineseVersionhasbeenreleased/638216D3/image.png" width="397" height="559" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;img src="http://www.cnblogs.com/ups216/aggbug/1777082.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ups216/archive/2010/07/14/1777082.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
