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?
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?
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.
.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
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.
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:
.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).
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.
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
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!
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!).
.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.
.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.
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?
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.
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.
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....
.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.
.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.