C#和.NET的关系

时间:2011-03-14 14:00:50

标签: c# .net

我知道其广泛的主题但我未能找到一些基本的概述。我想知道这两者之间究竟是什么关系。我知道我需要.NET SP2才能与VS 2010一起使用,因此客户端PC需要具有相同版本的.NET。 如果有人能用几句话告诉我什么是.NET以及它与ti C#

的关系,我将非常感激

6 个答案:

答案 0 :(得分:5)

.NET是一个框架。这意味着.NET平台包含现有代码和体系结构的库,所有使用它的应用程序都是从这些库构建的。因此,不是为每个房子浇筑新的基础,而是从一个坚实的基础开始,随着时间的推移已经完善和改进。除了一个起始基础之外,该框架还可以作为现有代码的一种工具箱,使您无需在每次需要某些东西时重新发明轮子。

例如,winforms是一个既定的基础,只需转到文件>就可以使用基本的用户界面构建Windows应用程序。新项目。如果现有代码库不支持你,你必须自己与GDI接口以生成Windows窗体和用户界面。

C#只是一种编程语言。一个专门用.NET编写的。实际上,大多数.NET框架都是用C#编写的(如果不是全部的话)。它的语法只是C语言的下一个进展,因此从C ++过渡到C#应该不会太困难。这是一个包含很多东西的范式转换,但至少语法通常是熟悉的。任何.NET语言通常都与其他.NET语言兼容。例如,我可以在Visual Basic中编写一个类库,您可以在C#程序中使用该编译库。

因为.NET是一个框架,所以你在其中引用的代码不会被编译到你的程序中,而是在框架中对代码的引用就是所有编译的。这意味着运行程序的客户端也必须具有.NET框架,尽管是精简版本。他们不需要您需要的所有开发工具,因此他们的.NET框架下载量要小一些。运行Windows Vista / 7的客户端无需担心任何问题;它包含在他们的操作系统中。只有运行XP的某些用户甚至不得不担心下载框架,大多数程序都会准确地检测到需求并通知最终用户下载它。

所有版本的Visual Studio都是帮助您构建应用程序和更好地利用.NET框架的工具。我绝不会建议在没有express (free) edition of visual studio的情况下使用任何.NET语言进行编码。仅智能感知是值得的。也就是说,在没有Visual Studio IDE的情况下,可以在.NET中编写代码。你现在可以打开记事本并编写一个C#程序,用免费的编译器编译它,然后运行它。虽然Visual Studio 2010非常棒,并且使用新的WPF平台运行,但2008也将为您提供服务。 2010针对.NET 4进行了优化,但在针对以前版本的.NET时也能正常工作。

底线:

  • .NET是一个编码框架。
  • C#是一种利用.NET构建的语言。注意:Visual Basic也是一种.NET语言,在C#和VB之间进行选择只是一个偏好问题。
  • Visual Studio是一个帮助您编写.NET的工具。

这就是它们的相关性。

答案 1 :(得分:2)

(这可能是重复的,但最好的答案是非现场的)

引自Jon Skeet:


解开版本

有许多不同版本的不同开发元素。您需要区分Visual Studio(IDE),C#(语言)和.NET(框架)的版本。如果没有引入其他内容,很难单独谈论这些内容,但我会看到我能做些什么......请注意,我也会避免引入CLR版本,因为大多数开发人员并不需要了解这一点。

.NET Framework版本

.NET Framework有五个重要版本,不包括Service Pack。该框架包括编译器,运行时和库。

  • 1.0 - 2002年发布
  • 1.1 - 2003年发布
  • 2.0 - 2005年发布,带有新的CLR(处理泛型和可空类型)和C#2和VB 8的编译器。
  • 3.0 - 2006年发布,这只是2.0加上新的库:Windows Presentation Foundation,Windows Communication Foundation,Workflow Foundation和Cardspace
  • 3.5 - 在2007年发布,这是3.0加上新的库(主要是LINQ和一些额外的“基础”库,如TimeZoneInfo)和新的编译器(用于C#3和VB 9)

C#语言版本

有三种重要的语言版本:

  • C#1
  • C#2,介绍泛型,可空类型,匿名方法,迭代器块和一些其他更小的功能
  • C#3,介绍了隐式类型,对象和集合初始值设定项,匿名类型,自动属性,lambda表达式,扩展方法,查询表达式和一些其他次要功能

在此处阅读其余内容:http://csharpindepth.com/Articles/Chapter1/Versions.aspx

答案 2 :(得分:0)

基本上:

  • .NET是一个编程环境,其中包括虚拟机(CLR)和广泛的类库(BCL)
  • C#是一种针对.NET环境的编程语言。它被编译为IL(由CLR执行的一种汇编语言),并使用来自BCL的类

答案 3 :(得分:0)

信息HERE可能对您有所帮助。

答案 4 :(得分:0)

C#是一种编程语言,与c ++非常相似。 .NET是一组库,类,随时可用的方法等。 它与C#严格相关。你在没有注意到的情况下使用它们:)

每个'using'语句都会从.NET中将一组类导入到您的项目中。

答案 5 :(得分:0)

正如Chevex所说,.NET是一个框架,而C#只是针对该框架的几种语言之一。

不确定您对“SP2”和VS2010的意思。您使用的语言功能将决定运行代码的客户端所需的框架版本。

有关详细信息,请参阅此处:

http://msdn.microsoft.com/en-us/library/bb822049.aspx

http://msdn.microsoft.com/en-us/library/8z6watww.aspx