第一讲 Microsoft.NET概述

类别:.NET开发 点击:0 评论:0 推荐:

第一讲  Microsoft.NET概述

 

2002年3月22日,微软推出了他的Microsoft Visual Studio.NET的第一个正式版,这个时间的选择是意味深长的,因为这正是微软的开发平台Visual Basic诞生十周年之际,他宣告了Visual Basic的结束,也宣告了编程理念的一个新的时代的开始。

在正式版推出以前,微软已经花了两年的时间检验它的测试版,并且,对它的测试版进行了几次大的改造,所以,我们会发现.NET的正式版和测试版有很大的不同。但是,即使是测试版推出来的时候,这种新的编程理念已经在国外造成了很大的反响,但令人奇怪的是国内反响并不大。但是从去年开始,国内对.NET的需求开始升温,人们终于认识到,在今后十年,.NET必将成为一种占统治地位的编程体系,它是过去十年人们对编程探索的一个总结,也是对未来十年编程体系的一个架构。

我们必然的会提出一个问题,什么是.NET,为什么需要.NET.

新一代开发平台的需求,主要是技术环境的变化,自从上个世纪90年代末Internet出现以来,人们在不断的开发Internet软件,但是这些软件所基于的技术都是在早期形成的,例如:Windows 是上个世纪80年代的技术,COM 是20世纪90年代初实现的,Unix的出现是1970年的事情,Java最初是为家用电器开发的,后来转而应用在Internet上。

以上这些平台最大的问题,就是它们出现的时候都不是为了Internet,所有网络功能都是后添加上去的,使用起来总是不能尽如人意。

进入21世纪以后,人们急需要一种全新观念的开发平台,在这样的背景下,微软经过多年研究,终于推出了全新的Visual Studio.net 平台,这预示着一种技术上的全面更新和突破,因为它从一开始就考虑了Internet。

下面我们来讨论一下有关的问题。

 

一概述

一、 .NET企业级解决方案

 

.NET平台的全称是Visual Studio.net Enterprise Architect(企业架构),这样的命名对.NET是用来干什么,它有什么特点提供了很好的说明,换句话说,.NET平台主要是用来实现企业级解决方案的。

企业(Enterprise),是指以实现其价值为目标的组织机构。这个价值可以是商业价值也可以是非商业价值。组织机构可以是大、中、小型或者是政府组织。事实上,Enterprise的含义,本来就包含了国内所分出来的企业和事业两种形式。

企业级应用体系结构是指用于用于企业和商业组织的应用软件分布式实现体系结构。这种分布式小到可以在企业各部门中分布,大到可以跨国分布。

当我们学习了C#.NET或者VB.NET语言,学习了ADO.NET数据库处理,学习了ASP.NET为基础的Web应用程序开发以后,往往还会有一些疑虑,难道这些内容就是企业级开发吗?当然不是,这只是为了实现企业级开发的技术基础,企业级开发还需要有更深层次的问题需要解决。本课程的任务,就是研究.NET环境下的企业级软件开发的技术实现。简而言之,是在前面.NET编程学习的基础之上,在企业级解决方案的层面更深入的讨论问题,也以说,不学习这门课程,你并不会真正懂得.NET。

在微软推出.NET以前,唯一能称之为企业级开发的就是Sun提供的Java2企业版(J2EE),我们都知道,J2EE在此前很多大型商业应用中有很好的表现,被看成是事实上的标准,并且,许多服务供应商也在编写插入和内容丰富的模块工具。正是由于J2EE的这种表现,大批java程序员才有如此广阔的施展天地。

但是,至少在Windows为基础的服务器上,J2EE的表现还是比较成问题的,它的速度比较慢,消耗资源比较多,而且无法和微软的主流Web服务器(IIS)融合,人们急需要一种具备J2EE所有能力,但又和Windows服务器很好结合的开发和运行平台,正是在这样的背景下,微软的Visual Studio.net Enterprise Architect应运而生。

关于开发平台的选择,有很多是来自于经验,很难说哪种平台更好一些,一般来说,如果你的服务器是采用Windows平台,那么无论项目多大,采用.NET平台开发是最佳的选择。如果你的服务器是使用UNIX系统的大型计算机,那开发平台只有采用J2EE。如果你只是想做一个小型的网站,那就没有必要这么麻烦,你可以使用ASP、PHP甚至更简单的一些东西。

.NET是微软推出来的企业级应用程序开发工具,因此,应用.NET开发,必须了解企业级开发的基本思想。当前,企业级用程序的开发趋势,是提供N层框架,以便于实现安全、可升级、可维护、实用的应用程序。

 

二、企业级应用体系构建思想的发展

 

    企业级应用体系架构的发展,经历了漫长的道路,也可以说是在不断产生问题和解决问题的过程中发展到今天这个样子的,下面,让我们先回顾一下企业级架构发展的过程。

   

1、单层架构的开发

 

早期的企业级应用依赖于单一的大型机,在大型机和个人电脑盛行的时候,应用程序的所有功能都是放在一个大的软件体上(所谓“通心粉”代码),作为个人电脑,这个程序就在这个电脑上,作为大型机,是通过网络终端和客户联系。由于当时系统自身升级比较慢,因此这种系统曾广泛应用于大型机和企业数据中心。

但是,这样的布局意味着系统资源使用不充分。执行不相关任务的用户被迫使用相同的系统资源,一旦有故障将导致所有任务的终止。

 

这种模式的一个改变,就是所谓的C/S结构的出现,在上个世纪90年代中后期,客户机/服务器(C/S)模式被认为是建立企业级应用程序的一个比较合理的解决方案。这种模式的合理性是它的分布式本质,而且比终端模式提供了更多的灵活性。

C/S结构使远程数据流动成为可能,但它本质上还是属于单层结构,如下图所示。

 

表示层      逻辑层    数据访问层

数据库

 

 

 

 

但是,C/S模式有其自身的陷阱,由于每台客户机都是按照独立的机器而配置的,这样就使用户部分相当的复杂,服务器任何的变化,都需要客户机作相应的改变,在过去20年里,这种情况越来越严重,由于企业业务的不断变化,使用这些程序就需要高级维护,这就是说改变业务逻辑、重新编译程序几乎成为一种日常的工作。

在个人计算机上,这种模式业只能工作于特别简单的要求之上,虽然升级应用程序只涉及一台机器,但是当越来越多的用户使用这个程序的时候,软件新版本的推行将会变得越来越困难。

更加头疼的是,当企业数据库比较复杂的时候,在客户端就要求安装多种驱动程序,而如果企业数据库的类型发生了改变,那么重新改变客户程序简直成为一项无法完成的工作。结果,在系统很大时,任何企业逻辑的改变,都可能成为管理上的噩梦,

 

2、多层架构开发

 

为了解决上面的困难,自然会想到把数据访问层独立放置在另一个物理环境上,这样做的好处是,不但能够共享数据,而且数据访问逻辑层的任何变化都可以在一个独立的物理环境下改变,这就大大简化了系统更新和维护的工作量,提高了可升级和可维护性。

 

表示层       业务逻辑层

数据访问层

数据库

 

 

 

 

 

把数据访问层分离出来放置在一个独立的物理环境里面,优点不但可以共享数据,而且数据访问的任何变化,都可以在第二个物理层中进行,提高了可升级可维护性。

尽管人们做了不少尝试,但企业及应用解决方案还是没有一个标准。在90年代后期,微软推出的DNA编程模型,把企业级应用体系结构分为三层:

表示层

   

逻辑层

 

 

数据层

Win32客户

HTML

IIS/ASP

COM/DCOM/COM+组件

SQL Server、Oracle等

 

 

 

 

 

 

 

 

 

 

 

 

 

 

事实上,目前多层结构各个层面的功能一般是这样分配的:

 

表示层(Presentation Logic):指示用户如何与应用程序交互,以及信息如何表达;

逻辑层(Business Logic):装载应用程序的核心,主要是应用程序的业务处理;

数据访问层(Data Access Logic):与数据库的连接,提取数据。

 

这样的二层结构仍然是比较胖的,由于企业逻辑封装在客户端,企业逻辑的任何改变都会带来极大的维护上的困难,例如在Web服务器上,业务逻辑的任何变化都要求重新编译Web服务器程序,这就给版本控制和系统升级带来了很棘手的问题。

解决这个问题的办法,是引入另一个独立的层,也就是业务逻辑层。

 

表示层

业务逻辑层

数据访问层

数据库

 

这就成为一个三层结构,由于各个层是处在不同的物理层面上,所以这样的体系成称为多层分布式体系结构。这时候的表示层只是请求和获得数据,提供用户界面,并不做其它更多的的事情,所以,这样客户端也称为“瘦客户端”。

三层模式的优势在于,它有很强的安全性、可开发性、可升级性和可维护性,事实上,表示层的开发者并不需要知道业务逻辑方面的任何事情,逻辑层的改变也不会影响到其它层的执行效率,同时系统的分离,更有助于设计时任务的分离,这对团队开发提供了现实的可能。

这个多的一层,有时候也称为应用程序服务器(Application Server),或者称为中间件。

这种多层分布式工作机制,主要基于这样几点考虑:

a)减少客户机的维护量,因为前台程序比较简单;

b)把企业逻辑封装在通用的中间件应用服务器中,不同的客户都可以共享同一个中间层(包括Web),而不必每个客户都单独实现企业规则,避免了重复开发和维护的麻烦。由于客户程序相当瘦(这就是现在流行的瘦客户机概念),无论是开发还是发布,都变得简单了。

c)便于升级,当中间件升级的时候,客户程序可能不需要变化;

d)实现了分布式数据处理,把一个应用程序分布在几台机器上运行,可以提高应用程序的性能,也可以把敏感部分封装在中间件,为不同的用户设置不同的访问权限,增强了安全性。

e)减少直接连接数据库的用户数目,减少费用。

 

3、用模块实现系统的团队开发

 

设计一个系统的时候,我们自然会将一些概念集合在一起,把这些概念放在一个共享的模块里面,这样可实现一定数量的分离,独立于目前我们所讨论的层。它的功能可以划分为各种类,并用这些类组成包或者组件。因为降低了各个包和各个类之间的依赖性,所以这些功能可以被应用程序不同的部分使用。

通过定义和维护各个类和包之间的接口,可以替代类的实际实现而并不需要改变依赖于这个类的其它类。

下图用统一的建模语言(UML)简图显示了这个过程。

 

 

 

 

组件

 

状态行为

 

状态行为

 

状态行为

 

状态行为

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.NET开发的基本方式,是使用组件装配的方法,每一个开发者并不需要知道系统的整体状况,只需要知道自己开发模块的要求并尽可能好的实现它。

当一个系统需要开发的时候,首先由系统架构人员书写系统设计规范,提供每个类的技术要求。

然后,模块开发人员根据规范开发相应的模块,同时,测试代码开发人员编写模块的测试代码,一般这两部分人员是同时工作的,边开发边测试,直到模块满足技术要求。

在模块开发完成以后并通过测试以后,再由系统开发人员进行组装,并最后达到系统的总体技术要求。

一般来说,有些通用的模块也可以在其它项目中借用的,系统单元测试在这个时候就显得尤其重要。

现代大型项目开发团队的基本组织模式大概是下面这个样子。

 

项目经理

系统架构师

测试代码开发组

组件开发组

系统开发组

系统测试组

 

 

 

 

 

 

 

 

 

 

 

 

.NET开发平台,为这种多层架构模块化设计提供了友好的功能强大的平台,所以被誉为企业级开发的利器。

 

 

三、我们过去使用的工具有什么问题

 

正是这种分布式系统和团队开发的理念,迫使微软重新审视过去十年来已经形成的一些概念,我们回溯一下微软产品发展的路子。

微软是在1995年开始Internet开发的,在那以前,微软的精力主要在左面和服务器操作系统上。一旦微软认识到这个事情的重要性,他就把它的精力集中于Windows和Internet的嫁接工作上去,使Windows成为Internet开发的重要平台。

根据1999年底一份调查表明,50家顶尖级电子商务网站,有一半是基于微软的COM体系结构的。在新旧世纪交替的时期,COM/COM+技术几乎成为一种标准。

但是,微软平台开发Internet并不是理想的,其中最典型的例子是ASP(Active Server Pages),因为ASP概念上非常简单,开发人员很容易上手,但是,它并不具备结构化和面向对象的开发,加上代码的混用,在系统比较庞大的时候,ASP并不是一个好的选择。

90年代末期java风行一时,其中最重要的原因是java可以很好的设计Internet程序,但是,它主要是通过Applet(小程序)和网页交流,并不能真正用来设计动态网页,虽然JSP能够设计动态网页,但是它仍然是代码混编而且功能也是有限的。更重要的是,为了实现跨平台应用,java是使用所谓“虚拟机”和操作系统交流,这使它运行速度总的感觉比较慢。

所以,直到新的世纪开始的时候,人们对Web设计总的感觉,就是各种复杂的工具和技术松散的帮定在一起,并不能形成一个系统。

在1997年前后,微软已经是PC市场最主要的供应商,于是它开始致力于寻找进行其它的开发,其中最明显的例子,就是进入企业服务器的市场,很多产品脱颖而出,比如:

Microsoft Transaction Service(MTS,事务服务);

Microsoft Message Queue(MSMQ,消息队列);

Microsoft Clustering Service(MCS,聚类服务)等。

这些产品揭开了以前深奥的、专业的、基于大型机的PC技术领域的奥秘。

目前,MTS已经是每个Windows 2000系统的一部分,而MSMQ是系统工具包的一个可选部分,毫无疑问,事务处理已经是大型程序设计不可缺的一部分。

但是微软的开发环境过去一直是以个人计算机为基础的(典型的是Visual Basic),这就和微软现实的发展重点有很大的矛盾,现实的需要,使微软必须提供一种与企业级开发相适应的开发工具,在这样的背景下,.NET出现成为一种必然。

企业级开发的特点,使微软必须重新审视多年来已经被广泛接受的技术,看它是不是还能够在企业级开发领域继续应用呢?例如,我们知道,微软过去一直是以COM(Component Object Model 组件对象模型)机制作为分布式开发的技术基础的,

90年代后期,微软推出的DNA编程模型,希望大部分的逻辑实现,都是由COM中间层来实现。

表示层

   

中间层

 

 

数据层

Win32客户

HTML

IIS/ASP

COM/DCOM/COM+组件

SQL Server、Oracle等

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

但是,当项目很大的时候,COM本身的缺点限制了人们的使用,这些缺点主要表现在如下几个方面:

 

1.              COM的部署比较困难,它需要基于GUID标示符,把组件注册在客户机的注册表中,这在有些情况下是比较困难的。

2.              COM缺乏与其它平台进行互操作的能力,比如在UNIX上就没有办法激活COM组件。

3.              COM缺乏内置的继承,在COM基本结构中,并不具备继承能力,这也就是说COM的面向对象是不完全的,在开发大型系统的时候,这可能是一个致命的缺点。

 

种种这些原因,使微软在.NET平台上必须放弃很多已经成熟的概念,转而采用一种全新的更加适用企业级开发的体系,例如,其中最引人注目的,是在.NET平台中,组件不再使用COM 来连接,转而使用另一种名叫CLR(公共语言运行时) 的全新的方式,这种方式不需要注册,因而避免了基于COM 的应用程序配置和部署上的困难,而且,在.NET平台上一切都是对象,使面向对象的能力得到淋漓尽致的发挥,这样,在.NET开发中就可以大量的使用组件,就可能使分布式机制称为最主要的方式。

分布式结构的优越性还体现在应用程序的规模可变上,即在硬件上可以把组件和服务进行分布,以便平衡网络和服务器的负载,提高效率和可维护性,并且对未来的变化也可以有很高的适应性。

 

可以说,如果仅仅写几个网页或者完成一个简单的数据库功能,其实使用.NET并看不出什么优越性的,.NET的优越性,是给开发大型分布式的企业级解决方案提供了强大的平台支持,.NET平台不再是开发中小型软件的普通开发环境,而是主要用于开发大型分布式企业级系统的工具。我们不能也不需要拿.NET和过去的ASP或者VB、VC进行类比,它们是完全不同,首先是开发理念上是完全不同的。

 

 

四、.NET平台的特点

 

正如我们已经讨论过的,首先最引人注目的,是在VS.NET中,.NET组件不再使用COM 来连接,转而使用另一种名叫CLR(公共语言运行时) 的全新的方式,这种方式不需要注册,因而避免了基于COM 的应用程序配置和部署上的困难,而且,它的全面的面向对象特性,使.NET开发中分布式机制是一个最主要的编程方式。

还要指出来的是,.NET支持多线程编程,这就使.NET可以方便的编写前后台处理的程序,设计出的软件功能将更加全面。

在数据库方面,微软公司对数据访问模型进行了翻天覆地的改造。把原来的ADO 模型升级为全新的ADO.NET 数据源,原来被认为最重要的RecordSet 现在消失了,取而代之的是DataSet 和DataReader,而且不再像原来RecordSet 那样一次只读取一条记录,而是读取整个数据库,然后在内存中建立一个映像,从而实现了断开方式数据库连接和内存管理自动化,有效的减轻了网络和数据库的负担,这个技术,被认为是微软的一个重大技术突破。

在开发动态网页的技术中,.NET加入了一种全新的ASP.NET组件,其中Web Forms方法可以象普通Form一样,把控件拖到HTML编辑器中去,甚至编写程序的方法也和开发Windows 程序一样了,这样一来,大量的Windows 程序员可以方便的转而开发网络程序,这是很多人都期待了很长时间的事情。

Web Form是在服务器中运行的,只把HTML表传给客户机(这点和ASP 一样),但它是编译运行而不是解释运行,所以运行速度明显的提高了,更何况它可以与XML 语言进行完美的结合,这就使新一代的开发环境可以开发出功能更加强大的网络数据库管理系统。

在.NET平台上,不同的语言代码是首先编译成一种中间代码(IL),然后再统一编译成应用程序,这样,不同语言编程的效果基本上是一样的。

下面的图表示了.NET平台的基本结构:

 

内连/互连网上的用户

(浏览器)

内连/互连网上的系统

(任何硬件OS)

本地用户

(Windows窗体)

.NET Framework

ASP.NET

Windows窗体

Web form

Web Service

ASP.NET应用程序服务

控件

绘图

Windows应用程序服务

.NET Framework基类

ADO.NET

XML

线程

消息队列

网络

安全性

诊断

其它

公共语言运行时CLR

内存管理

通用类型系统

生命周期监测

现在和未来的操作系统,Windows 2000等

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

五、公共语言运行时CLR

 

CLR(Common Language Runtime 公共语言运行时)是整个.NET平台的基础,也是平台的核心。CLR的核心是一个执行引擎,它加载、执行和管理已经编译的“中间字节代码格式”的代码,这种代码名字叫做MSIL或者IL(Microsoft Intermediate Languag 微软中间语言 )。这种代码不被解释,在执行前通过内置在CLR中的即时编译器把它编译成本地的二进制代码。

这就意味着.NET有两个级别的编译器,语言编译器把源代码编译成IL,执行时再被编译成二进制代码。

这种技术,使交叉语言继承成为可能。

 

六、.NET Framework基类(.NET base Framework)

 

在这一层中,为数据、输入输出、安全性等提供服务和对象模型,他被称作.NET Class Framework或者.NET base Framework。

需要强调的是,在.NET平台上,所有语言都使用这些基类,使的跨语言环境变得更加广泛和高度的一致。

在.NET平台上不再把各种语言视为一种独立的东西的,而是一种融合。.NET平台上的各种语言,对于托管代码其实使用的是相同的类,所以,你用C#得到的知识,可以很容易的使用在VB.NET程序里面去,你如果有了VC++ 6.0的知识,通过托管代码扩展,也可以很容易的使自己的C++水平迅速上升到VC++.NET层面,这就使你知识面的扩充变得相对比较容易,设计上的选择余地变得更大。

 

七、XML作为.NET的“元语言”

 

大多数.NET地层集成是通过XML完成的,这种标准化的数据格式,使.NET程序之间的信息交流以及和其它语言的信息交流变得更加方便,我们后面的讨论会加深这种认识。

 

八、未来的可移植性

 

.NET平台目前还在发展之中,它在初始设计的时候,已经尽可能多的抽象掉平台特定访问方式,象在Windows设计中常用的API函数的调用,尽管可以用,但已经告诫你尽可能的不要用了。

微软已经把.NET的主要部件提交给国际标准化组织,并决心将.NET在不同操作系统上实现标准化。最终的目标是,在Windows环境下编写的程序,可以移动到另一个操作系统的.NET实现中,而所做的只需要把以编译的代码复制过去运行就可以了。

这其实是现在人们一直对java独有情钟的原因,但是一旦.NET实现了这个目标,.NET强大的功能,是其它的语言系统能难与之比拟的。

不过,这个目标目前还没有达到。

 

九、COM的角色

 

第一次推出.NET平台的时候,有些不了解情况的新闻工作者说:“.NET的出现,意味着COM的终结”。其实这是完全错误的。

首先我们必须明白,.NET内部组件并不使用COM来连接,而是使用CLR这样一种新的方式。但是,它仍然具有和COM连接的接口,其它语言编写的COM组件同样可以在.NET平台上使用。

同时,.NET平台本身就是注册在COM+中,事实上。没有COM,Windows本身就无法启动,所以,怎么能说是COM的终结呢?

正是这样一个原因,在本课程的高级部分,我们将探讨.NET和COM组件交换信息的问题,更重要的,我们要探讨利用COM+技术实现事务处理这样一些高级课题。

 

 

十、关于编程语言的选择

 

.NET平台编程语言是一个庞大的家族,编程语言的选择取决于您的语言经验和所生成的应用程序的范围。尽管小型应用程序通常只使用一种语言来创建,但是使用多种语言来开发大型应用程序也并不罕见。

.NET 平台编程语言(包括 Visual Basic .NET、Visual C#、具有托管扩展的 Visual C++、以及来自各个供应商的许多其他编程语言)通过一组公用的统一类来使用 .NET 框架服务和功能。.NET 统一类提供一致的方法来访问该平台的功能。如果您学习使用类库,将发现所有任务都遵循同一个统一的结构。您不再需要为了编写应用程序而学习和掌握不同的 API 结构。

 

在大多数情况下,可有效地使用所有 Microsoft 编程语言。不过,每种编程语言都各有其相对的实力,您将需要了解每种语言所特有的功能。以下各节将帮助您为应用程序选择适合的编程语言。

 

1)Visual Basic .NET

 

Visual Basic .NET 是 Microsoft 的下一代 Visual Basic 语言。利用 Visual Basic,可快速方便地生成 .NET 应用程序(包括 Web 服务和 ASP.NET Web 应用程序)。用 Visual Basic 编写的应用程序是在公共语言运行库的各种服务的基础上生成的,并且利用了 .NET 框架。

 

Visual Basic 具有许多新功能和改进功能(如继承、接口和重载),这使 Visual Basic 成为功能强大的面向对象的编程语言。其他新的语言功能包括自由线程处理和结构化异常处理。Visual Basic 与 .NET 框架和公共语言运行库完全集成,它们一起提供语言互操作性、垃圾回收、增强的安全性和改进的版本支持。Visual Basic 支持单一继承,并创建 Microsoft 中间语言 (MSIL) 作为本机代码编译器的输入。

 

学习和使用 Visual Basic 都比较容易,因而在过去 10 年中,无数开发人员都选择 Visual Basic 作为编程语言。了解 Visual Basic 后可在许多方面派上用场。

 

Visual Basic 提供如下所示的一些通用项目类型的原型:

 

Windows 应用程序。

类库。

Windows 控件库。

ASP.NET Web 应用程序。

ASP.NET Web 服务。

Web 控件库。

控制台应用程序。

Windows 服务。

 

2)Visual C# .NET

 

Visual C#(读作 C sharp)被设计成一种创建 .NET 应用程序(包括 Web 服务和 ASP.NET Web 应用程序)的方便而快捷的方法。用 Visual C# 编写的应用程序是在公共语言运行库的各种服务的基础上生成的,并且全面利用了 .NET 框架。

 

C# 是最近由 Microsoft 开发的一种简单、精练、类型安全、面向对象的语言,用于生成各种各样的应用程序。任何人只要熟悉 C 和类似的语言,在适应 C# 时就几乎不会有什么问题。C# 旨在不牺牲 C 和 C++ 的功能和控制特色的前提下提高 C++ 编程人员的开发速度。由于这种继承性,C# 与 C 和 C++ 高度相似,所以熟悉这两种语言的开发人员可以在 C# 中迅速开始卓有成效的工作。C# 为高等级安全性、垃圾回收和类型安全提供内部代码信任机制。C# 支持单一继承并创建 Microsoft 中间语言 (MSIL) 作为本机代码编译器的输入。

 

C# 与 .NET 框架和公共语言运行库完全集成,它们一起提供语言互操作性、垃圾回收、增强的安全性和改进的版本支持。C# 简单化了 C 和 C++ 的某些比较复杂的方面而且使之现代化,其中,引人注目的改进有命名空间、类、枚举、重载和结构化异常处理等。C# 还取消了 C 和 C++ 的一些功能,如宏、多重继承和虚拟基类。对于现在的 C++ 开发人员来说,C# 是可供选择的功能强大的高效率语言。

 

Visual C# 提供如下所示的一些通用项目类型的原型:

 

Windows 应用程序。

类库。

Windows 控件库。

ASP.NET Web 应用程序。

ASP.NET Web 服务。

Web 控件库。

控制台应用程序。

Windows 服务。

 

3)Visual C++ .NET

 

Visual C++ .NET 是 Microsoft 的下一代 Visual C++ 语言。Visual C++ 一直是用于创建高性能的 Windows 和万维网应用程序的最佳语言。

 

Visual C++ 提供许多有助于对应用程序进行编码的重要的库,其中包括活动模板库(一套用于 COM 对象的基于模板的 C++ 类)、ATL Server 库(一套用于创建 Web 应用程序、Web 服务和其他服务器应用程序的本机 C++ 类)和 Microsoft 基础类(一套支持为 Windows API 编写的应用程序的类)。

 

Visual C++ 提供如下所示的一些通用项目类型的原型:

 

活动模板库 (ATL) 项目。

ATL Server 项目。

ATL Server Web 服务。

自定义向导。

扩展存储过程的 DLL。

生成文件项目。

托管的 C++ 应用程序。

托管的 C++ 类库。

托管的 C++ Web 服务。

Microsoft 基础类 (MFC) 的ActiveX 控件。

MFC 应用程序。

MFC DLL。

MFC ISAPI 扩展 DLL。

Win32 项目。

 

C++ 的托管扩展

如果正在创建新应用程序或组件,则可利用目前掌握的 C++ 知识来编写具有 C++ 托管扩展的托管代码。使用托管扩展时,可受益于公共语言运行库所提供的支持和服务,如内存管理、跨语言集成、代码访问安全性以及对象的自动生存期控制等。

 

C++ 的托管扩展还提供将现有应用程序集成到 .NET 框架的简单方法。例如,可能需要将某些非托管代码移植到 .NET 中。因为已经有了以前编译的静态链接库、DLL 和各种非托管 C++ 类,所以只需将现有的 Win32 代码编译成 .NET 应用程序即可。然后在时间允许时,可重新设计这些组件以利用托管代码功能。

 

4)Transact-SQL

 

Transact-SQL 是用来存储、修改和检索 Microsoft SQL Server 关系数据库中的信息的本机语言。还可使用 Transact-SQL 创建数据库及存储在数据库中的任何对象,如表、列、触发器、键、索引、视图、存储过程和函数。Transact-SQL 在 Visual Studio 编辑器中和随可视化数据库工具一起提供的设计器中受到全面支持。

 

注意 可视化数据库工具还可连接到 Oracle 数据库。在使用 Oracle 数据库时,可视化数据库工具正确地处理 Oracle 特定的 SQL 语法。有关更多信息,请参阅 Oracle 数据库。

 

5)其他语言

 

Microsoft 与许多公司合作以便将它们的语言融入 .NET 平台中。除了 Microsoft 所提供的语言外,还有许多以 .NET 平台为目标的其他语言,其中包括:

 

COBOL for Microsoft .NET。

Perl for Microsoft .NET。

Eiffel for Microsoft .NET。

Python for Microsoft .NET。

Pascal for Microsoft .NET。

Mercury for Microsoft .NET。

Mondrian for Microsoft .NET。

Oberon for Microsoft .NET。

Salford FTN95 (Fortran) for Microsoft .NET。

SmallTalk for Microsoft .NET。

Standard ML for Microsoft .NET。

Dyalog APL for Microsoft .NET。

 

有关详细信息,请与您的语言供应商联系。

 

综上所述,我们下功夫学习.NET编程是完全必要的,其实仅仅通过上面这些简单的介绍,以上的这些简单介绍,是不是就足以使每个人感到激动呢?.NET是迟到者,但它的迟到,是不是也意味着它将带给我们更多新的观念新的方法呢?

 

我们将从C#语言入手,深入的研究.NET平台的有关问题,从C#入手是因为C#是专为.NET平台打造的一个非常优秀的语言系统,但是,我还是希望大家在掌握C#的同时,也掌握另一种优秀的编程语言VB.NET,这主要是基于这样一个原因,首先这两种语言是互通的,你在VB.NET上得到的资料也可以很容易的在C#.NET上实现,这样就可以大大提高你的资料来源,迅速提高水平;其次,使用VB.NET编程有时候更加顺畅,项目完成的速度也比较快速;另外,C#.NET和VB.NET各自都有自己编程的优势和盲区,掌握多种语言,就可以实现优势互补。

希望通过这个课程的学习,把我们的.NET编程水平提高到一个比较高的高度。让我们静下心来,扎扎实实,更加深入的来学习一个崭新的开发工具.NET吧!

本文地址:http://com.8s8s.com/it/it42373.htm