views:

301

answers:

10

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?

+16  A: 

C# is a language, .NET is platform.

There are lot of languages on .NET: C#, Visual Basic, IronRuby and more.

wiki

x2
In a question that's explicitly about the naming, you should probably get the capitalization right.
Joachim Sauer
Just a quick note that "Visual Basic.NET" is actually the name of the .NET flavour of VB - it's an entirely different beast from "traditional" Visual Basic and really only shares a syntactical similarity to that language.
Ryan Brunner
Ryan: Microsoft calls the latest version of VB "Visual Basic 10", not "Visual Basic .Net 10". But people often call the language vb.net (myself included, and SO included) to differentiate it from pre .NET versions. It's still the same (evolved) language though, as you can see with the version number.
Meta-Knight
+5  A: 

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.

iKenndac
A: 

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.

Eric Palakovich Carr
of course, writing in Visual-C++ doesn't require the use of MFC.
Cheeso
+3  A: 

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#.

reko_t
C# is always"C#.NET"? I don't think so. I know that you're trying to express that C# is always run on C#, but that doesn't make it "C#.NET" anymore than IronPython is "IronPython.NET".
Joachim Sauer
"C# is purely a .NET language, there is no variant of it that is targeted on another platform" Not true at all. C# is the thing defined by the "C# Language Specification" which does not require .NET at all.
Mehrdad Afshari
The reason I put is in quotes it doesn't sound just right, but didn't really figure out a better way to say it. My point was that C# is a .NET language, and there's no language called C#.NET and whenever people do say C#.NET they mean C#.
reko_t
You can write c# programs on linux as well using mono. See en.wikipedia.org/wiki/C_Sharp_(programming_language)
sindre j
True, and it does run on another frameworks than .NET too (Mono).
reko_t
+5  A: 

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++)

Cheeso
(at least the current version of) the developer tool is simply "Visual C#" No .NET in it.
Mehrdad Afshari
The developer tool is actually "Visual C# 2008 Express Edition"
Erv Walter
yes, I think the "Visual C# .NET" was the original name, c.2002, when C# was first rolled out and .NET was attached byb Microsoft to pretty much every product they sold. Visual C#.NET, Visual Studio .NET. .NET Enterprise Servers (Rememebr that?) There was even a provisional name "Windows .NET Server" around that time. Eventually sanity returned and Windows Server 2003 was released, and the .NET part was quietly dropped from the Visual C# product. It's still VB.NET though, to distinguish from VB "classic".
Cheeso
Not sure but I think MS may also have dropped the standalone independent *commercial* developer tool products "Visual C#" and "Visual Basic" etc, in favor of the Visual Studio bundles that support multiple languages, or the freebie Express offerings, sort of targeted to hobbyists or students, that each support a single-language.
Cheeso
+2  A: 

When people say they are using "C#.Net", they mean they are developing on the .Net platform while using C#

Anthony M. Powers
+1  A: 

"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.

finnw
A: 

".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.

Mikhail Orlov
-1 strictly speaking, C# could be implemented w/o .NET.
Dan
+1  A: 

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.

Bob
+1  A: 

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...

Gordon Mackie JoanMiro