I always see people writing "C#" and "C#开发者_开发技巧.NET". What is the correct name of this language? C# or C#.net? I'm sorry for this stupid question but it is really confusing (maybe there's another programming language named C#.net?)...
EDIT: if I'm programming against the .NET Framework, why call this C#.NET? Can I use the C# language with other frameworks?
C# is a language, .NET is platform.
There are lot of languages on .NET: C#, Visual Basic, IronRuby and more.
wiki
The other answers are close but not quite right.
- C# is the language, it is specified in an ISO standard.
- .NET is the platform from Microsoft.
- Visual C# .NET was the name of the developer tool in 2002. The name was shortened to "Visual C#" with the 2003 release. The more popular, expansive cousin is "Visual Studio". Subsequent to 2003, Microsoft dropped the independent commercial product called "Visual C#" (along with Visual Basic .NET) and introduced the free Express products. The current version is called Visual C# 2008 Express Edition, some people call it "Visual C# Express" for short.
In the same way, there is C++, and there is "Visual C++". The former is a language, the latter is a tool from Microsoft that you can use to write/compile/test/debug apps in the language, on Windows. (But again, most people use "Visual Studio" , which includes all the capabilities of Visual C# and Visual C++)
Basically,
- C# is the language you're programming in.
- .NET if the framework you're programming against.
The combination is C#.NET. There's also VB.NET, C++.NET, for when you're programming in VB/C++ against the .NET framework.
The language is C#, and the framework/platform it runs on is .NET. C# is purely a .NET language, there is no variant of it that is targeted on another platform, unlike for instance Visual Basic (this is why VB and VB.NET can mean different things).
But C# is always "C#.NET" and is called just C#.
When people say they are using "C#.Net", they mean they are developing on the .Net platform while using C#
"VB or VB.NET" makes sense as there are both .NET and non-.NET versions of the language. It does not make sense with C# because there is only a .NET version.
Similar with ASP and ASP.NET. The non-.NET version is usually called "Classic ASP."
I've never heard the C# language referred to as "C# .NET" but I guess you could reasonably use that term (even if it's a little redundant.)
So don't worry, there is only one C# language.
The C# language is only used with the .NET Framework. So when people say C#, it always means C# on the .NET Framework. Since C# isn't used with any other frameworks (as of writing this) the .NET in C#.NET is redundant.
Visual Basic on the other hand can either be the old VB Runtime or VB.NET. So VB needs the .NET qualification so you really know what you language you are really talking about because VB 6 and VB.NET are pretty different.
When I hear someone say C#.NET, it is usually from someone who isn't a programmer. Most recruiters see .NET appended to things like VB, Visual Studio and ASP, so they naturally append it to C# because for them, it is easier to just think everything is .NET.
There was a time when the marketing guys at Microsoft were sticking the suffix ".NET" on to every MS product they could. Sometimes it made sense - e.g. to distinguish VB 6.0, and earlier versions, from what came after. Other times it was just marketing phooee; at one point I think they were going to rechristen all the server products with the .NET suffix: Windows.NET Server, SharePoint.NET Services etc.
But it was a short-lived phenomenon and quickly dropped (in some cases before the products were actually launched).
In the case of C#, there was no earlier version and only later the prospect of publishing the spec and seeing other implementations, so it made little difference whether it was called C#.NET or just C#.
I guess that's just marketing guys for you - they did exactly the same with the "Active" prefix before that...
The language is C#. C# is also a popular language on the NET platform, so people often say C#.NET. The same thing used to happen for C++, where people would call it Visual C++. In both cases, what they really mean is C# using .NET and C++ using MFC.
C# is language. But it's always C#.net because C# language added to the Visual Studio Family when the Visual Studio.NET released.
In Visual Studio 6, C# was not there.
In Visual Stuio .NET in 2002/2003, C# was introduced.
".NET" for the general branding for VS 2002. So it was attached to everything related to it also "C#" is always-dotnet by it's nature.
精彩评论