RSS 2.0 Feed
2007-09 Entries
摘要: [原文地址] VS 2008 Performance Improvements [原文发表时间] Thursday, September 27, 2007 4:52 PM    在 VS 2008中,我们就开发人员所关心的一些常见的使用场景在性能上作了很大的改进.我们对新的产品功能以及现有的产品功能都设置了明确的性能指标。 例如,对于新的 LINQ,我们设置的性能目标是: 对同一个查询,LINQ的性能必须显著优于SqlDataAdapter,与SqlDataReader相比也必须有竞争力;从SQL Server检索数据时,LINQ的接口必须是最轻量级的. 在我们的测试过程中,  我们所尝试过的每个测试案例几乎都表明,LINQ实际上的确比SqlDataAdapter表现更好, 而在大多数那些的例外的测试案例中, 完成相同的任务,LINQ比SqlDataReader落后的速度不超过10%。 考虑到 LINQ的强大功能,我们认为这样的取舍是合理的。 在Visual Studio 2008中我们能看到的更显著的性能提高包括: ·         重新生成一个 VisualBasic 项目并运行一个后台编译器的速度提高到了原来的3倍,使用的内存却只有原来的1/3。更多细节在这里。 ·         在编辑器里滚动较大的 C# 文件的速度比原来快了一倍,键入新文本的速度是原来的1.5倍. ·         对C# 中庞大类型的智能感应响应时间提高了至多10倍。 ·         增量生成C++/ CLI 项目解决方案的时间最快可以提高到原来的1.9倍。更多细节在这里。 ·         Office Word 和 Excel 文件在服务器上处理的速度快了20倍。 ·         TFS 版本控制命令处理经过重写后,能够在不需要绑定内存到服务器上的情况下,支持无限量的关键命令操作。 在我们的测试衡量结果中,关键命令的运行速度还提高了 10% 到 60%,尤其是在比较大的项目上操作时有了很大的性能提高。从这-里可以看到更多关于改进TFS可测量性的工作。   我们还致力于充分利用多核硬件的优势来提高性能。正如我以前的日志中提到的,我们对MSBuild工具增添了多线程支持。此外,使用 / MP 开关,您可以大大提高您的 C++ 项目生成时间 – 在内部的项目里,我们看到C++前台编译器在双核硬件上性能的提高最多可高达30%。.NET Framework 3.5 运行时的性能也有了显著提升,我们精简了CLR的线程池,使得各种类型的多线程应用程序得到性能改进。例如,当这些架构方面的改进与套接字端口API的改进结合在一起,并使用双核处理器的情况下,异步套接字端口I/O的操作速度最快提高了70%。更多关于此项工作的细节在这里。   上面这些只是VS2008性能改进的一些重要方面,VS2008中还有许多其他的性能改进,而且我相信仍然有些地方我们能够做得更好。像任何其他东西一样,这是一场旅行,而非终点。   Namaste !...[阅读全文]

posted @ | Feedback (5) |

摘要:[原文地址] Windows Server 2008 RC0 released today [原文发表时间] Tuesday, September 25, 2007 7:10 PM   我们今天发布了包括Internet Information Services 7.0在内的Windows Server 2008 Release Candidate 0。 这对于IIS来说是一个很大的进步。已经有超过1200个客户签署了IIS7 Beta 2实时协议,并且还有14个主机提供商正在部署IIS7。在这里可以看到一些客户的故事。   另外,Windows Media Services 2008 RC0也在今天提供下载了。它提供了两倍于Windows Media Services 8.0的可扩展性,而且它还支持服务器核心的安装,这大大减少了实现一个固定功能的流服务器的步骤,并可以用作Silverlight视频流的后端。 像你们一样,我也正在热切盼望着我们发布Windows Server 2008——正如我之前日志里提到的,我们计划在明年二月份推出Windows Server 2008, SQL Server 2008和Visual Studio 2008. Namaste!...[阅读全文]

posted @ | Feedback (13) |

摘要:[原文地址] Being more productive with C# 3.0 [原文发表时间] Friday, September 21, 2007 4:59 PM   在最近几年中,C#语言演变了很多。   C# 2.0中的范型、迭代和匿名方法最终会成为LINQ的基础。现在随着C# 3.0中的一些新功能特性的诞生,如查询表达式,Lamda表达式和扩展方法,LINQ终于成为了现实。   然而,C# 3.0并不只局限于LINQ,它还涉及到你每天要写的代码,以及让开发人员的生活变得更简单的一些东西。这里有三个C# 3.0的新功能特性,它们能让你节省时间和代码量,哪怕你并不是在写查询语句。如果你愿意,你可以在VS 2008 Beta2中尝试一下这些新功能。   自动属性 –很多人为了避免声明用来公共存取的属性,减少输入量,而使用公共字段。使用这个叫做自动属性的新功能特性,我们能简化工作,并把很多重复的基础结构从你的代码里去除掉。现在你的代码和公共字段一样简洁精悍。由于它们的确是真正的属性,你可以稍候再对其实现作改动而不用破坏已有的代码。希望现在你会更倾向于使用属性而非公共字段。从这里你可以看到一些例子,教你如何使用自动属性。   扩展方法 –有时候你会想要在任何地方都能重用某个私有的helper方法。你第一个想到的可能会是把这个方法作为实例化方法,添加到你自己的类里,但是这个方法可能并不在你的任何一个对象上做真正的操作。你唯一的其他选项将会是写一个helper类,并在其中添加一个静态的方法。在C# 3.0中,你能使用“this”这个关键字为常用类型(比如String)写扩展方法。你的方法将会在其逻辑上归属的地方显示出来。这里有一些具体的例子。   类型推断 – 使用匿名类型时,关键字var必不可少。它还能减少你其他变量声明中的冗余。 因为只要通过声明中的new语句,就可以显而易见地知道要创建的类型,所以你可以像使用范型一样,只用var关键字来声明类型,而不用输入又长又重复的声明语句。从这里可以了解到更多的细节。   Namaste!...[阅读全文]

posted @ | Feedback (3) |

摘要: [原文地址] Halo-themed version of Tafiti [原文发表时间]  Friday, September 21, 2007 4:59 PM   今天我们发布了Tafiti 的特别主题版本来庆祝Halo3 的发布。   Tafiti是一个带有实验性质的搜索网站的前端,它可以帮助我们进行Web搜索相关的研究项目,查询可以跨越多个搜索条件和会话,并且它能够将搜索结果可视化,还支持对搜索结果的存储和分享。Tafiti同时使用了微软的Silverlight和Live Search技术,它对更丰富的Web用户交互体验以及搜索功能的专业化进行了很好的探索。别忘了点击“Tree View”链接看看效果。   这个简洁的例子展示了Silverlight能以怎样全新和有趣的方式呈现数据。这个Tafiti的新版本增加了的一部分功能,就是提供了一个特殊的Halo的搜索宏,它能够搜索到游戏相关的一系列网站。   Namaste!  ...[阅读全文]

posted @ | Feedback (7) |

摘要:[原文地址] Japan, here we go [原文发表时间] Wednesday, September 19, 2007 11:48 PM konnichiwa!     从我开始写日志到现在已经过去3年多了。我决定写日志的主要原因之一,就是希望能和全世界有兴趣和有激情开发软件的人们进行双向的交流和对话。    我提到过,最近我的日志被翻译成了中文。这使得我可以接触到更广阔的人群。    现在我要高兴地说,我们的社区成员之一,Hiroshi Sawai 将帮助我把我的日志翻译成日文。这为我参与到日本的开发社区提供了极大的帮助。    我要对Sawai-san表达我的谢意,他贡献出了宝贵的时间。同时,特别感谢促成此事的Yoshihiro Kawabata(日本MS User Group PassJ的领导者)。    你可以在这里找到我的日志的日文版:http://ameblo.jp/umesawaa      Namaste!  ...[阅读全文]

posted @ | Feedback (13) |

摘要:[原文地址] Debugging and Profiling Features in VS 2008 [原文发表时间] Friday, September 14, 2007 6:48 PM    我希望介绍一些在Visual Studio 2008中你将会看到的新的调试与分析的特性。 脚本调试的改进 - 除了能让你像在ASP.Net源代码中一样在JScript脚本中设置断点进行调试,我们现在还为JScript提供了非常丰富的类型可视化支持,并且我们还提供了文本和插件的可视化器。你可以在这里找到更加详细的内容。 Profile diff’ing - 在编写V1版本的profiler时,我们本来很希望加入这个特性,不过最后还是去掉了。然而,我们知道所有人都希望拥有这个特性。现在我们在这个方面拥有了一个友好的体验,你可以持续地从你试图去做的任何性能增强上得到反馈。同样的,你可以在这里了解到更多的细节。 线程调试的改进 - 在接下来的几年中,多核趋势将继续其迅猛发展的势头。在VS2008之前,我们并没有真正做过多线程应用程序调试功能的增强。这是我们的第一步,我们希望在后续的版本中继续提供并发调试的更佳体验。 玩过“Hunt the Thread”么? - 这是我们意外发明的一个游戏,我们让你将线程窗口放在堆栈窗口旁边,然后你通过双击其中的每一个线程来找到另一个。我们在VS2008中解决了这个问题,在线程窗口旁边安置了非常酷的stacktips。现在你只需将鼠标停在线程窗口上,你就可以看到相应的堆栈提示信息。我们还添加了一些对线程的自动分类功能。虽然目前我们还没有提供自定义的分类,不过我们正考虑在今后的版本中实现。你还会发现现在你可以轻易找到你所关注的线程。你可以通过点击新增加的“flag”列来标示你所希望关注的线程。你还能让线程列表根据所标记的“flag”进行排序,来确保被标记的线程排在前面,你也可以使用调试工具条的下拉列表对线程加以过滤。 Hotpath - 与上个版本中的“Hunt the Thread”问题一样,在CallTree视图中进行快速展开的主要瓶颈在于是否能做到足够的手眼协作。我非常高兴能看到现在对此我们有了一个更好的用户体验。你可以在这里了解更多内容。 我们的团队已经开始为VS2008发布之后的新功能和特性进行一些先期的工作。所以,请继续留意。   Namaste !    ...[阅读全文]

posted @ | Feedback (12) |

摘要:[原文地址] Silverlight 1.0 released! [原文发表时间] Wednesday, September 05, 2007 8:00 AM      在今年初的NAB’07和MIX’07大会上,我们展示了Silverlight的品牌、工具、基础架构和发展指南,并承诺在夏末发布Silverlight 1.0版本。          令人高兴的是,我们如期实现了承诺,在今天发布了Silverlight 1.0和Expression Encoder 1.0。现在这两款产品都可以在网上下载了!          我很高兴地看到,采用Silverlight进行丰富的网络解决方案(rich web solution)设计的热情持续增高。美国职棒大联盟(Major League Baseball)已经采用了候选版本的Silverlight 1.0代码(candidate bits)。在未来的几天,其它站点将陆续上线,例如哥伦比亚广播公司(CBS/ETOnline),家庭购物网络(Home Shopping Network),美国职业摔角(World Wrestling Entertainment)等等。我们也有一些微软产品采用Silverlight的例子,包括MSN Podium’08,XBOX Halo 3(Windows Live使用了Silverlight流媒体服务),Tafiti和MSN Extra。         除了这些令人兴奋的消息,我们还宣布了微软和Novell之间的合作,在接下来的几个月内,Novell将提供Silverlight在Linux上的实现,这个项目称为Moonlight。我们正在积极听取社区反馈,并且支持这个项目,以确保Silverlight实现真正的跨平台应用。          我们感到非常兴奋,能够把这些提供给你。我们期待着你能在我们的平台、工具和服务器/基础架构产品中,找到一致的价值主张(value proposition)。同样在今天可以使用的,还有与Silvelight 1.0兼容的Silverlight 1.1 Alpha九月预览版。   Namaste!...[阅读全文]

posted @ | Feedback (12) |

摘要: [原文地址] ASP.NET enhancements in VS2008 and .NET FX3.5 [原文发表时间] Saturday, September 08, 2007 12:24 AM   今天,让我来谈谈在Visual Studio 2008与.NET FX 3.5中你将会看到的ASP.NET增强的功能。 今年早些时候,我们引入了ASP.NET AJAX Extensions。它是作用于Visual Studio 2005和.NET框架2.0上的一个插件。 随着Visual Studio 2008的发布,这些AJAX的扩展功能成为了集成到产品中的一部分。在我们保持运行时的绝对兼容性同时,我们也加入了客户要求的功能特性,比如让很多新的控件能在一个UpdatePanel(TreeView,Menu,和WebParts)中工作,并增强了客户端Javascript本地化的支持。在工具这一方面,我们在JavaScript智能感知(JavaScript Intellisense),类型推断(type  inferencing)和新控件扩充器的设计时上作了一些主要的工作。详情请参见这里。 LINQ是VS2008中最令人激动人心的新技术之一。为了配合它,ASP.NET将发布一个新的控件,LinqDataSource,来支持web应用程序中LINQ的使用。本质上来说,通过使用VS2005中引入的数据源控件设计模式,这个LinqDataSource控件允许用声明的方式来使用LINQ。有了这个新加入的设计器的支持,开发人员使用LINQ表达式进行数据绑定就变得易如反掌了。 另一个有趣的控件是ListView控件。这个新的数据绑定控件被设计和CSS一起用来给网站设计人员提供强大的排版灵活度。配合在VS2008中对CSS的增强支持,ListView控件使开发人员将标记语言从样式语言中分离开来,从而写出更简洁的HTML语言。这种灵活性使用户可以用有趣的方式显示数据。比如说,ListView支持一种“平铺式”的布局,表单中的每一个单元格都包含了数据表中的一行。支持这种显示方式在很多情景下都很有价值,比如在线产品目录。从数据绑定和事件的角度来看,ListView在ASP.NET开发人员看来应该非常熟悉。DataPager控件作为一个单独的服务器控件,和ListView结合使用可以实现分页导航,效果理想。因此,结合使用ListView和DataPager就可以提供对布局的完整定制。 ASP.NET 建立在.NET框架2.0 Application Services的投资之上——Membership,Roles和Profiles。在VS2008中,我们将这些API以web服务的方式和JSON以及SOAP终端一起暴露出来。JSON终端迎合了AJAX的境况,而SOAP终端迎合了任何遵从SOAP 1.1的客户端,如WPF或者WinForms应用程序,也包括用任何框架写的应用程序。这一功能特性允许客户端利用ASP.NET  Application Services共享通用的成员,使用角色管理功能,并跨数个表示层管理用户配置信息。这也使开发人员可以方便的维护漫游的用户状态。 总而言之,ASP.NET在VS 2008和.NET FX 3.5中将发布新的功能特性,这些功能特性将会使富web应用程序开发更快速。 Namaste!...[阅读全文]

posted @ | Feedback (6) |

摘要: [原文地址] Building and consuming web services [原文发表时间] Friday, August 31, 2007 10:13 AM   先前我就提到过,我想在接下来的几个月中,在我的博客里谈谈Visual Studio 2008的一些功能特性。 今天我想重点谈一下VS 2008中对开发和消费Windows Communication Foundation (WCF)服务的支持。WCF提供了一套统一的编程模型,并内建支持面向服务的概念,从而简化了分布式应用程序的开发。如果结合使用WCF和VS 2008,你将会获得很好的构建和消费Web服务的点对点体验。 1.       快速的WCF服务创建方式。项目模版创建了必要的代码以及项目构件。只要创建一个新的项目,再按F5键,就可以启动和运行一个简单服务。你可以通过运行VS2008,然后选择File|New Project|WCF来体验一下。   2.       内部集成的服务库和测试主机(Test Host)。WCF支持很多不同方式的主机服务——VS2008提供一种集成的测试主机,这样你就能在一个库中开发你的服务,且依然拥有编辑-编译-调试的体验,并稍后再决定要选择怎样的主机服务。   3.       改进了的服务测试表(Service Test Form)。现在,在VS2008中,测试表(test form)提供对复杂类型的支持。如果服务端或客户端有什么问题,测试表工具可以帮助快速找出症结所在。在WCF服务库(Service Library)项目中敲击F5就可以自动运行测试表。   4.       高级的消费功能。我们现在在Visual Studio的代理生成(proxy generation)功能(VS用户将会熟悉这一功能)中也支持WCF,包括与RAD数据绑定功能的集成。除此之外,IDE 现在提供了代理配置的选项。这一选项之前只有在命令行的SDK工具里才有。这意味着一些重要的功能,如代码重用和指定集合(collection)类型等等,现在都可以在IDE中完成。当然,只有当你确实需要的时候你才要去做这些配置,因为默认的配置选项在80%的情况下可以满足你的需求。要使用这一功能特性,你可以在解决方案浏览器(solution explorer)中用鼠标右击一个项目结点,并选择“Add Service Reference…”。   5.       更简单的客户端-服务器调试。现在调试分布式系统变得更加简单,因为VS2008可以从客户端跟踪进入服务端的代码,也可以从客户端击中服务端的断点。要试验这一点,只要将WCF服务以及消费这个服务的客户端项目建立在同一个解决方案中,将客户端项目设定为启动项目,在服务端的代码中设立断点,并按F5就可以了。 VB开发团队的Chris Smith和John Stallo总结了一篇更为详细的文章,一步步带你漫游这些功能特性。 Namaste!  ...[阅读全文]

posted @ | Feedback (4) |