65.9K
CodeProject 正在变化。 阅读更多。
Home

开发人员初探 Visual Studio 2010

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.49/5 (16投票s)

2009年9月20日

CPOL

7分钟阅读

viewsIcon

58411

讨论了 Visual Studio 2010 的新功能。

引言

我的许多朋友称我为微软的传道者。作为 .NET 技术的专家,我希望这让我感到自豪。我的第一个程序是用 GW BASIC 编写的。然后我转向 ASP,再到 .NET。当我第一次看到 Visual Studio 6 时,我欣喜若狂(因为当时我是在记事本里写 ASP 代码的)。

从 VS6 到 VS2010,真是漫长的路。让我们来谈谈我的感受。

UI(外观和感觉)

我的系统在 Windows 7 上运行良好,拥有 3 GB RAM。一个月前,我安装了 VS 2010 Beta 版并开始使用它。信不信由你,我觉得 PC 用户会认为开发者不配拥有如此出色的 UI。

  1. 采用了新的 Aero 风格,移除了所有陈旧的 XP 风格。UI 非常整洁,看起来很宽敞。
  2. 编辑器中的 True Type 字体使其更具可读性。
  3. 请记住,编辑器本身是用 WPF 开发的。
  4. 支持缩放功能,这在设计应用程序时会很有帮助,这样你就不会错过微小的细节。

新的编辑器功能

  1. VS2010 中最棒的部分是调用层次结构。选择一个方法调用,然后单击“调用层次结构”。哇!这在一个树状视图中显示了整个程序流程。这是 VS2010 中最棒的部分。

  2. 另一个让我感兴趣的功能是高亮显示。选择一个变量或任何符号,它会高亮显示所有对其的引用。这是我自 VS6 以来就一直渴望的功能。虽然我无法告诉你任何具体优势,但它让程序员在编码时生活更轻松。
  3. 搜索功能很有创新,它像对象浏览器一样搜索所有符号,并支持多重搜索。
  4. “从用法生成”是一个经过深思熟虑的功能。如果需要理解这一点,我需要更好地解释。如果我正在使用类“X”进行编码,并且正在创建一个类“Y”的实例,并想调用一个尚未在类“Y”中定义的方法“Save”;Visual Studio 会在编辑器中给出编译器错误,说它未定义。现在,单击代码会给我一个选项,可以在不离开类 Y 的情况下定义/编写类 Y 的方法“Save”。我还没说完;最棒的部分是它提供了一个存根来工作,因此开发者只需填写符号名称和代码。这适用于方法、变量,甚至类和接口。

  5. JavaScript 的 IntelliSense 比以往任何时候都要好。但将所有支持引入 JS 文件仍然是一个梦想。微软应该找到一种方法,可以在设计时为 JS 文件设置一些属性,以便在编写代码时查看它将被引用的页面。让我解释一下;如果你在 *page1.aspx* 中输入 `document.getElementById('label1')`,它会识别并显示与该元素相关的 IntelliSense 方法和属性。但是,如果你将整个脚本写在一个文件里,比如 *Scripts.js*,它就无法识别,因为 VS 不知道你指的是哪个页面。

应用

  1. WPF 在整个 VS2010 中受到了最多的关注。现在你可以将数据源拖放到 WPF 控件上,包括自定义数据模型、对象以及任何 WCF / XML 服务。我不确定有多少开发者会真正使用这个功能,因为我通常更喜欢编写代码而不是使用拖放。WPF 编辑器现在看起来也相当快。
  2. 实体设计器对于像我这样的硬核程序员以及应用程序设计师/架构师来说非常方便。它允许我们首先创建实体关系模型,然后从中创建数据库。我对这个工具感到震惊。我记得我曾经花了多少时间进行逆向工程。
  3. 数据库项目在新增功能方面焕然一新,它允许我创建类似于在 VS 中创建任何其他应用程序的项目。有些人可能会争辩说,这个功能自 VS2005 就有了,但你必须去探索才能发现微软是如何让程序员的生活变得更轻松的。然而,我必须承认,数据库项目在变得像 VS 中其他应用程序那样健壮之前,仍然有很大的改进空间。
  4. 并行编程是 VS2010 中实现的一项突破性功能。它使用了线程安全类型,而不是传统的类型,可以用于并行编程。我想说这是一个好主意,因为每次我尝试基于线程的编程时,都会遇到一些无效线程访问异常。老实说,我还没有在这个领域进行太多探索,我会在下次发帖时更新。
  5. Silverlight 类库是一个新的项目类型,对任何 Silverlight 开发者来说都是福音。这将帮助开发者编写专门针对 Silverlight 应用程序的高效代码。这比传统的模式有了合理的进步,传统的模式是有人编写一个库,然后配置一个 WCF 或任何服务与 Silverlight 应用程序通信。

语言

VB.NET

  1. 万岁!VB.NET 现在支持自动属性了,这之前只有 C#.NET 才支持。我有一个小型的自写应用程序,可以为属性和变量生成代码。既然有了自动属性,我就可以放心地抛弃我的属性生成器应用程序了。是的,我用 VB 编码,而不是 C#。
  2. 集合初始化器现在已可用,这是前一版本中缺失的功能。总的来说,初始化器是 .NET 的一项突破。
  3. Lambda 表达式是引入的另一个伟大功能。我以前在 JavaScript 中做过类似的编码,现在很高兴 VB.NET 也支持了。这不过是将整个表达式/方法传递/赋值给一个符号。我喜欢这个,它对我来说是一个很酷的编程方式。
    Dim sum = Function(x, y)
    Return x + y
    End Function
    
    Console.WriteLine(sum(1,2))

    在我看来,这看起来像是 VB.NET 中 F# 的一点暗示。

  4. 据说 VB.NET 现在也支持 Ruby 和 Python,但我对实现方式不确定,这仍然在我“尝试列表”中。
  5. 嵌入类型似乎解决了困扰我很久的麻烦。每次我更改强类型类库时,我都必须重新编译所有依赖于它的库,并将其发布到 GAC。现在有了嵌入类型,就可以编写版本无关的代码。你可以在 这里 找到更多相关信息。如果你不在应用程序中使用强类型库,那么这个功能对你来说就没有用。

C#.NET

  1. 正如每一次发布一样,C# 获得了一个新功能,称为“dynamic”。这个关键字会告知编译器该类型是动态的,并且将在运行时绑定。此功能尚未在 VB.NET 中提供。也许,这将在下一个版本中开始,就像每次发生的那样。
  2. Lambda 表达式和集合初始化器已在 C# 中得到支持。
  3. 嵌入类型也适用于 C#。

F#

这是 VS2010 中的一个热门新功能。那么 F# 是什么?微软说,函数可以被当作值来处理。该死!这不是很酷吗?老实说,我还没有在这方面做太多编码,但据我所知,我认为你可以用它做奇迹。

  1. 在 F# 中引入的所有功能中,延迟计算(Delayed Computation)真的很酷。结果将不会被计算,直到它被需要。我现在可以编写一个有效的对象关系模型框架,在不编写任何额外代码的情况下对子实体进行延迟加载。
  2. F# 是一种非常有效的复杂应用程序语言,它拥有传统 .NET 语言所具备的大部分功能(并行编程、异步、泛型、集合)。

然而,人们应该拭目以待,看看它在市场上的表现如何。

结论

这就是我在和 VS2010 接触的几天里能找到的所有东西。我相信还有很多更好的地方。对于那些犹豫是否要升级到 .NET 4.0 的人,不要再想了;直接去做吧。

历史

  • 2009 年 9 月 20 日:初始帖子
© . All rights reserved.