我不清楚C#,C#.NET与ASP和其他“ .NET”语言的区别。

据我了解,.NET是一个库/事物的框架。我认为他们本质上是在访问Windows数据,例如表单元素等,但这似乎不适用于ASP.NET。另外,我看到人们称自己为.NET开发人员。这是否意味着他们精通C#,ASP和其他语言?

总而言之:.NET究竟提供了什么?它与C#和ASP等有什么关系? “ .NET开发人员”是什么意思?最后,为什么没有.NET却永远看不到C#?浏览程序员/ SO等给了我)]。

#1 楼

我了解您的困惑,请相信我对Java世界有相同的看法!无论如何,我将尝试分解您的问题,并一一解决...以及在其中添加其他一些观点,以帮助澄清正在发生的事情:


C#和C#.NET是同一件事... C#
.NET就像您所说的是.NET语言可以与之交谈的代码库。 .NET,VB.NET,托管C ++,F#。是.NET库中用于制作网站的部分。 ASP.NET还有其他小节,例如WebForms(旧的网页制作方法)或快速成熟的MVC库,也值得一看。
Forms(旧技术)或新的WPF(Windows Presentation Foundation)是您通常在.NET中使用的技术来创建传统的桌面应用程序。

我想完成的最后一件事是库和框架之间的区别。近年来,这两个术语已被用作同义词,但是事实并非如此。我想区分两者的最简单方法是:


一个库包含许多功能,您可以选择这些功能,即使用一项技术并不意味着您重新锁定其余部分。这意味着自由,但是您将为您完成更多的工作。
然而,框架却非常确定了您的工作方式。它提供的工作流无论好坏都很难改变。这意味着快速的开发/原型制作,但是如果将来进行重大更改,则可能无法(或非常耗时)实施它们。你做的。

评论


+1,但是#2上的一个小问题-.NET不是“代码库”,而是一个框架(您正确地将其定义为“工作流”,该工作流定义了如何定义和运行程序)。 Microsoft发布的可用于.NET语言的标准库的集合是.NET基类库(BCL)。

–nlawalker
2012年2月1日于20:06

请注意,ASP也可以用来指代经典ASP而不是ASP.NET。

–布赖恩
2012年6月12日20:11



我不同意第1点。C#可以在没有.NET的情况下使用,因此C#.NET明确声明您将C#与.NET框架一起使用,而C#则没有。实际上,尽管大多数人都假定C#与.NET一起使用。

–伊恩·纽森(Ian Newson)
2012年6月12日21:56

#2 楼

.NET是一个应用程序开发框架-它包含许多包含一系列功能的库。

C#是为与.NET一起使用而创建的语言。它不是唯一的.NET兼容语言-其他选项包括VB.NET,F#,托管C ++,IronRuby和IronPython。您可以使用选择的语言编写代码,以使用.NET框架中的功能。

ASP.NET是.NET的扩展,可帮助您编写基于Web的应用程序和网站。在这种情况下,很多总体框架都是可用的(例如,对于WinForms是有用的)。

[经典] ASP是一种较旧的Web框架,也来自Microsoft。尽管名称相似,但ASP和ASP.NET在幕后却大不相同。一个显着的区别是,ASP的唯一语言选项是VBScript和JScript。 ASP是一种较旧且过时的技术,请不要为此烦恼。

#3 楼

首先,.Net是一个字节码框架,类似于Java字节码。 .Net只是BYTECODE。没有“ .Net”官方语言。面向.Net的两种主要语言是C#和VB.Net。 ASP.Net是对所提供的.Net库的扩展,使使用C#或VB.Net(或其他.Net目标语言)编写的应用程序可以用作网站。

开发者说他们知道。 Net通常意味着他们知道C#或VB.Net或两者,并且可以轻松地学习他们不知道的任何一种语言(C#和VB.Net除了通用语法外,都是极其相似的语言)

最后, ASP与ASP.Net不同。他们有很大的不同

评论


那么C#应用程序和c#.net应用程序之间有区别吗?我问,因为您从答案中删除了来自c#.net的.net。 .Net开发人员部分非常有帮助。

–梅根·沃克(Megan Walker)
2011年2月6日在22:51

好吧,C#实际上只是一种语言,与.Net无关。但是,当前C#的所有用法都是使用.Net,因此实际上,“ C#”和“ C#.Net”之间没有区别

–埃尔兹
2011年2月6日23:23

作为“ .NET”开发人员,我之所以提出这一主张,是因为我尽可能避免使用语言专有的方法/功能,因此我只需进行语法更改即可跳过所有.NET语言。

–韦恩
2015年2月12日在17:33



C#语言只是一种语言。您可以使用C#编写任何内容,而无需与.NET后端或框架进行对话。对于那些怀疑我的人,请查看Xamarin C#:一种无需使用任何.NET即可编写iOS和Android本机应用程序的方法。

–菲尔·瑞安(Phil Ryan)
16年11月11日下午4:21

@PhilRyan就其价值而言,发布此答案时甚至还没有发明Xamarin。

– TylerH
18/12/28在19:09

#4 楼

由于只有一个答案提到了Mono,而没有进行详细介绍:

尽管C#语言最初是由Microsoft作为.NET Framework的一部分开发的,但后来由ECMA对其进行了标准化,这意味着符合标准的独立实现语言的发展,确实如此。其中最突出的是Mono。

Mono是与.NET Framework兼容的ECMA标准兼容工具集的开源实现,包括C#编译器和CLI实现(Mono Runtime,等效Microsoft的CLR-.NET Framework的虚拟机)。目的是跨平台运行.NET应用程序。从今天开始,它支持C#4.0和.NET Framework功能的大部分。除了镜像Microsoft的实现之外,Mono团队还在进行自己的创新。但是,Mono不太可能在现在和不久的将来都无法与Microsoft的市场份额和.NET Framework的位置相抗衡。

评论


正在等待有人解释Mono,以纠正错误的假设,即您不与.NET配对就永远不会看到C#。 +1。

– KChaloux
15年1月28日在13:46



#5 楼

乔恩·斯基特(Jon Skeet)的书《深入的C#》相当简洁地分解了.NET。它经常与


编程语言(C#,VB)
结合使用。 />框架库(Windows Forms / ASP.NET)


#6 楼

其他答案很好地解释了每种技术的含义,但我认为它们错过了造成混淆的主要原因之一。 C#和C#.NET本质上是同义词,但是VB.NET和VB不同,ASP和ASP.NET也不同。 VB通常指的是VB6及更早版本,而ASP指的是经典ASP。 .NET框架的发布对这些技术进行了彻底的重新设计,而不是为产品添加新名称,而Microsoft在几乎所有内容上都附加了.NET,但是C#也很新,因此两个名称实际上都指的是同一件事。 >

#7 楼

您必须区分语言,框架,CLR,模式和编程方法。

ASP.Net使用完全不同的编程模式进行Winforms开发,尽管它们具有相同的基础。您可以使用多种语言对ASP.net和.Net应用程序进行编程。

然后在Mono上下文中使用Mono和C#语言-可能值得研究。

请阅读以下链接:http://zh.wikipedia。 org / wiki / Common_Language_Runtimehttp://en.wikipedia.org/wiki/.NET_Framework#Alternative_implementationshttp://en.wikipedia.org/wiki/File:Overview_of_the_Common_Language_Infrastructure.svg

评论


“您可以使用多种语言对ASP.net和.Net应用程序进行编程。”我不确定这是什么意思。您说可以用多种语言编写ASP.net程序。但是我认为ASP是语言,而.NET是您添加的框架。

–梅根·沃克(Megan Walker)
2011年2月6日在22:47



ASP.net是一个框架,我将其视为一种编程方法。可以使用此列表中的任何语言对ASP.net进行编码。en.wikipedia.org/wiki/List_of_CLI_languages ASP类不能。

–杰里米
2011年2月6日在22:59



ASP不是一种语言。

– Marcie
2011-2-8在16:32