最近研究程序。历经各种名词,tc2,tc3,boland c++,c++bulid,vc,vc.net,c#,现在是visual studio 2005。直看的人头晕脑胀。几乎一两年就出现一个新名词。很多东西自己也没使用过,但根据网上的搜索,做个总结吧。所有的一切都是.net引起的。.NET包含一系列的先进技术,里面也有VC呀
1.名词解释:
(1)c就不用说了。地球人都知道。
(2)c++ 是一种编程语言,一般指的是标准C++语言规范,c++的编译环境或者编程工具或者调试环境有很多。如tc3.0 ,vc6,c++ builder,等。
(3).net基本上是微软在近期的一个开发战略,它是一个在网络平台上搭建的一个超级集成的系统. 微软的承诺是.net能让你的计算机在更广阔的空间里共享更丰富的资源. 如果微软成功的话,它将更加霸占互联网. 总之,支持.net的开发就是支持网络开发。C#、VB.net、VC.net是3门常用的支持.net的语言,C#、VB.net是托管语言。VC.net是c++.net版。他们在编译的时候都生成中间语言,中间语言RL,在CLR下运行,就生成了各种操作系统都识别的代码。
(4) .NET Framework:.NET Framework是Microsoft为开发应用程序创建的一个富方革命件的新平台。这句话最有趣的地方是它的含糊不消,但这是有原因的。首光,注意这句话没有说“在windows操作系统上开发应用程序”。尽管.NET Fmmework发布的第一个版本运行在Widows操作系统上,但以后将推出运行在其他操作系统上的版本,这些操作系统包括FreeBSD、Linux、MacIntosh,甚至个人数字助手(PDA)类设备。他用这项技术的一个主要原因是它可以作为集成各种操作系统的方式。另外, 上面给出的.NET Framework定义并没有限制应用程序的类型。这是因为本来就没有限制。.NET Framework 可以创建windows应用程序、web应用程序、web服务和其他各种类型的应用程序。 这样设计NET Framework,是为了让它可以用于各种语言,包括C#语言,以及C++、VisualBasic、JScrtpt,甚至—些旧的语言,如COBOL。为此,还出现了这些语言的.NET版本:MMaged C++、Visual Basic.NET和JScript.NET等,目前还在不断报出更多的.NET版本的语言。所有这些语言都可以访问.NET Framework,它们还可以彼此交互。C#开发人员可以使用Visual Basic.NET程序员编写的代码,反之亦然。所有这些提供了意想不到的多样性,这也是.NET Framework具有诱人前景的部分原因。
.NET Framework 具有两个主要组件:公共语言运行库和.NET Framework类库。
(5)C#是在c、c++全新的一门语言, C#可以理解为用来代替JAVA位子的东东,只不过语法上像C。c#是MS开发的与JAVA一争高下的新一代OOP语言。C#.net=c#。同时C#可以用ASP.net进行Web应用程序开发。
(6)vc.net是C++的.net版本, 是VC6的后继者,是一个开发平台,开发语言是面向对象的C++。就是VC,只不过多了点新的网络功能罢了,也就是vc7.0。支持c#,同时还支持以前的c和c++ 。vc.net 分为7.0和8.0两个版本,其实就是vc6.0的升级。都是C++的编译器。都支持MFC.在微软看来.NET是全部,VC只是一个子集罢了. VC .net编译的程序可以在除95外的微软的大多数操作系统上运行。(不是托管C++,无需安装Netframework );
(7) Visual Studio.NET是MS颁布的新的开发平台,是一套开发工具,包括vc 7.0,vb 7.0,c#,vfp,vj++等。其中的新成员就是Visual C#。而原来的Visual C++也还在。
(7)C# builder是boland公司出的(delphi的公司),是一个IDE环境,C#Builder使用MS的C#编译器,语法同MS的一模一样。
(8)ASP.Net不是ASP的简单的升级,而是发生了质的飞跃,最重要是改变编程思维,ASP.Net继承了ASP的两大基本对象Request和Reponse,ASP.Net在ASP的基础上给这两大对象添加了不少属性和方法,其次是函数定义的区别:ASP中一切程序代码都被<%%> 中,而ASP.Net中函数的定义包含在如:<script language="C#" runat="server"></script>之间
(9)MFC7.0,对ATL的支持比VS6.0好了很多,窗体方面界面可以用DHTML了,然后当然也支持 .NET FrameWork了,可以开发托管和非托管两中环境的代码.
2.几个名词的基本关系是:
(1) vc 、bcb与c++ Builder
vc是微软MICROSOFT的产品,只能在windows下运行,而BCB、C++Builder是Borland公司的产品,c++builder是跨平台的。它们的编译库有引起些不同而已。VC中用的C++和borland C++ 的区别在那里?
如:
a)两个都是Ansi C++的超集,各自增加了一些关键字, 在界面风格和类命名上面也各自成林,vc使用C作为类的前导字符,而BC使用T作为前导字符。
b) 微软公司:vc++==visualc++,一般也简称为VC,是C++的超集,可以支持标准 C++,但是它包含了标准C++没有的部分:MFC ;
c) Boland公司:C++ BUILDER(CB),和VC类似,只是它扩充的库是VCL,通过一定的手段,也CB可以支持MFC; bcb是Borland C++ Builder的缩写
(2)c++ 与.net
C++是程序设计语言,而.Net是一个平台、一系列的技术。
而C++.NET是基于 Microsoft .NET框架下的C++语言, 是C++的.NET升级版
a) .C++编译结果是二进制,可以直接运行
b) .C++.Net支持二进制的(unmanaged),也支持基于DotNet Framework的程序(Managed)
(3)c#与c++:
其实c#和c++没有什么关系, c#是微软新推出的既具备vb的简单易用,又具备c++的功能强大的开发语言。c++与c#的不同还在于c++可以使用非托管类,而c#全是托管类.
C#需要.NET环境。是微软开发的用于对抗JAVA的新的编程语言。相对于C++功能(底层硬件)上有所削弱,并是取消了很多C++中功能强大,但很不安全的特性。还有C#可以用来开发ASP。NET程序。有了微软的强力支持,应该比较有前途的。
C++不需要.NET环境。是一个相对传统的语言。
其实c++与c#的区别在于c++没有完全面向对象而c#是完全面向对象的语言
c#和C/C++的区别,就是java和c/c++的区别 C#和java一样,都是在虚拟机上运行,具有那“一处编译,到处运行”的恶名。 C#和java都有自己的一套类库,和C/c++的是完全区别的。至于语法上,C#已经去掉了可爱的指针,使用隐藏的引用。 C#和java一样具有gc功能,可以实现安全的内存管理。 c#以.Net Framework为依托,编译成IL(中间语言),和VB.Net,vJ#相互调用,就象在一个语言中。
c#的语法简直是java 的翻版,甚至c#的源程序不用怎么修改就可以被java编译,当然有类库的问题。。。
(4) c#与vc.net:
c#是为c/c++程序员设计的.vc.net就是基于.net编译器的(也就是编译成中间代码)的vc。
(5) c#与.net :
.net是一种技术标准和解决方案。
C#是一种编程语言,基于.net技术标准的语言,是.net系列中的一个语言。
C#运行时都会调用.net的类。C#少不了.net库.
(6)c#与VisualC#,C#.NET
c#是微软开发的一种类似java和c++的语言
VisualC#是一种可视化的编程,其实Visual studio.net2003本身也是用.net框架写出来的
C#.NET不仅是可视化编程同时对网络的支持更强大。
(7) Visual Studio .NET与.NET Framework : 类似 JBuilder 与 JDK
3.学习
(1)如果你想做系统底的,建议学C++;如果想做高层应用方面的,建议学C#。
(2)语言上面C#很象JAVA不过没有指针,有点讨厌,不过可以用 unsafe来用指针,可是不推荐那样,如果你用贯了C++建议两个都学,如果你的底子好,花不了多少时间,因为你说你以前用VC6的那样你一定对MFC和ATL很熟悉,所以VC7只是加了一点东西而已没什么而且属性编程比以前的APPWIZARD还方面,所以很快就可以适应了,而C#主要是对.net framework,所以主要学习这方面的知识就可以了
(3) 至少现在,.NET环境还不是很方便,在很多版本的操作系统中,并不包含。NET环境。使用基于。NET 的程序还要安装,比较麻烦。不过根据windows以往的经验,.net一定会被捆绑在操作系统中大面积推广的。不过,专家预测,WIN32编程至少还有10年的发展空间。
(4) .net的主推语言是VB和C#,不仅仅是C#。在.net中,只有VB和C#能轻松优美的写出符合CLS的代码,其他语言(包括MS的C++和Jscript)不是非常难看,就是功能不强。从.net诞生开始就可以看出,未来的.net仅能存在两种语言——VB和C#
(5)C#牺牲了C++的低层功能,它使用了VB的好多语法,学习起来更加简单,不过目前大多数 应用在WEB领域,不过真正想在IT行业做事情,还是要学习C++和java的。