经常有朋友会在.net、c#和asp.net这三者之间区别不清楚,到底它们之间有什么联系呢?在这里我给大家归纳如下:
1、.net是一个平台,一个抽象的平台的概念。
.net平台其本身实现的方式其实还是库,从抽象层面上来看是一个平台。
本人理解的.net核心就是.net framwork。
.net framework包括两个关键组成元素:
a.common language runtime,公共语言运行时(clr)-提供内在管理,代码安全性检测等功能
b.net framework class library,.net框架类库(flc)-提供大量应用类库,提高开发效率
学习.net framework 是所有.net 开发人员都必须的,否则开发.net程序永远都是停留在‘外功’的招式,.net framework 是.net开发高手的‘内功’修行之一。
2、c#是一个程序设计语言,仅仅是一个语言。
程序设计语言仅仅是为了方便开发人员和计算机沟通的工具,虽然c#语法相对c和c 要多一些,但是相对来看c#语法都比较固定,这样使用起来却都很容易。我认可一位朋友说的,c#的语法更严谨!
这里回过来看看.net和c#的关系,不得不提的是.net程序的执行过程。
c#符合.net clr中的公共语言运行规范。cls:common language specification,当然所有的.net language都是符合这个规范的例如:vb.net、xaml和c /cli....等等。
c#需要符合.net cls,是因为.net clr和java 虚拟机类似,有一个中间语言共机器来执行。所有不同语言的.net代码在执行前会被编译成同样的中间语言(msil),所以所有.net支持语言都必须符合符
合cls规范。
p.s:如果做.net 3.0 xaml开发的朋友,可以尝试下ildasm.exe看看xaml的应用程序,会发现原来xaml其实很简单。
3、asp.net是一个网站开发的技术,仅仅是.net框架中的一个应用模型。
用微软公司asp.net快速入门中的一句话来解释,asp.net 是用于生成基于web的应用程序的内容丰富的编程框架。