微软Visual Studio2005开发工具路线图详解二

来源:互联网 发布:com域名注册1元 编辑:程序博客网 时间:2024/05/01 12:10

Visual C#

  在 Visual C# 2005 中,Microsoft 计划在 C# 中注入多种语言和代码编辑器功能,这些功能将为 C# 开发人员提供“专注于代码的 RAD”,从而提高创建业务框架和可重用的面向对象组件的工作效率。这些功能包括泛型、迭代器、匿名方法、不完全类型以及重构。

  随着项目的复杂性不断提高,程序员经常需要一种方式来更好地重用和自定义现有的基于组件的软件。为了达到这样一种高级代码重用,程序员通常利用一种称为泛型的功能。在 Visual C++ 2005 中,CLR 包含一个类型安全、高性能、编译时验证版本的泛型,与 C++ 中的模板以及为 Java 语言提供的泛型相比,该泛型的语法稍有不同,而实现则有很大区别。泛型使开发人员能一次性地创作、测试和部署代码,然后将这些代码重用于多种不同的数据类型,而性能影响可忽略不计。与其他强类型实现相比,CLR 的泛型实现还将减小代码膨胀,从而使源代码更加易于阅读和维护。

  下面的示例,创建一个一般性的 Stack 类,该类将接受为其创建的类型,并以本机方式存储该类型的数据,而不是强制与基类类型进行转换:

public class Stack
{
private ItemType[] items;

public void Push(ItemType data)
{
...
}

public ItemType Pop()
{
...
}
}

  一般性的 Stack 类使用的类型只在实例化时指定。在该示例中,通过在实例化语句中使用尖括号表示法将基元整数类型指定为参数,指示 Stack 类使用该类型:

Stack stack = new Stack;stack.Push(3);int x = stack.Pop();

  除通过泛型提高代码重用性以外,Visual C# 还将提供对迭代器的支持,以便消除与实现枚举数模式相关联的、频繁重复的事务性工作。基于研究型语言(如 CLU、Sather 和 Icon)中的类似功能,迭代器使类型易于声明 foreach 语句对其元素进行迭代的方式。C# 编译器会自动将迭代器代码转换为适当的类,而无需创建类和生成状态机,以便手动实现枚举数模式。

  匿名方法是实用的语言构造,让使用 Visual C# 2005 的程序员能够创建可封装在委托中且后期执行的代码块。它们基于称为 λ 函数这一语言概念,类似于 Lisp 和 Python 中对应的语言概念。匿名方法在其使用时动态定义,而不是作为特定类的命名方法预定义。匿名方法使某些类型的操作更加方便,尤其是方法签名或方法体在运行时需要更改的情况。

  该示例使用一个匿名方法直接修改窗体上的列表框,放弃为该类创建全新方法的做法,而是直接引用那里包含的可执行步骤。用于修改该列表框的代码存储在紧跟委托创建语句之后的执行范围内:

   public class MyForm
   {
      ListBox listBox;
      TextBox textBox;
      Button button;

      public MyForm()
      {
      listBox = new ListBox(...);
      textBox = new TextBox(...);
      button = new Button(...);
      button.Click += new EventHandler(sender, e)
      {
         listBox.Items.Add(textBox.Text);
      };
     }
   }

  Visual C# 2005 还使 C# 开发人员能够使用不完全类型将包含大量源代码的类型分割到多个不同源文件。不完全类型提供更方便的开发和代码维护,使开发人员能够分隔计算机生成和用户编写的类型部分,以便更有效地补充或修改由工具生成的代码。

  除扩展 C# 语言以外,Visual C# 2005 还为 C# 开发人员引入一些代码编辑器增强功能。其中一项增强功能是代码重构,即以规范的方式重新组织代码的过程(图 9)。通过重构,C# 开发人员可在编写代码以后改进代码的设计和效率。Visual C# 2005 包含下列重构类型:重命名、封装字段、更改方法签名、提取方法和提取接口。


9. 重构使开发人员能够有效管理组织混乱的代码。

  其他 C# 代码编辑器增强功能包括:公共编码构造(如循环和 try/catch 块(图 10))的“填充空白”代码扩展、对于属性和泛型的改进的智能感知支持,以及一组丰富的、用于自定义 IDE 格式化 C# 代码的方式的选项。


10. 代码扩展为公共编码构造提供模板。

  通过致力于语言革新,C# 仍将是很多框架设计人员和软件架构师首选的语言。通过用面向组件的功能、现代语言构造和代码编辑器增强功能来补充它的现代语法,C# 将继续信守与专注于代码的 RAD 有关的承诺。

Visual J#

  Visual J# 的 2005 版将引入多项计划增强 Java 语言开发体验的功能。首先,Visual J# 2005 将包含一些针对语言语法的增强功能,以改善代码迁移和互操作性方案。其次,Visual J# 2005 版是完整的 CLS 扩展程序,能够更好地实现与其他符合 CLS 的语言的互操作性。第三,Visual J# 将集成 J# 浏览器控件(目前可以作为附加程序使用),以促进在 .NET Framework 上下文中运行的 Java 小程序的迁移。

  为了改进跨语言的互操作性,并支持将来的 Windows 操作系统功能,Visual J# 2005 将包含多项语言附加功能和增强功能。这些语言增强功能使那些使用 Visual J# 的开发人员能够编写更有效、安全和富于表现力的代码。首先,Visual J# 引入对 volatile 关键字的支持,以改善优化代码方案中的代码灵活性。其次,Visual J# 2005 启用对 .NET 样式序列化的支持,从而在交换数据时提供更高的互操作性。第三,为 J# Redistributable 启用 APTC 属性(允许不完全受信任的调用方),这意味着开发人员可以部署通过不完全信任运行的应用程序(给定适当的代码访问安全性设置)。最后,Visual J# 提供对使用泛型的支持,以便在将来版本的 .NET Framework 中确保跨语言一致性。

Queue q; // System.Collections.Generic.Queue
Stack s; // System.Collections.Generic.Stack
KeyValuePair k;

  除语法增强功能以外,Visual J# 2005 将通过遵守语言互操作性的“公共语言规范”规则成为完全的 CLS 扩展程序。 Visual J# .NET 2003 是一个完全的 CLS 使用者,但只是一个有限的 CLS 扩展程序,即 Visual J# 应用程序可充分访问和利用符合 CLS 的框架,但由于该语言中的一些限制,无法始终创建它们。Visual J# 2005 将通过添加对创作值类型和类型安全枚举的支持来克服这些限制。

  值类型通常被视为轻量级类。值类型和类之间的主要差异是:值类型不需要堆分配,且包含该类型的数据,而类类型的一个变量包含对数据的引用。值类型还被称为用户定义的值类型,它启用以下方案:对象的使用方式与基元类型类似,而没有与垃圾回收相关联的系统开销。Visual J# 中用于创建值类型的语法与创建类类型的语法类似,区别在于值类型是从 System.ValueType 扩展而获得的:

public final class Point extends System.ValueType
{
public int x;
public int y;
}

  枚举(或类型安全枚举)类型是一种值类型。每个枚举类型都具有一个称为基础类型的相应整数类型。该基础类型必须能表示在枚举中定义的所有枚举数值。枚举是类型安全的,它们改善了代码可读性并可在 switch 语句中用作控制类型。枚举类型类似于值类型,不同之处在于它是从 System.Enum 扩展而获得的:

public final class Color extends System.Enum
{
public static final int Red = 1;
public static final int Green = 2;
public static final int Blue = 3;
}

  可按如下方式对上面的枚举类型进行实例化:

Color c = new Color();

int i = (int) c.Red; //i = 1

  作为完整的 CLS 扩展程序,Visual J# 2005 还支持 CLSCompliant 属性 — 开发人员可以将该属性应用于他们的程序集,以指示给定的组件是否只在它公开的 API 中使用符合 CLS 的功能。

  自从 Visual J# 于 2002 年问世以来,就要求 Java 社区的成员具备将 Java 小程序迁移到托管代码的能力,以使它们能在 .NET Framework 的上下文中运行。除提供比小程序更好的功能和安全性以外,这种技术还将缓解有关已计划的结束 Microsoft Java 虚拟机生存期的担忧。为响应这些客户请求,Microsoft 开发了一种称为 J# 浏览器控件的技术。J# 浏览器控件使开发人员能迁移现有的小程序源代码以在 .NET Framework 上运行 — 只需打开源代码,进行最少量的更改或完全不做任何更改,然后重新编译。一旦完成这一转换,开发人员即可利用与目前嵌入小程序类似的方式将 J# 浏览器控件嵌入到 Web 页。另外,J# 浏览器控件还具有对 .NET Framework 的完整访问权限,并包含对使用 Web 服务的支持。J# 浏览器控件将作为 J# 2005 Redistributable 的一部分提供,并且目前可作为 .NET Framework 1.1 的附加程序使用。请参阅 J# 浏览器控件

  通过熟悉的语法和面向对象的功能,Visual J# 将继续提供最有效的工作方式,从而使 Java 语言开发人员可用 .NET Framework 开始生成应用程序。对于使用 Java 语言和 Visual J++ 的学生、教师、教授和开发人员,Visual J# 2005 中的增强功能将拓宽他们可使用的功能的范围。

Microsoft .NET Framework

  通过与 Visual Studio .NET 协同开发,Microsoft .NET Framework 提供一个可靠的基础,可构建基于 Windows、Web 和移动设备的应用程序。这些应用程序按照设计进行集成并能够在整个企业中有效进行部署。在版本 2.0 中,.NET Framework 将通过在其各个功能领域中引入重大的增强功能来进一步扩展开发人员的能力。新的类将使开发人员能更有效地访问常用组件,如打印机、文件系统和注册表。对 Windows 窗体和 ASP.NET 类进行的改进可将常见方案中的代码量最多减少 70%。通过支持 Intel 和 AMD 的 64 位处理器、改进的 ASP.NET 缓存和页处理以及总体改善的工作集和应用程序启动时间,可靠性和可伸缩性也将得到显著改善。

Windows 客户端应用程序开发(Windows 窗体)

  Windows 窗体使开发人员能够具备 Windows 客户端 PC 的全部强大功能。在 .NET Framework 2.0 中,Windows 窗体类将得到增强,以便包含改进的应用程序部署模型、提高的开发人员的工作效率和简化的数据访问。.NET Framework 2.0 还将包含对 Windows 客户端应用程序性能和安全性的显著增强。

  .NET Framework 2.0 非接触部署策略通过引入“ClickOnce”(一种将 Web 应用程序部署的简易性和安全性带给 Windows 客户端应用程序的新技术)进而得到改进(图 11)。建立在自说明性程序集、组件清单和并排组件安装的特征基础之上,ClickOnce 使开发人员能够发布、安装和维护 Windows 客户端应用程序,而无需害怕破坏客户端操作系统上的现有功能。尽管传统的部署会生成可能要求对系统注册表和到共享系统文件夹的安装进行修改的 MSI 软件包,但 ClickOnce 发布被定制为安装独立的、无需注册的程序集。开发人员可选择最适合其 Windows 客户端应用程序的模型:ClickOnce 发布、MSI 部署或者两者的组合。

  使用 ClickOnce 安装的 Windows 客户端应用程序新功能包括:对脱机运行应用程序的支持,回滚到以前版本的应用程序,在 Windows“开始”菜单中列出应用程序,以及控制面板中的“删除程序”目录。此外,.NET Framework 2.0 中的 ClickOnce 部署使开发人员能够用 Windows 客户端应用程序分发 .NET Framework。


11. 发布向导使 Windows 客户端应用程序能够像 Web 应用程序一样方便地进行部署。

  为进一步支持该部署模型,我们正在代码访问安全方面进行大量的投入,以便控制从远程 Web 服务器部署的应用程序的功能,从而防止用户受到恶意代码的攻击。在 .NET Framework 2.0 中,授权操作(可以由已部署的应用程序安全地执行)的范围将得到扩展。此外,对 .NET Framework 进行的增强将使系统管理员更容易安全地产生对代码访问安全策略的更新。

  其次,Windows 窗体将包含能够提高开发人员工作效率的功能和控件。这些功能和控件包括:用于承载 Office 文档的活动文档容器、Microsoft Office 样式工具栏、直观的拆分器控件、可以在不完全信任模式下运行的声音组件、可以通过托管代码安全访问的 Web 浏览器控件,以及随屏幕分辨率或窗体大小的更改而自动调整窗体上控件位置和大小的布局控件。此外,通过在 Windows 窗体异步编程模型方面的大规模投入,多线程应用程序的实现将得到简化。很多 Windows 窗体控件将具有异步属性,并且将由一个能管理异步任务的新的、直观的 BackgroundWorker 组件加以补充。

  这些新的控件和组件将使用为 Windows 窗体设计器计划的增强功能,包括智能标记、视图轮廓线、数据预览等。 使用智能标记,Windows 客户端应用程序开发人员可通过单击鼠标方便地自定义数据绑定控件的外观和行为(图 12);视图轮廓线将简化窗体内控件组的布局,而数据预览将使开发人员能够在设计时查看填充的数据绑定控件。


12. 智能标记可轻松地自定义数据绑定控件和窗体。

原创粉丝点击