Visual Studio一直是广大程序员所关注的重要的软件开发平台。目前,大家可以从微软网站下载Visual Studio 2008 bate2 版本。此次大会中,微软.NET咨询顾问周敏向大家介绍了微软Visual Studio 2008的基本情况和开发语言的增强等情况。vs编程软件
功能上的增强
目前,微软的Visual Studio团队、SQL Server团队、Office团队都在使用Team Foundation Server进行企业级的应用开发。Visual Studio 2008的设计目标主要有3点:提高开发效率、在开发过程生命周期中使团队成员能够更好的协作、能够开发基于微软最新技术的一些应用。Visual Studio 2008支持.NET framework 3.5,并且对以前.NET framework版本进行支持。同时,在VB3.5和C#3.5中加入了对LINQ的支持。LINQ使用户能够使用VB和C#编写出类似于SQL语句这样的指令,使得开发语言和数据库语言彼此能够结合起来。以前的SQL语言检索能力很强,但是并不擅长进行复杂的运算。现在VB和C#能够获取数据,并且能够对数据进行复杂的运算。这也是在Visual Studio 2008中引入LINQ技术的原因。
在软件过程管理中,Visual Studio 2008引入了CODE MATRIX,可以测量代码的复杂度,对代码的性能进行定量的分析,从而对代码的优劣有一个比较深入的了解。此外,在Visual
Studio 2008中引入了新的负载测试的模型、界面和报表。更重要的是,还有一个连续集成的构建,例如,一个企业有一个开发主线,还有很多开发分支。假定每个开发分支都是其中的一个功能点,当功能点开发完成以后,需要合并到开发主线,在对开发主线进行合并操作的时候,Visual Studio 2008能够自动进行团队构建,并且给出构建的结果。而在Visual Studio 2005时,需要进行很多手工操作。
WPF是微软最新的表示层框架,可以使用户在开发应用程序时,所有的界面都是统一的。WPF具有非常强的3D处理效果。
语言上的增强
在Visual Studio 2008的C++语言当中,MFC可以支持Vista的通用控件。Visual Studio 2008还支持智能感应,除此以外,对于AJAX引入了很多扩展控件,从而可以快速开发ASP.NET AJAX的应用。新的Vista SDK中包含大量的非托管API。UAC(用户访问控制)是Vista的一种访问控制机制,主要是防止病毒对系统的破坏。
Visual Studio 2008中的VB语言不但可以获取数据,并对数据进行复杂的运算。此外,对
XML的处理也更加方便。同时,VB集成开发环境的开发效率有了大幅度提高,变得更加智能。Visual Studio 2008整合了对象、关系型数据、XML的访问方式,语言更加简洁。
高效开发
使用Visual Studio 2008可以高效开发Windows应用。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。使用Expression交互式设计器可以无缝集成设计人员与开发人员的工作流程。
Visual Studio 2008可以高效开发Web应用,集成了ASP.NET AJAX 1.0,包含ASP.NET AJAX项目模板。此外,它还可以高效开发Office应用和Mobile应用。
什么是LINQ
LINQ是一种用来进行数据访问的编程模型,使得.NET语言可以直接支持数据查询。LINQ的目标是降低访问数据的复杂度。LINQ可以用统一的方法访问不同类型的数据,可以将数据作为对象使用,能够更好地与编成模型集成,可以在Visual Studio中进行智能提示。
LINQ可以为SQL Server提供对象到关系的映射。此外,LINQ可以将单个类映射到多个表或视图,可以进行存储查询和实体查询
Visual Studio 2008 可自动执行 WCF 手动任务,包括更新代理引用和消除重复任务(例如创建简单托管项目)。Visual Studio 还能解决跨目标和数据协定类型共享等一些困难问题。在本专栏中,我将逐步介绍其新功能及优势,并对其任何缺陷和解决方法做出解释。尽管我将在此使用 C# 项目设置,但除非我另行说明,否则所有设置同样适用于 Visual Basic®。
.NET Framework 跨目标
Visual Studio 的早期版本通常针对随其一起提供的 .NET Framework 版本。例如,Visual Studio 2005 只能生成针对 .NET Framework 2.0 的程序集,而此惯例并不能反映大多数开发人员所面临的真实情况。通常,开发人员需要在维护针对早期版本的 .NET 而编写的旧版应用程序的同时,还要在其新版应用程序中使用新版 Visual Studio。
此外,此惯例还意味着开发人员在维护为早期版本的 .NET Framework 而编写的应用程序时,无法从效率增强功能(例如 Visual Studio 2005 中引入的代码重构支持)中获益。
问题在于 .NET Framework 各版本不支持跨目标功能。您要么必须安装多个版本的 Visual Studio,要么使用独立的测试和部署内部版本进行补偿。Visual Studio 2008 尝试通过为多个版本的 .NET Framework 提供充分支持(虽然不完美)来解决这一问题。由于实际上 .NET Framework 3.0 和 .NET Framework 3.5 使用的 CLR 版本与 .NET Framework 2.0 使用的相同,唯一的区别在于新引用的程序集,因此 Visual Studio 仍可针对相同运行库,而为 .NET Framework 版本 2.0、3.0 和 3.5(其中 .NET Framework 版本号对应的是发行版本,而不是运行库版本,运行库版本仍为 CLR 2.0)提供跨目标功能。
在 Visual Studio 2008 中,“Properties”(项目)的“Application”(应用程序)窗格包含一个称为“Target Framework”(目标框架)的新组合框,通过该组合框您就可以针对 .NET Framework 版本 2.0、3.0 和 3.5(参见图 1)。
图 1 Visual Studio 2008 中的目标框架属性 (单击该图像获得较小视图)
图 1 Visual Studio 2008 中的目标框架属性 (单击该图像获得较大视图)
Target Framework 值仅在开发时有效,而在运行时无效(您的程序集仍指向 .NET 2.0 CLR)。您选择的值表示您构建程序集时可针对的 .NET Framework 的最早版本。新项目默认被配置为针对 .NET Framework 3.5。如果添加引用,则会变得有些复杂;如果在引用较高版本程序集时,降低 Target Framework 版本,Visual Studio 2008 将提示您引用出错和内部版本失败。Visual Studio 2008 不允许您向其所需 Framework 版本高于现有项目的 .
NET Framework 程序集添加引用。如果您向版本更高的同一解决方案中的其他项目添加引用,Visual Studio 2008 将警告您可能会发生冲突。如果通过浏览程序集来添加引用,Visual Studio 2008 将不会干预您进行操作。
在语言和跨目标方面,请注意,您可以在 C# 中(而不是 Visual Basic 中),通过限制编译器版本来限制使用 .NET Framework 2.0 或 3.0 项目中诸如匿名类型和扩展方法等功能。您可以转至“Build”(内部版本)窗格,然后单击“Advanced”(高级)按钮,并选择“ISO-2 (C# 2.0)”作为语言版本(而不是尚未标准化的默认版本)来执行此操作。
在 Visual Studio 2008 中打开 Visual Studio 2005 WCF 项目时,升级过程中框架版本保持为 2.0。实际上这可以正常运行(请记住,基础运行库版本并未改变),但我建议根据需要手动将其设置为版本 3.0 或 3.5。
使用新项目模板时,Target Framework 版本是最重要的因素。WCF 工作流和整合项目必须针对 .NET Framework 3.5 进行构建;Service Library 项目要求针对 .NET Framework 3.0 或 3.5。“Add Service Reference”(添加服务引用)功能仅当为项目选择 Framework 版本 3.0 或 3.5 时可用,本专栏稍后将介绍此功能。
WCF 提供的主机
Visual Studio 2008 附带了一款名为 的现成的通用服务主机。它位于 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE 中。为了方便使用,我建议将该位置添加到系统的 Path 变量中。WcfSvcHost 是一种简单的命令行实用工具,可接受两个参数:一个是指向包含一个或多个服务类的 .NET 程序集的文件路径,另一个是指向托管 .config 文件的文件路径。例如:
/service:MyService.dll /fig
指定的服务程序集可以是类库程序集 (DLL),也可以是应用程序程序集 (EXE)。WcfSvcHo
st 将启动一个新进程,该进程将自动托管指定 .config 文件的服务部分中列出的所有服务类。请注意,这些服务类及其服务约定和数据协定不必是公共类型,可以是内部类型。此外,自动托管的服务不需要提供任何元数据,但是它们可以发布元数据(如果选择发布)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论