• vs2010 新特性 from


    Visual Studio 2010 412日北京首发

         微软大中华区开发工具及平台事业部高级产品市场经理胡德民透露,412日,Visual Studio 2010将在全球发布,五大首发地点分别为:中国北京、美国拉斯维加斯、英国伦敦、印度班加罗尔、马来西亚吉隆坡。

     Visual Studio 2010增添了诸多新特性和功能,微软大中华区开发工具及平台事业部总经理谢恩伟总结了Visual Studio 2010的五大特性:支持云计算架构;Agile/Scrum开发方法;搭配Windows 7Silverlight 4;发挥多核并行运算威力;更好支持C++

    以下三点为Visual Studio 2010 的支柱

    释放创意

    使用 Visual Studio 2010,您可以使用原型制作、建模和可视设计工具实现您的愿景。创造和分享您的构想并发挥团队的创意力量。

    创建任何您能想到的功能,打造敏捷的团队,并开创更多的可能性。

          通过新的原型制作、建模和视觉化设计工具,您可以为 Windows Web 构建创新应用程序

          遇见创意设计的力量 SketchFlowMicrosoft Expression® Studio共同设计新一代使用体验,并与 Team Foundation Server完美集成

          利用多核编程和云开发工具提供的新机遇和功能

    通过集成实现简化

    Visual Studio 2010 是一个集成环境,开发人员可以使用现有技能建模、编码、调试、测试和部署大量应用程序类型。Visual Studio 有助于简化常用任务并帮助开发人员深入探索平台。

    单一集成开发环境进一步考虑了您的技能因素,并按照您的工作方式进行了调整。

          在不离开 Visual Studio 2010 环境的情况下,完成所有编码、建模、测试、调试和部署工作

          利用现有的标准和技能适应日益增多的应用程序类型,包括 Microsoft SharePoint® Windows® Azure

          通过多屏幕支持,更多的合作伙伴解决方案和功能更强的工具编辑器满足您的多元化工作方式。

    确保代码质量

    Visual Studio 2010 提供了强大的工具用于管理项目,维护源代码和发现 bug。测试人员和开发人员可以使用手动和自动测试,以及高级调试工具,帮助确保他们以正确的方式构建正确的应用程序。

    具备主动项目管理功能的强大测试工具可帮助您以正确的方式构建正确的应用程序

          使用新的 IntelliTrace 调试程序隔离应用程序历史记录中的故障点。

          借助主动项目管理工具(包括新报告、仪表板和计划工作表)避免问题的出现。

          使用手动和自动测试工具了解您是否以正确的方式构建了正确的应用程序

    VS2010新特性

    自定义开始页在讲求个性化的今天,什么都要求个性化,自定义,都强调一个大大的i。所以这才有了iGoogle的自定义页面,Windows Live的自定义个性主页。作为程序员们天天使用的开发工具Visual Studio,为了顺应这种自定义、个性化的潮流,也引入了自定义开始页的功能。  Visual Studio 2010的开始页由一个StartPage.xaml文件控制,通过编辑这个文件,我们可以在我们的这“一亩三分地”上任意耕种,我们可以添加内容,添加按钮执行某些功能,甚至可以添加一些自定义的控件完成一些特殊的任务等等。总之,自定义的开始页很好很强大,可以说,自定义开始页是Visual Studio 2010带个程序员们的一份见面礼。下面是Visual Studio 2010默认的开始页,其中我们可以查看新闻,打开项目文档,反馈问题,打开项目等等。

    俗话说,好的开始是成功的一半。自定义开始页是如此强大,可以帮助我们完成很多常见的任务,给我们的开发工作带来极大的便利。下面我们就来对开始页进行一些自定义,完成一些特殊的功能。

    C# 4.0的动态类型和动态编程

    dynamic 的使用范围

    由于 dynamic 它本身就是一个类型,因此可以应用在任何需要类型的地方。这些地方包括:

    1、变量声明;

    2、函数、委托、Lambda 表达式的参数类型,或者具备泛型的类型参数;

    3、TypeOf 运算;

    4、类型转换以及 is, as 运算。

    下面的代码动态的获取一个 COM 对象类型,并通过该类型创建这个 COM 对象的实例,并准备调用该实例上的一个方法实现我们需要的功能。这个例子引用了 Speech API 中的 SAPI.SpVoice 对象,并调用了其 Speak() 方法。编译并运行此示例,我们通过计算机的音箱得到了正确的语音

     1: using System; 

     3: Type type = Type.GetTypeFromProgID("SAPI.SpVoice");

     4: dynamic spVoice = Activator.CreateInstance(type);

     5: spVoice.Speak("Hello, C# 4.0!")

    优点:可以将返回不同模型类型的Action来使用同一个模板,只要你调用了它们都存在的属性或方法即可。

    缺点:如果你调用了一个该类型中不存在属性或方法时,就会抛出一个RuntimeBinderException,所以在使用动态类型时我们要做好约束。

    C# 4.0 中的动态查找为我们实现 COM 和 Office 互操作提供了更好的解决方案,这也使得 C# 更加靠近 DLR,但如何确定在哪些地方应该使用 dynamic 却很难让我们抉择,跟当年 var 一样,dynamic 的提出总会有好的一面和坏的一面,重要的是您是如何处理它的;

    总结,这种Dynamic的方式现在还不支持智能感知,所以一旦写错属性,要等到运行时才能看到,所以它的效果与ViewData[key]的传值模式基本等价。但是由于它是DLR支持的动态类型所以使用时可以使更多的Controller使用同一View。

    在C#3.0中有一个动态类型,var,它可以定义不同的类型,系统在第一次编译时会根据上下文来判断这个变量的准确类型。

    下面看个例子:

    C#代码:

    static void Main(string[] args)

            {

                var i = 10;

                var d = 1.2;

                var f = 1.1f;

                var str = new string[] { "a","b"};

            }

    我们可以看到,在C#中定义了几种类型,都是以var定义的,并且都是方法内部的局部变量。但在IL中我们会看到(红色代码)定义的局部变量会有准确的类型。

    下面我们来看一下在vs2010中,C#4.0中的一个新的类型dynamic,我们同样来定义一个方法:

    static void Main()

            {

                var i = 10;

                var d = 1.2;

                var f = 1.1f;

                var str = new string[] { "a", "b" }; 

         

                dynamic i1 = 10;

                dynamic d1 = 1.2;

                dynamic f1 = 1.1f;

                dynamic str1 = new string[] { "a", "b" }; 

            }

    我们看到C#中的代码基本没变,就是把var换成dynamic,在IL中,var的没有变化,但用dynamic定义的类型(红色代码部分),除了string[]外都是object类型,如果这样看来,dynamic其不是就是object吗?不是的,往下看,会发现每个类型在初始化时就个box,就是装箱,装到dynamic这种类型中了,看来dynamic是个引用类型,是真的吗?

     

    现在我们从装折箱角度来看一下这dynamic与object的区别。

         static void Method()

            {         

                int i = 10;

                object o = i;

                int j = (int)o;

             

                dynamic d = i;

                int k = (int)d;

            }

    我们会发现int i到object o是box,object o到int i是unbox,但dynamic d = i; int k = (int)d;前一行代码是box,但后一行就不是简单的unbox,看来object与dynamic则是不同的,是一个全新的类型,当然低层做了很多工作。

    var与dynamic还一个区别是应用范围,var只能在类成员内部去应用,也就是来充当类成员的局部变量,但dynamic的应用范围就大了,他和一个基本的类型是一样的,可以在有其他类型的任何地方应用。也就是我们的变量动态到任何地方了,不像var只是在一定范围内。

     

    dynamic虽然简化了我们的定义,但这是以牺牲系统性能为代价的。所以大家最好能有准确的数据类型。

    多显示器支持多显示器支持:比如将代码编辑器放置在主显示器中,将输出窗口,类图窗口,代码定义窗口等等提供辅助信息的窗口放置在副显示器中,这样就可以在主窗口中编辑代码,同时有需要的时候,可以及时地从辅助窗口中得到一些有用的辅助信息。在多显示器环境下,我们可以把VS2010 Beta2中的多个窗口布置在不同的屏幕上,极大的提高工作开发效率。

    使用Visual Studio 2010的特性支持TDD在传统的软件开发模式中,我们总是先根据需求编写代码,然后再编写测试程序对其进行测试。这常常使得开发人员在项目的开发后期陷入痛苦的泥潭:当测试程序发现问题后,还要回头再修改当初已经实现的某个类,或者对已经定义好的函数接口进行修改或者扩展。为什么会发生这样的事情呢?这是因为这部分代码的使用需求没有很好的描述。我们在设计类和函数的时候,没有很好的对它们的使用情况进行分析,最终导致代码无法满足测试程序中对代码的使用需求。

     为了挽救痛苦挣扎的开发人员,测试驱动开发(Test-Driven Development, TDD)通过编写测试程序,先考虑代码的使用需求(包括功能、过程、接口等),而且这个描述是可执行验证的。通过编写这部分代码的测试程序,对其功能的分解、使用过程、接口都进行了设计。而且这种从使用角度对代码的设计通常更符合后期开发的需求。

    测试驱动开发开始流行于20世纪90年代,是极限编程中倡导的程序开发方法之一,其主要思想就是先写测试程序,然后再实现代码使其通过测试。在TDD产生之初,曾经被当做程序员们的救命稻草而受到众人追捧。但是后来在实践过程中人们逐渐发现,由于缺乏相应的开发工具的有力支持,TDD的实施变得困难重重:无法高效地编写测试程序;测试程序写好后,无法自动生成代码框架,开发人员还要用大量的时间来编写实现代码。这些现实的因素都困扰着TDD的发展,让大家有一种TDD“看上去很美”的感觉。

      现在,Visual Studio 2010的即将到来,可以让坚守TDD的开发人员们欢呼了:VS2010的“即用即产生”特性,可以让我们根据测试程序,根据代码的使用情况,快速地反向生成相应的代码。可以说,“即用即产生”特性,给TDD插上了腾飞的翅膀。还等什么,我们一起来体验一下“即用即产生”特性给TDD带来的无限便利吧。

    支持Office 在程序员的眼中,Office不仅仅是一套非常流行的办公软件,更是一个成熟的开发平台。Office的应用是如此广泛,几乎深入到企业信息化和个人文档处理的每个角落。通过Office开发,可以帮助企业或者个人完成很多重复性的工作,规律性的工作甚至创造性的工作,正是因为如此,Office开发在软件开发中显得越来越重要,已经成为商业软件开发的一个重要领域。

     为了支持Office开发,无论是从上层的二次开发语言VBA,还是底层的Office开发工具VSTO(Visual Studio Tools for Office),微软都给予了大力的支持。我们这里按下VBA不表,单说这Visual Studio 2010 CTP中新特性对Office开发的支持。

    有道是“樱桃好吃树难栽,Office好用开发难”。做过Office开发的程序员常常会有这样的抱怨:
    “这个垃圾C#,连个可选参数都不支持!”
    “COM接口太复杂繁琐啦,我都快被折磨死了!”
    “告诉客户,他的机器上必须也安装Office 2003!Office 2007不支持!!!!!”

     这是因为Office整个系统本身非常庞杂,Office对象模型难于全部掌握,开发语言对Office开发支持不够等等,这些都使得Office开发就像一头笨重的大象,虽然稳定,但是行动却有些迟缓,开发效率不高。

     不过这些抱怨很快就会成为历史了。在Visual Studio 2010 CTP中,它提供了很多新的特性,来解决上述的这些Office开发中的主要问题,以更好地支持Office开发。当然,这些特性也可以应用在其他场合。这些新的特性包括:

    • 可选参数

     Office提供的函数往往有很多参数,在大多数情况下,很多参数使用默认值就可以了,无需全部指定。但是在C# 3.0中,因为它不支持可选参数,导致每次调用函数都必须给定全部参数,代码繁琐而臃肿。C# 4.0通过对可选参数的支持,很好地解决了这一问题。

    • No-PIA部署

     以前的Office开发,都要求目标机器(用户机器)上同样安装了Office,有时甚至对Office的版本还有特殊的要求。这给Office程序的部署带来了极大的困难:目标机器千差万别,有的安装了Office,有的没有安装,安装了Office的机器,Office版本又各不相同。在Visual Studio 2010中,因为有了No-PIA部署的支持,这些问题都得到了很好的解决。

     有了上述特性的支持,Visual Studio 2010中Office开发开始变得简洁而自然。为了让大家有更加深刻的体会,下面我们以一个实际的例子,来看看这些新特性是如何更好地支持Office开发的。在这个例子中,我们将创建一个表示银行账号的类,然后用这个类的数据填充一个Excel表格,最后将这个表格嵌入到一个Word文档中。(这里需要说明的是,虽然有了No-PIA部署的支持,目标机器上无需安装Office,但是开发机器上还是需要安装Office的。)

    现在,我们就可以轻松地把应用程序部署到目标机器上,而不用去考虑目标机器上是否安装了Office,Office的版本是多少等等繁琐的问题。

    Quick Search特性Quick Search位于Edit菜单中(快键菜单Ctrl+,),这个功能是为开发人员能够快速查找某个方法,属性,字段等类的成员和命名空间,后台cs文件名等,这个查询适用范围是相同解决方案。这个功能在aspx页面中不可用。Quick Search是一个模呼查询的,如上图当我们输入m时,所有本解决方案中的的cs文件中有m的文件,命名空间,类,及类的成员都会显示出来这是最普通的模乎查询。选中要查找的方法名(或其他成员名),回车,本页中的该方法名就全部被选中。

    还有其他的模糊查询,比如我们输入的是MNQuick Search就会列出全部的有MN的字符的方法或成员名,这里只能是大写,小写不起作用,也就是大写字母中间不分隔也会模糊查询,小写则不行。

    还有就是在输入的字符中间加空格,比如输入m n 1,所有有mn1的方法名或成员名就会显示出来,并且这三个字符都出现在方法名中或成员名中。

    C++ 0x新特性美国AT&T贝尔实验室的本贾尼•斯特劳斯特卢普(Bjarne Stroustrup)博士在20世纪80年代初期发明并实现了C++。随后,在面向对象语言迅速发展的时代背景下,C++以其面向对象的语言特性同时对C语言的良好兼容,并且凭借着接近C语言的效率,C++语言在工业界使用的开发语言中占据了相当大的份额。在以后的发展中,C++不断引入新的内容,标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计的流行,使得C++牢牢占据了TIOBE编程语言排行榜前三的位置,成为业界最流行的编程语言。

      但是,随着硬件技术的不断发展以及Java,C#等新型语言的不断涌现,C++的发展受到了很大的冲击,在业界的应用范围不断萎缩。就我们要介绍的Visual Studio而言,C++曾经是Visual Studio 6.0中的首席语言,但是在后继版本的Visual Studio中,C++的地位不断下滑,被后来居上的C#抢了风头。很多钟情于C++的程序员不仅发出这样的感叹:“C++老矣,尚能编否?”

    在刚刚发布的2008年12月TIOBE编程语言排行榜中:java、C、C++(昔日状元)、PHP、VB、C#、Python、Perl、JS、Delphi

    在Visual Studio 2010中我们找到了答案,找到了C++的未来:C++王者归来!

     虽然在C++的发展历程中经历了上述小小的波折,但是我们应当看到,世界上还有无数的C++代码在稳定地运行着,这些代码还需要维护,需要升级。另外,C++在某些领域还是具有不可替代的优势,无数基于C++的新项目正在进行着。微软也逐渐意识到了这一点,开始不断增强Visual Studio对C++的支持力度。在这次的Visual Studio 2010 CTP中,无论是从C++语言本身还是从IDE方面,都给我们带来了很多期盼已久的新特性。花开两朵,各表一枝。我们这里按下Visual Studio 2010在IDE方面的增强不表,单说它对即将到来的C++新标准C++0x的支持。

    IDE增强C++ IDE的增强。VS2010 Beta2除了在语言层面开始支持最新的C++标准外,在IDE以及MFC库等方面也有非常改进。Visual C++改善了IDE的效率,改进了项目系统支持、增强了Visual Studio用户体验、增强的MFC功能等等。

    新增基于.NET平台的语言 F# F#语言的支持。F#是微软研究院、剑桥和微软开发部联合进行的高级开发项目,是微软支持的第一个主要的函数式语言。这可能将成为.NET平台的头等语言。对于一个程序员来说,熟悉一个新语言就跟交一个女朋友一样。 F# 是……一种功能性编程语言(Functional Programming Language),源自 OCaml 和 ML 语言家族***包含在 Visual Studio 2010 中***非常适用于计算敏感的问题、高度并行的问题和面向语言的编程

    对于VS2010的功能提升,你更看重哪几项:

    1.灵活高效的全新IDE

    1.源代码缩放

    这是一个非常棒的效果,因为他对我这种职业的人非常有用,我是一位讲师,可能在我书写代码时,我需要代码字体适中,以便我书写代码,但这时可能与学员在投影上的视觉有冲突,他们看起来小,没关系,当我可以在CS代码上,按住Ctrl来滚动滚轮,对代码进行平滑的放大缩小。(其实这个cs编码区是一个用WPF做的文代查询区)不过遗憾的是,只有在cs的页面上能实现这个功能,如果js,css,HTML等都实现这个功能,我道上的人就该乐了。

    2. 自动创建

     FileInfo FI = new FileInfo();

    上面代码如果我们在cs中书写的话,不引入System.IO的话,要报错的,如果我们选中FileInfo,就会弹出来一个小标签vs2008如下:

     

    可以看到多了两个选项,一项是Generate class for ’FileInfo’Generate other…,前者是自动创建一个类,后者是弹出一个选项框,让用户选择,因为不只有类能new

     

    2.云计算Visual Studio 2010包含了Windows Azure工具,可以简单的实现在微软云平台上的开发,调试以及部署。◆C#以及VB云服务项目的模版◆更改Service Role设置的工具◆本地开发整合Development Fabric以及Development Storage服务◆在Development Fabric下的对Cloud Service Roles的调试◆建立云服务软件包◆浏览Azure Services Developer Portal

    3.并行计算这可是当前热门话题。当硬件通过增加运算核心来提高性能时,由于受到其架构的影响,软件并不能充分地利于多个运算核心所带来的性能提升,甚至有的时候性能还有所下降。就不得不改变应用程序的架构和开发方法,以应对这种多核的趋势,使得自己的软件可以充分利于硬件升级所带来的性能提升,VS2010 Beta2加大了对并行运算的支持。并行编程被简化,本地代码和管理代码的开发者都能够建立具有创造力的应用◆并行编程的IDE支持◆本地C++库,可以使用Lambda函数,并与STL相匹配◆.NET框架的并行扩展,提供了对必要数据以及任务并行的支持,声明数据并行化,以及其他◆多核硬件的资源管理,以及Concurrency Runtime允许的任务计划◆并行调试窗口和图解外观

    新的代码浏览功能是另一项成功。你不仅可以使用Ctrl与鼠标滚动来放大和缩小屏幕,还拥有了NavigateTo快捷方式(Ctrl加逗号)和CallHierarchy导航等新功能,使你的项目开发更为方便。

    调试和TDD

    VS2010在线程调试上得到了很大改善,得到了更多的多线程支持和并行处理能力,这是非常必要的。Toolboxes工具箱和IntelliSense智能感应现在可以对你的目标项目敏感,这样你就不必等到编译或运行时才会发现你使用的功能不被支持。

    Visual Studio 从很早以前就开始支持测试驱动开发,但它在实际应用编写新的stub和同步IntelliSense时经常碰到问题。现在,你可以切换到consume-first模式,确保IntelliSense正常运行并且从中生成stub

    Example

    它是基于WPF的;

    完全安装需要5G的磁盘空间;

    随便打开一个小项目内存占用飙升到270……果然WPF不是盖的;

    这是文本编辑器一个很不错的功能,移动到+-号上的时候对应的方法段会使用背景色来区分。但是问题就是……似乎看起来显示效果很糊啊,看不清楚(尤其是上面的汉字);

    C#的文本编辑器终于出现了个在VB.net里面早就有了的功能:随着你的输入自动缩减关键字列表中不匹配你输入内容的条目;

    文本编辑器多了一个这样的功能,就是当你的光标在一个变量或类名里面的时候,所有相关的上下文代码中相同的都会高亮显示;

    原谅我用VS2008习惯了,第一次关闭文档找不到关闭按钮,原来是在每个打开的文件标签上了;

    内建了新的.Net Framework 4.0,而这个VS2010可以创建从2.0到3.0、3.5、4.0的程序……通吃啊,而且支持最新的F#了;

    VS2008及以前的VS插件统统out!连源代码管理默认的都是TFS了;

    工具箱和项目资源管理器之类的都没变,直接看VS2008的好了;

     

    下面来看一下多出来的几个新鲜玩意儿。

       1.Architecture Explorer (架构浏览器)

       这个东东会让你浏览你解决方案中的所有项目的命名空间,并允许一层一层一层深入下去直到详细乃至更深的定义。有动画蛮不错的,还支持打开文件什么的

       2.Code Definition Window(代码定义窗口)

       这个东东就是当你在代码编辑窗口中选择一个变量或类型时,它会显示出它最原始定义的地方的代码:

     

       现在的项目类型很全了,从WinForm到WCF到WF到SilverLight到WebForm到SilverLight。。。应有尽有 - -

       貌似C#中加入了实时编译的功能,因为我发现有些以前必须在编译时才会报的错误现在写完就会出现提示,很快捷:

  • 相关阅读:
    Python阶段复习
    Python阶段复习
    Python学习笔记
    Python爬虫学习
    Python爬虫学习
    Python学习笔记
    史上最全的Maven Pom文件标签详解
    css3 animation动画技巧
    常用的sass编译库
    compass做雪碧图
  • 原文地址:https://www.cnblogs.com/maliya/p/1718454.html
Copyright © 2020-2023  润新知