tags:

views:

2222

answers:

18
+84  Q: 

Does .NET equal C#?

Does being a .NET developer mean knowing C# or mean knowing something else?

What books should I read if I want to be a .NET developer?

+37  A: 

C#, VB.NET, F# and many others are all programming languages which can use the .NET Framework, and which require the .NET runtime engine in order to execute.

See:

Note this is three separate areas of the documentation.

Also, see Beginner Developer Learning Center.

John Saunders
I personally think this is an overload of information. Something simple as Matteo's answer will more likely help him more. I am sure he doesn't even know what the .net CLR is.
masfenix
@masfenix: yeah, I hadn't noticed his age.
John Saunders
@Masfenix: Don't underestimate the knowledge level of kids. I knew a ton (though TBH don't recall being interested in computers at the time) when I was 11.
RCIX
Would the downvoter kindly tell us why he downvoted? The downvote doesn't tell other readers what it was about my answer that you didn't like.
John Saunders
+34  A: 

.NET is the core framework behind a set of languages, such as C#, VB.NET and F#.

C# is the most used of those languages, and arguably the "best" one in terms of syntax, but knowledge of C# doesn't mean knowledge of the .NET framework, nor the other way around.

Search online for some primer about the .NET Framework, then take a language of choice and start learning. In my opinion, C# is the one that will repay you best in the long time, while VB.NET may seem more user friendly at first.

F# is more oriented for math operations. It is a functional language while C# and VB.NET are object oriented. The difference is deeper than that, but I think you don't need to dig that deep while you're taking your first steps.

Edit: I blogged in more detail about this. http://matteomosca.com/archive/2010/07/09/dot-net-primer.aspx

Matteo Mosca
F# does have the advantage of F# interactive and script files, which have a much lower barrier of entry than "public class Program { public static Main(...) { ... } }".
dahlbyk
+2  A: 

Programming C# 4.0, Sixth Edition by Ian Griffiths, Matthew Adams, Jesse Liberty is a great C# book, as well as Beginning ASP.NET 3.5: in C# and VB by Imar Spaanjaars. I agree with John as well.

Alos
+1 Beginning ASP.NET 3.5 by Imar is a FANTASTIC introduction.
Dal
+11  A: 

C# or not C#

.NET has several languages. Mainly C#, VB.NET, F#. C++ CLI

But in real life Microsoft bet for C#. All the main features are developed for c# and after included in VisualBasic.NET. So my advice is learn C#. Also if in the future Microsoft falls, a C# developer easily could move to Java or C++.

(Here you have the full list)

Books recommended

There are dozens of books for beginners. I have learned with this one:

C# Primer Plus of Klaus Michelsen

cad
C# makes the move to C++ easier than VB, but still not quite easy. It's the just the C++ to C# transition that is very easy indeed.
Adrian Grigore
Just stay away from C++/CLI, which isn't C++ and isn't a real language on its own. The others are all reasonable choices, although I'd suggest C#.
David Thornley
I don't buy the "C# looks like C++/Java so it's easier to change languages than, say, VB.NET". There are so many fundamental differences betweenC#/C++/Java that many developers will have problems if they use that viewpoint. A VB.NET programmer might even be in a better position as they have fewer pre-conceptions about how "C like" languages work.
Ash
+4  A: 

.NET Framework is the name of the whole platform. There are several programming languages (C#, VB.NET, F#, and many more) with their respective compilers. All these compilers produce Common Intermediate Language (CIL)(formerly known as Microsoft Intermediate Language (MSIL)) code - a hardware-independent code. The Common Language Runtime (CLR) finally executes the CIL code by (JIT-)compiling it to native machine code.

The .NET Framework also includes a large set of assemblies with common functionalities called the Framework Class Library (FCL). The ECMA standardized subset of the FCL is called the Base Class Library (BCL).

And to add some mor abbreviations with C - the specification of the CLR is called Common Language Infrastructure (CLI) and contains among other parts the specification of the type system Common Type System (CTS), some general rules called Common Language Specification (CLS), and the specification of the execution environment Virtual Execution System (VES).

Daniel Brückner
+2  A: 

Programming languages are normally pretty basic and simple. C# only has 77 keywords and like writing english papers they have some language rules that you should follow. "Frameworks" make programming languages like C# a lot more powerful by providing ways to make common tasks easier. You should start learning to be a .NET developer by learning C#. It is the most widely used language in the framework.

I am a fan of Murach's series, more importantly the publisher is appropriate for beginners and the C# book is well rated.

P.Brian.Mackey
+2  A: 

C# is an object oriented programming language...some of the others Java,C++ so as different from C a procedure oriented language.....while some thing like F# or LISP is functional language...all of these mainly differ with their approaches...Read more about it here.

What are the different types of programming languages?

While .NET is a framework that basically allows various languages to compile and execute using the CLR....Being a .Net Developer it does not necessarily mean you know C# you may be working VB or F# so a .NET developer is someone who works with .NET platform....know more about differences between asp and asp.net or C# here

Misnomer
+1  A: 

Applied Microsoft .NET Framework Programming (Pro-Developer) [Paperback] Jeffrey Richter

THIS is how I got started!

here it is on Amazon: http://www.amazon.com/Applied-Microsoft-Framework-Programming-Pro-Developer/dp/0735614229

Be sure to see what they say is also bought with this book!

Mark Schultheiss
I also like Jeffrey Richter's works. They are comfortable to read
KroaX
+1  A: 

Listen to me. I am 12 years old and I know better. All those lyrics about .NET and C# are utter BS.

Get yourself a good C# book and it will give you enough knowledge about most used .NET classes so for you there is no difference between C# and .NET for 3 years to come (at least!).

Bobb
Honestly, you can think of .NET as all the libraries and classes, and C# as the means to use those classes. It's like .NET is the road, and C# is a Toyota Camry. There are other cars which use the same roads.
tster
+2  A: 

.NET is a Framework developed by Microsoft in order to develop Web, Desktop, Mobile etc.. applications. So in order to develop the application in .NET, we use languages like C#, VB.NET, J#, Java, C++ etc which can be compiled to an Intermediate Language (MSIL) that can be understandable by .NET Framework.

So .NET and C# are not the same, we use C# as the language to develop applications in .NET Framework.

msbyuva
+2  A: 

.NET is a proprietary framework for a variety of microsoft languages, including C#, F#, J# and VB.NET. There are also a few other languages that run on it, such as IronPython, IronRuby and Boo.

C# is just one of those languages.

FrozenFire
Nitpick: Boo isn't a Microsoft language. It's a language by one guy that happens to compile to run on the .Net Framework (or Mono). (and there's a partially complete JVM implementation).
JasonTrue
There, fixed. Happy now?
FrozenFire
+2  A: 

Point of note: C# was the (first? or possibly only) language designed specifically to use .NET. Visual Basic was modernised from VB6. Visual C++ is one of many implementations of C++ that happens to target .NET. I don't know of anyone who's ever used J#.

C# is Microsoft's flagship for .NET and you can't go far wrong in using it. Many new features appear earliest and most comprehensively in C# before other languages.

Some people will use the phrase "C# .NET" and others will shout them down. They are wrong and this nomenclature is entirely correct, yet almost always unnecessary. There's nothing to say that C# can't target other frameworks and indeed it does with Mono. It's just as valid to say "VB .NET"; I suppose it would also be correct to say "C++ .NET" though most people would probably say "VC++" for Visual C++.

Question for the OP: Do you understand the difference between a language and a framework?

Tom W
Visual C++ doesn't target .NET. There's a hacked-up version that does, but don't learn it unless you have a specific reason. Don't learn J#. If you're going to learn Java, learn Java. It's a pretty good introductory language itself.
David Thornley
Mono is a .NET clone so it's not much basis to say "C# targets other frameworks". OTOH Mono is working on "ahead-of-time" compilation which takes it rather far from the "normal" managed-code environment.
Qwertie
Visual C++ _does_ target .NET, and I don't mean C++/CLI here. You can take any plain C++ code and produce pure MSIL from it with `/clr:pure`. The only two unsupported features are `setjmp`/`longjmp` (dunno why, should be implementable using exceptions) and passing a `va_arg` to a vararg method.
Pavel Minaev
+2  A: 

Does being a .Net developer mean knowing C# or mean knowing something else?

As .NET is a framework, or generally a collection of class libraries which run in a common runtime, you could "know Visual Basic .NET" and "know" .NET. You could also "know C#", or "know F#", and similarly "know" .NET. More precisely, you are programming for .NET, or perhaps against the .NET runtime libraries.

A few analogies: Java is a language. It is also a runtime, or a virtual machine, with its own bytecode. You could program in the Java language, or the Jython dialect of the Python language. In either case, your source code is compiled to be run inside a Java virtual machine.

Alternatively, you could "know" C++, but I don't know if you know the C++ standard library, or if you know the Qt Framework.

An important distinction lies among the relationship between programming languages and targets, as well as implementations of frameworks and runtime libraries. If you start to learn .NET on Visual Studio Express editions, in Microsoft Windows, you will probably be programming in Visual Basic .NET, or C# (3.0 or 4.0) languages, targeting the MSIL bytecode to be run in the Microsoft implementation of the .NET runtime. It would be perfectly conceivable to have an implementation of a C# compiler which runs in the Haiku operating system and targets the Qt Framework and C++ standard libraries. It just might not be standards compliant at every level, or feature "complete".

What books should I read if I want to be a .NET developer?

Start with some books that cover .NET 3.5 and Visual Basic and C# each, so that you can develop for both, at least through examples, but feel free to code in whichever language you like best. 90% of everything you can do in VB/C#, its similarly easy to do in C#/VB. Try comprehensive books from major publishers such as apress, O'Reilly (and C#), or ForDummies.

Link: Visual Studio Express editions

maxwellb
A: 

Learn Lisp first, then you can go on and learn anything else quite easily (just a bit frustrating when you'll see that those shiny new and buzzy languages don't have a lot of features that Lisp has had decades back).

I started with BASIC, then assembler (Z80), then Pascal and then assembler again (80x86), then C and C++, then JavaScript then Perl/Ruby/Python, and then Lisp. And I'm really very sorry that I wasn't lucky enough to have started with Lisp (or Scheme) in the first place.

mishoo
+1  A: 

As you have seen from other response, the .NET runtime can host many programming languages. The two most commonly used ones are VB.NET and C#. The library of .NET is very similar between all the languages, with mostly the same objects/calls just done in different ways for each language.... So no matter which language (unless you use libraries specific to that language ie the Python standard library), you should be learning the .NET libraries.

C# seems to be the language the Microsoft is championing so I would expend effort on learning that one. It is also more similar to Java which is probably the most similar competitor to the .NET runtime.

When I see .NET developer, I think of job ads and generally they will be referring to C# or VB.NET. Iron Python, F#, etc. will just confuse the good HR people....

Cervo
@Cervo: Microsoft is working to keep VB.NET and C# even in terms of functionality - they're not championing one over the other.
John Saunders
A: 

.NET is a framework more or less like the Java virtual machine. In .NET you have a set of classes to use and when you compile your code it does not go directly to binary. First is pre-compiled to a common language so you can program in many languages (C#, J#, VB, etc. any how builds a pre-compiler can) and even a mix of them and then compile all of them to the common language where all of them can use all the classes of the .NET environment.

So you can develop your software in all the languages supported by Visual Studio. But you have to understand the .NET platform to take advantage of it.

In MSDN there are courses for Latin America like "programador 5 estrella" or 5 star programmer and they are very good for getting started.

Wingman2
+24  A: 

alt text

CodeToGlory
+1 for clearest and most concise answer
iandisme
-1 Does not seem to address the question, or provide any elaboration for someone clearly unfamiliar with the topic. Yes, but why?
maxwellb
Come on, he got all these people to stand there for him
hmp
Those are some of the .net developers who know more than just C# :)
CodeToGlory
Most of them are VB.Net devs I reckon except that one dude right at the back,..he's an F-Sharper.
Stimul8d
@Stimul8d ..funny
CodeToGlory
A: 

.NET is the technology which is generally programmed using C#, C++, Visual Basic, etc. The C# programming language is designed for use with .NET, but it itself is not .NET.

tamim