Visual Studio 11 IDE增强

[原文发表地址] Visual Studio 11 IDE Advances [原文发表时间] Thu, Nov 17 2011 10:05 PM 在我之前的博客中,我写过一些关于Visual Studio 11开发者预览版的博客——对编程语言的改进,让开发者在构建高效方案时能更好地表达他们的想法,还有对.NET Framework的改进,构建更迅速,更紧密和更一体化的应用。 在这篇博文中 ,我会转换视角,看看我们为实现提高开发者效率在Visual Studio IDE中所做的改进。其中包括了支持改进后的导航和代码理解,以帮助开发者更快地完成他们的工作。 搜索 Visual Studio环境中一个显著的增强就是让开发者能够快速找到他们所需要的关键信息或者功能。之前,开发者要通过工具窗口,列表,文档和对话窗口,来寻找特定文件,或者选项,或者引用程序集,正确的控件,和大量其他的目标。有了Visual Studio 11,通过一系列特性,搜索集成了IDE,我们称之为“在任意处搜索”。 想要快速找到正确的程序集引用?搜索功能现在已经集成进添加引用…对话框: 想要快速找到你苦苦搜寻的重要命令和选项吗?全新的Quick Launch功能让你能在Visual Studio上千的内容中进行搜索。Quick Launch不仅能帮助你找到命令或者选项,而且你还可以在下面的截屏中看到,这个功能还能让你了解键盘对应的快捷键。 想要在你的solution中快速找到特定文件吗?全新的Solution Explorer搜索功能能够让你通过文件名称来筛选。此外,solution explorer还支持查看文件包含的类和成员,同时工具窗口的搜索功能也应用这样的条目。 出现很多编译错误,想要快速找到相符的标准?现在在Error工具窗口中也可实现搜索了: 一些工具窗口不仅提供搜索功能,还能深入将它们和Visual Studio其他组件集成。比如,全新的parallel watch窗口就提供“用Boolean表达式进行筛选”框: 如果提供了Boolean表达式,调试器就会为每个线程评估标准,只有那些表达式评估为true的线程会被显示: 正如你所看到的,“搜索”已经成为Visual Studio 11中开发集成的一部分了。想了解更多可用的详细信息,我推荐这篇博文,是Visual Studio团队写的。 寻找 和这个“在任何地方搜索”体验很相似的是,在文档中搜索文字,称之为“寻找”,这个体验在Visual Studio11中被简化了,为了最小化开发者必须处理的对话框数量和尽量减少开发者在代码外花费的时间。在Visual Studio 2010中,输入“ctrl+F”会弹出搜索和替换对话框: 现在在Visual Studio 11中,Find通过直接集成在代码窗口的控件启动: 正如在截屏中显示的,我不再需要管理独立的对话框,或者对付多次点击或单个的result窗口以查看我想找的文字,取而代之的是,当我在find控件中输入要寻找的内容,我文档中符合的所有文本就被高亮显示出来。其实,对那些了解并热爱.NET常规表达式的你们来说,一旦你们在regex中输入值就会获得实时的高亮结果。 Visual Studio团队还发表了更多详细介绍该新的Find体验的博文。 预览标签…

0

Roslyn CTP现已问世

[原文发表地址]Roslyn CTP Now Available [原文发表时间]2011-10-19 12:45 在我上几篇博文中,我强调了我们团队在//BUILD/发布的Visual Studio 11开发者预览版中所作的重大改进,在之后的博文中,我会继续这个系列。不过今天,我想强调一些我们团队正在着手的更有远见的创新工作。 我很高兴地宣布我们刚刚发布了微软“Roslyn”CTP,它把C#和Visual Basic编译器作为一项服务来使用。我们在紧张忙碌C#5和Visual Basic11的同时,也在Roslyn上研究对C#和Visual Basic编译器全部重写的课题。介于现在的编译器都是用C++构造的,在Roslyn中,我们从头开始重写编译器,用C#构造C#编译器,用Visual Basic构造Visual Baisic编译器。其实把它们置于自己本身没什么稀奇的,因为长久以来就有用目标语言构造目标编译器的传统,我们的F#和Visual C++编译器就是这样的。值得关注的是这项突破所实现的场景和服务。 一直以来,伴随Visual Studio发布的托管的编译器都是一个透明的盒子:你提供源文件,它们内部处理,转换成汇编。在编译进程中,编译器本身产生的中间信息是不对开发者公开的,然而那么丰富的数据在像使用Visual Studio这样的现代化开发环境来构建高端服务和工具却具有十分重要的意义。 重写这些编译器,Roslyn编译器即能满足普通的需求,同时,还能让开发者获得内部编译器信息,并让他们的工具使用。开发者通过丰富的托管API,可以把编译器的语法解析,语义分析,绑定以及IL加载等都暴露给开发者。作为一个实例,在下面的截屏中,我会用Roslyn API来解析一些代码,并显示其语法树。 C#和Visual Basic使用这些全新的API已经把 Visual Studio语言服务重写了,。用这项服务的新的工具也被开发了出来。。比如,全新的C#Interactive窗口支持用C#写脚本和开发。 Roslyn为开发者构建丰富的工具提供了超棒的机会,比如重构和深度可视化,Visual Studio和其编译器本身工作时也会使用同样的服务。不过还需注意的是,这只是一个初步构建,Roslyn的工作着重于后Visual Studio 11的版本。这个CTP能够帮助阐述一些激动人心的高科技双端体验,但同时,这个特殊版本只支持每种语言的一部分,仅做先驱开发作用,让我们能直接从你们那里收到反馈信息。 了解更多有关Roslyn的信息,下载CTP,告诉我们你的想法,请访问http://www.msdn.com/roslyn。 万福!

0

Visual Studio 11 编程语言发展

原文发表地址 Visual Studio 11 Programming Language Advances 原文发表时间 Sep 30 2011 5:00 PM 在九月的BUILD 会议 上,我们发布了Visual Studio 11开发者预览,Expression Blend 5,Team Foundation Server 11, 和the .NET Framework 4.5。 自从去年我们掀起这些开发工具的浪潮后,我们一直认真研究这些技术,而且我们有机会增强重要功能,包括,IDE, 框架, 类库,语言,和服务。在我随后的几篇博客中,我会与你分享我的一些想法,包括我们在发展这项技术工具的各个领域的重大步骤,以及在帮助开发者,测试人员和其他涉及在日常生活中使软件应用程序生命周期更富成效。 对最开始的这篇文章,我会专注编程语言和我们对表达力及支持工具做过的加强。语言存在于开发人员所作的一切工作的中心。开发人员通常以他们所写代码的质量,风格,可维护性和有效性为豪,而且他们希望使用一种或多种支持语言实现目标。当我们构建开发工具时,我们应该以思维为中心,投入很大精力来改善语言工具和表达力的艺术状态,并使开发人员通过可能的最好的代码完成他们的需要。 JavaScript 和交互性 在Visual Studio 11中,JavaScript成为构造Windows和Web应用程序的第一类语言,都被Visual Studio中最好的工具所支持。除了全面的语言支持ECMAScript 5,显著改善智能显示(包括在大的JavaScript文件上更好的性能和得到很大改善的精确度),编辑器支持例如“跳转到定义”的操作,而且完全支持对Visual Studio中其他支持语言的调试,Visual Studio现在也提供新的集成调试窗口,与HTML/JavaScript应用程序调试交互。 新的DOM Explorer窗口通过HTML Document Object Model (DOM)深入探索和操作元素,样式以及更多。 而且新的JavaScript控制台窗口提供对JavaScript的读-估计-打印循环(REPL),直接集成到Visual Studio中。这给运行的应用程序提供了实时运行的窗口,支持任何JavaScript表达式的评估。这结果也支持可视化,如下列屏幕截图所示: 当计算表达式应用到当前应用程序的上下文时,你甚至可以定义新的功能,然后从控制台窗口直接使用这些功能: 当然,除了针对Visual Studio上JavaScript的工作,如我之前博客写过的关于大量支持设计Windows Metro样式应用程序在Expression Blend 5 开发者预览中使用HTML…

1

Visual Studio 11. NET 的改善

[原文发表地址]   Visual Studio 11 .NET Advances [原文发表时间]   2011-10-26 15:00 在我的Visual Studio 11系列第一篇博客中,我讨论了一些在Visual Studio 11开发者预览版中语言层面的创新。在这第二篇博文中,我会关注一些.NET Framework 4.5开发者预览版中的改进。 语言能让开发者向程序传达他们想做的行为。但是,为了尽可能提高效率,开发者们常常依赖于运行时和库来封装常用功能。我们的团队致力于打造全新的.NET 4.5,让开发者在提高效率的同时,能够用托管代码创造出丰富,可靠优质的软件。我今天的目的不是一一详细介绍其中包含的新功能(要做到这点可能要写一本书的长度),也不想覆盖到Framework所有改进的方面。我只想简单地强调一些我认为具有代表性的内容。想要了解更多.NET 4.5中最新的内容,我推荐你们看下//BUILD/上Joshua Goodman的演讲,以及与这个主题相关的MSDN 文档。 性能 对.NET Framework 4.5来说,在性能改进上下了很多功夫,无论是在改进现有代码性能方面,还是在编写代码方面都更快速,更灵活,可扩展性更强, 公共语言运行库(CLR)团队十分关注改善运行库环境本身的性能。有了像背景服务器垃圾收集器,多核背景JIT编译和优化配置的导论后,托管应用程序(尤其是服务器上的)现在可以更快速启动,拥有更高性能,运行更流畅,延迟也减少了。 性能改进超越了运行库执行环境,例如Framework内的核心组件被内部重写,以在主要场景中提供改进的性能。比如.NET中的Stream类存在于大多数I/O相关操作的中心位置,用Stream来异步读写是很常见的,而现在这些操作在.NET 4.5中就少了许多。另一个实例就是,WPF中的项目控件在处理某类数据时也更快了。 在这个发布中,这项Stream工作就是我们非常关注异步的一部分。正如我在前一篇有关语言的博文中提到的,C#和Visual Basic在编写异步代码时,扩展了对一流语言的支持。这个支持并不局限于语言,并加入了.NET Framework的库。全新的基于任务的API也被添加进Framework,包括贯穿于网络和网页服务堆中的BCL类型,同时也添加到了System.Xml和System.Data库中,以及更多。 了解更多信息,推荐你们观看//BUILD/中的以下演讲: Mark Miller和Pracheeti Nagarkar的 “深入挖掘.NET Framework内核” Stephen Toub 的“用.NET和VisualStudio构建并行应用程序” 网络 如今很少能看到独立应用程序,就是那种不用某种方式进行交流的应用程序。.NET一直以来有着丰富的高质量网络编程库,无论是对低级的基于套接字的编程还是高级的通过网络服务进行的通信都很有用。.NET 4.5对开发越来越多的互相关连的应用程序提供根本的支持。虽然在.NET 4.5中有很多有趣的与网络相关的改进,在这里我只想特别介绍三个最具代表性的。 WebSocket是一个全新的双向通信协议,它支持客户端与服务器间低延迟通信。这对执行交互式的应用程序来说很棒,比如在线游戏,它会受益于服务器和客户端的“推动”,而且.NET 4.5还包括在ASP.NET和在WCF中对WebSockets的支持。.NET 这次的发布还出现了全新的HttpClient类,它能让客户端和服务器更简单有效地使用现有网络API。 另一个我想说的改进就是任务和WCF的整合。有了先前提及的语言支持,跨越Framework的异步API通过任务就公开了。除了这些.NET中包含的API,还有通过Visual Studio生成的API。由Add Service Reference…对话框创建的WCF网络服务终端是这类API的一个重要部分。在先前的发布中,这个工具默认只在同步操作时生成,你可以使用高级配置对话框来选择公开异步操作。现在,在Visual Studio 11开发者预览版本中,默认情况下工具不仅仅生成异步操作,它还会使用基于任务的异步模式。 这就意味着所有你添加服务引用的网络服务会即时支持在等待异步方法。以下是使用其中一个生成的代理来做异步调用,来搜索Bing的例子: 了解更多有关.NET…

0

创新杯:大家的选择

原文发表地址 Imagine Cup People’s Choice 原文发表时间 2011 6-20 8:50 AM 创新杯把世界各地各行各业的学生召集起来,赋予他们一项强大的挑战:用技术解决世界上最棘手的问题。 我已经参加这个比赛九年了,每一年,我都惊叹这个项目的卓越。创造者不仅仅是创新者,更是忙碌的学生。然而他们对开发项目的管理,可以改变很多人的生活。 当我看到项目清单,会情不自禁地注意一些强劲的趋势,这些趋势反应了学生们在技术前沿扮演的角色。首先,软件设计项目中的75%从新的角度运用了Windows Phone 7,比如诊断疾病和增强医护。一半的软件设计项目使用Windows Azure在方案中平衡分享数据。而且我们有十个项目运用Kinect。 Imagine Cup 2011全球总决赛定在7月8日至13日,在纽约举行。今年,超过400多位国际学生,组成来自73个国家的124个学生的队伍,将在此汇聚角逐最高荣誉。从今天开始,大家都能参与到这场令人兴奋的活动中,为创新杯2011全球人民的选择投上你宝贵的一票。 全民的选择竞赛让公众有机会看到许多即将出现在世界总决赛场上的项目,并选择他们心目中的最爱。你每天可以投一次票。选择你最关注的问题所在的项目,或者引以为豪的为你国家的队伍投票。我推荐你们看一下视频,准备好留下深刻印象吧。 了解更多有关Imagine Cup和投票的信息,请访问全民的选择网站。祝贺所有进入今年总决赛的选手和队伍! 致敬!

0

用Visual Studio 构建未来

原文发表地址: BUILDing the Future with Visual Studio 原文发表时间: 13 Sep 2011 11:20 AM   从参加创新杯的同学们,到硅谷的下一个创业公司,到将现代效率融入成熟商业的企业,当今的程序员们有三个共同点:他们都在通过他们构思的软件来改变和改进这个社会; 他们通过深入学习更深的知识和技能来投资自己;并且他们都需要有强大的工具来帮助他们实现目标。 在微软,我们热衷于提供最好的工具来帮助这些程序员获得成功。 这是我如此兴奋来到加利福尼亚阿纳海姆参加BUILD大会的原因。 在这里,Steven Sinofsky刚刚完成了一个主题演讲,宣布了Windows 8和Visual Studio 11 Express for Windows Developer Preview的诞生。我们将提高程序员创建成功的创新解决方案为己任, 这也是我们期望帮助你们利用已有技术的来实现这个的原因。 不管你们的技能是集中于 HTML、JavaScript还是关于C#、Visual Basic或C++,Windows 8和Visual Studio 11给了我们令人兴奋的机会。 发布的这些Windows和Visual Studio中最值得注意的改进之一是能够用HTML创建面向用户的Windows Metro 风格应用程序功能的实现。很多人投入巨大精力去学习创建引人注目的Web体验,现在你们可以将学到的HTML、Javascript、CSS知识应用到创建适用于Windows 8的丰富的客户端应用程序中去。 Visual Studio 11为这些尝试提供了终端对终端的支持,包括开发、调试和部署这整个生命周期。为了补充这个以代码为中心的想法, 我们通过Expression Blend 5 Developer Preview引入了一个独特的可视创作工具来利用HTML来设计Metro style应用程序。 Blend提供高保真的可视HTML边界编辑和CSS样式设计, 而且还能和客户端应用程序中流行的动态生成的界面有效协同工作。 HTML和Javascript只代表Microsoft客户端中的一小部分。对于主要技能集中在C#、Visual Basic或C++的程序员来说,我们对托管和本地化技术都做了改良,涵盖了它们的运行时、库、编译器和界面层。程序员对XAML的研究对Windows 8来说继续适用,他们可以用XAML与C#、Visual Basic和C++编写Metrostyle应用程序。…

0

Blend for HTML展示

[原文发表地址] Expression Blend for HTML [原文发表时间] 2011-09-15 1:20 在上一篇博文中,我着重讲述了如何利用已有的HTML、CSS和JavaScript技能来开发Windows Metro 式应用程序。如果您处在代码世界中,Visual Studio为您提供了非常棒的环境来编写、编辑、测试、调试和部署这些应用程序。当然,强大的应用程序需要强大的用户界面。对需要可视化、以设计为中心的方式来创建您的用户界面面的读者,我们为你们打造了一款全新的Expression Blend,针对用HTML5和CSS编写的Windows Metro 式应用程序的可视化编辑做了彻底的重建。和大部分其他HTML编辑器不同,Blend for HTML具备无与伦比的处理AJAX-Style、以Javascript为中心的UI的功能, 专注于应用程序设计,而不是网站。 Blend for HTML为编辑HTML和基于CSS的用户体验提供了丰富的工具集,帮助您可视化地在高保真设计界面上创建、布局和设计用户界面。尤值一提的是, Blend for HTML让使用CSS的过程变得更有意思:您可以集中关注创造而不是语法,并且任何操作,都可以立马获得视觉反馈。创建很棒的用户体验通常是一项复合性的工作,涵盖开发和设计。因此,Blend for HTML与我们之前发布的Expression Blend for XAML基于同样的理念: 配有杰出的开发者-设计者用户工作流和 丰富的以设计为中心的可视化编辑环境。 Blend for HTML的视图以设计为中心,Visual Studio则为您提供以代码为中心的实现。Expression Blend和Visual Studio共享相同的项目工程文件,能被单个人或具有专门技能的一组人同时使用。 下面是Blend for HTML第一个预览版的几个亮点: · 强大的可视化CSS编辑环境和可预览的高效CSS与HTML5标记生成。CSS3添加了一系列新的布局技术,能更好地适应可调整大小的动态场景。Blend for HTML也为新的CSS表格和Flexbox布局模块提供了丰富的可视化环境。 · 使用相同的渲染引擎的应用程序在运行时 能设计界面上准确呈现。同样重要的, Blend可以显示和编辑Javascript代码动态生成的用户界面和内容。因为动态生成和修改内容通常在客户端HTML应用程序中发挥核心作用。只考虑HTML和CSS标记,传统的HTML编辑工具不能准确地呈现和编辑这样的用户界面。相比之下,Expression Blend则正好在设计界面上执行您的应用程序代码,从而 布局、控件、动态内容和应用程序中别的代码依赖部分就会像您想要的那样显示。 如此Blend中的可视化编辑的范围就比其他的可视化工具要广。 所见即所得, 即使它是动态生成的。 · 复杂动态应用程序状态设计。…

2

Visual Studio LightSwitch发布了

[原文发表地址] Visual Studio LightSwitch availability [原文发表时间] 2011-07-26 10:20 今天,微软Visual Studio LightSwitch 2011版已经向MSDN注册用户开放下载。没有在MSDN注册的用户可以在7月28日星期四开始下载LightSwitch,或者也可以在今天下载一个免费的试用版。 LightSwitch是Visual Studio产品大家庭中最新加入的成员,这是一款面向大众的开发工具,帮助各种技能等级的开发者更快、更简洁地为桌面,web和云创建各种应用程序。LightSwitch应用程序在模板和直观工具的帮助下,可以快速启动和运行,这些工具降低了数据驱动应用程序构建的复杂性,它包括UI设计工具,以及将应用程序部署到桌面或Windows Azure云的工具。LightSwitch能让你在构建你的应用程序时,能关注于真正的商务需要而不是构建应用程序时的一些细节。 我在这里推荐大家去试一下LightSwitch 2011,看看它在构建应用程序时多么有用。要详细了解如何使用LightSwitch来创建基于数据驱动的应用程序,请参见Jason Zander的博客。 万福!

0

在DevLabs上发布Debugger Canvas

[原文发表地址] Debugger Canvas on DevLabs [原文发表时间] 2011-06-14 1:00 今天,我们正在DevLabs上发布Debugger Canvas。 Debugger Canvas在Visual Studio Ultimate调试器的逐步跟踪代码方面具有新的用户体验。它可以显示出在带有调用行的canvas上追踪到的每一个函数的代码以便你随时掌握全部情况和各种细节。 Debugger Canvas把所有代码联同调用路径一起显示在单一界面上来浏览,甚至可以编辑。比起以前一次只能查看一个文件标签,你还得把所有的代码都记在脑子里,现在Canvas上所有的路径你都可以一览无遗,这样通过应用程序,你就能轻轻松松地追踪控制和数据的动向。下面是一个实例,我们已经追踪进入了一个网站购物车的添加物品函数的执行界面。这项功能需要几种函数相互协调来完成,而Canvas则将它们一一陈列,让你轻轻松松就能找到并修复错误。 当然,把相关代码一起陈列在canvas上的概念适用于许多场景。此次的发布,我们以调试做为开端,因为这个任务往往需要同时关注来自多个文件中的函数。然而,当打开合适的选项后,你就能在Debugger Canvas中导航并编辑代码。 Debugger Canvas还强调了一些我们曾在Visual Studio 2010 Pro 和Ultimate中介绍过的技术的潜能。它很好地发挥了新代码编辑器的灵活优势,让每个文件片段都有一个全功能编辑器,并以bubbles的形式呈现在Canvas中。我们把Debugger Canvas建在Visual Studio Ultimate最上方,这样我们就能使用Dependency Diagrams的基础技术在canvas上识别和显示正确的片段。这让我们在此次发布中能够支持C#和VB,同时也让我们有可能在未来支持更多的语言。将Debugger Canvas建在VS Ultimate上方还使我们能为IntelliTrace提供新的用户体验,还有一些很有趣的情景,比如,“当我点击这里的时候提示我哪个代码正在运行”。 Debugger Canvas是布朗大学和微软研究小组的共同努力成果,结合了布朗大学Code Bubbles和微软研究小组Code Canvas的创新理念。尖端研究由布朗大学以及其他世界各高校完成,以协助改进开发团队产品和软件的质量。通过微软研究小组,我们与学术界一起协作努力,将此项创新理念运用到Visual Studio中。 带上Debugger Canvas去转转 我们与DevLabs项目的目标是能尽早获取反馈,洞悉问题所在,并扶持这些好的想法向正确的方向发展。尝试一下Debugger Canvas,然后将你遇到的错误,问题和想法及时反馈至我们的论坛。我们真诚地期待你们的反馈。 万福!

1

针对异构硬件的C++ AMP和PPL

[原文发表地址] Targeting Heterogeneity with C++ AMP and PPL [原文发表时间] 2011-06-15 16:30 先前,我发表了博文,从并发并行方面探讨了软件发展的主要趋势。确实,如今的多核系统随处可见。你可以用许多主流编程语言来把多核系统作为实现目标,而且我们还通过Visual Studio 2010提供并行开发和调试方面的市场领先工具。你可以看到我发布的关于VS2010中C++的并发增强方面的博文,而在这篇博文中,我将介绍我们并行调试工具的概况。 在过去的几年中,我们见证了异构硬件的一些趋势。比方说,处于运算方便考虑,开发者们利用GPU的优势,来完成数据并行算法。在适当的程序模型中这样的运用非常成功。微软希望把利用像GPU这样的异构硬件来编程演变为一种主流。就像我们曾对多核进行过变革,现在我们也要将这种能力赋予下一代Visual Studio。 我非常兴奋地宣布,我们要向大家介绍一项新技术,它有助于C++开发者使用GPU进行并行编程。今天,在AMD融合开发者峰会上,我们公布了C++ Accelerated Massive Parallelism (C++ AMP)。此外,我还要高兴地宣布我们决定将C++ AMP的规范设为开放的规范。 建立在Windows DirectX平台之上,C++ AMP的运行可以允许你把所有主要的硬件供应商的硬件作为实现目标。我们希望这也将会成为下一代Visual C++编译器中的一部分,并能融入下次公布的Visual Studio体验中去。 另外,在并行计算方面我们还有很多其他工作要做。我们还发布了下一代Parallel Patterns Library (PPL)和C++ Concurrency Runtime的新增强版。你能找到易于使用的C++模板和runtime支持,无论是带有PPL、Agent还是C++ Concurrency Runtime的硬件,你都能轻松地实行运算。有了C++ AMP和PPL,我们旨在让下一代Visual Studio成为一个高效的编程环境,支持异构硬件。 我们会尽快整理AMD 融合会议中Herb Sutter的主题演讲和Daniel Moth的自由讨论记录。欢迎登陆Visual C++团队博客或者Channel 9观看视频。 万福!

0