2002年,.NET Framework为Windows开发提供了新的动力。.NET程序会编译为一种称为Microsoft中间语言(Microsoft Intermediate Language,MSIL)的中间语言。这种中间代码会在运行时通过实时(Just-In-Time,JIT)编译器转换为可执行的CPU特定操作。这种新的方法将一些重要的范式带入Windows开发,其中包括以下几种范式。
在发布.NET之前,每种语言(和开发环境)都使用自己的运行时库。过去,了解一种新的语言意味着还需要了解一种新的运行时库。有了.NET以后,所有语言都使用相同的运行时。2002年时,Microsoft仅支持两种编程语言,即C#和Visual Basic.NET。而现在,使用的.NET语言超过100种。Microsoft本身在语言列表中添加了F#,此外,Microsoft公司还支持IronPython和IronRuby (由自己的社区驱动)。
使用垃圾回收机制,运行时环境可以自动管理内存分配和对象析构。这种行为有助于提高工作效率,使开发人员可以创建出不容易出错的代码。
垃圾回收还可降低编写出存在内存泄漏的程序的可能性。
程序员并不是使用低级API方法,而是使用对象,将API的复杂性隐藏在后台。开发人员可以使用高级抽象概念,而不必处理一些本质的东西以及Windows内部细节,从而极大地提高了工作效率。
.NET在COM和.NET对象之间提供了高度的协作性。.NET代码不仅可以访问COM对象,它还提供能够在COM环境中使用的对象。
.NET称为托管环境,其语言称为托管语言,以此区别于诸如C、Object Pascal (Delphi)以及C++等本机语言,这些本机语言编译特定于CPU的代码。
注意:.NET Framework并不是第一个托管运行时环境。这一殊荣属于Sun Microsystems在1995年发布的Java。.NET是Microsoft对Java现象的积极响应,其很多功能都是受到了Sun的Java实现的启发。
随.NET Framework一同发布的还有Visual Studio,它对.NET的成功起到了非常重要的作用。Visual Studio附带了大约二十四个项目模板,推动了Windows应用程序开发的起步。现在,Visual Studio旗舰版包含一百多个项目模板。
注意:第4章将介绍有关Visual Studio的更多详细信息。
Visual Studio模板的功能非常强大。例如,使用Windows窗体应用程序模板,只需几次单击便可以创建出图1-6所示的应用程序。
图1-6 使用Visual Studio创建的一个简单的Windows窗体应用程序
使用Visual Studio提供的工具,可以轻松地建立图1-6中所示窗口的可视化属性。程序清单1-3显示的是在此示例中应该手动添加的代码。
程序清单1-3:图1-6中窗体的后台代码
using System;
using System.Windows.Forms;
namespace HelloWorldWinForms
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "Hello from Windows Forms!";
}
}
}
尽管.NET具有丰富的对象库和大量功能强大的工具,但它仍然使用基于第1版Windows设计的API。