tags:

views:

626

answers:

17

Hi, I am a C/C++/Java programmer and I was wandering if there is any good book or some website that helps you make the switch, I mean, not a beginner's C# book, but a book that compares the platforms, CLI vs. Java Virtual Machine, that explains the .Net arquitecture, etc.

To sum up, I already know OOP and design, but I need to learn C#, learn about the changes in synthax, new features, and all that stuff.

Thanks for your help guys.

+2  A: 

Loads. The first hit is really good.

SCdF
+7  A: 

Check these:

John
A: 

I made the switch after reading this interview with Anders Hejlsberg

http://www.artima.com/intv/csdes.html

Eduardo Diaz
What aspect of the article was so convincing?
Egg
+2  A: 

CLR via C# gives a great nitty gritty under the hood explanation on the CLR, using C# as the context.

Definitely a good read.

FlySwat
It's actually CLR via C#...
Martinho Fernandes
+11  A: 

Anything written by this guy, the points say it all.

Providing you have good OOP foundations, and coming from Java you probably have the essentials, then the rest should be straight forward. The more advanced features you wont need and will only confuse when starting to learn ... and they will come in time.

Aiden Bell
+1. That being said, there are some things you should know when coming from a Java background, as they look very different in C#. Namely properties and events which take the form of methods and listener classes in Java but have native language support in C#.
Joey
C# in Depth is great, but it assumes some C# 1 background, which the OP doesn't have. Coming from Java might substitute for that, so +1.
Martinho Fernandes
Emphasis on *might*.
Martinho Fernandes
Good point Johannes. Finding those things out yourself allow you to learn the language's personality after having the fundamentals.
Aiden Bell
@martinho - I also qualified with "probably", this is Java :P
Aiden Bell
A: 

I would read the Getting Started Guide. It's helped me get started.

If you need more specific knowledge, follow it up with a sections from the Programming Guide.

Ben S
A: 

I am a visual learner and have found great value in http://www.learnvisualstudio.net.

Mike C.
I would also add that Mono on Linux is a good free way to get going if on a non MS OS
Aiden Bell
+1  A: 

I had been a java developer for a long time when I first tried C# and I found that I didn't have to read anything at all. I was able to just guess at the function names and use auto complete in visual studio. Occasionally I would look things up on the MSDN website.

It's really easy and with the visual designer (if you're writing a GUI program) you just lay out the GUI element, then double click a button or whatever to bring up the code for that button. Enough code is generated for you that if you can figure out the function names, you should be good to go.

I had experience in VB6 and Win32 programming in C++ before that too, though. So that probably helped (VB for the RAD/GUI stuff)

Chad Okere
Did you have any trouble with the different patterns, like properties, events, and delegates?
Martinho Fernandes
Martinho: You can write your own code without them, and since the delegates for the GUI are generated by visual studio, I didn't really need to know exactly how they worked right away, and I found the syntax intuitive anyway
Chad Okere
+8  A: 

This page has been invaluable to me, and I've used almost no other resources since finding it: http://www.harding.edu/fmccown/java1_5_csharp_comparison.html

njk
thanks for the link...interesting to see the similarities
Brad
@njk, this link it's very helpful for me, thanks.
Agusti-N
It's disappointing to see there's nothing about generics in there, considering the vast gulf between Java generics and .NET generics.
Jon Skeet
A: 

Check out this guide:

http://www.csharp-station.com/default.aspx

Since most of what you'll be starting with is syntax adjustments, a simple tutorial such as the one on that site may just be what you're looking for.

Norla
+2  A: 

There is an MSDN section that might help: C# for Java developers.

Martinho Fernandes
+1 for MSDN love.
mrduclaw
+2  A: 

I'm learning about C# from the Head First series. The way the book is set out does keep you reading. However, it is aimed at a C# beginner, so maybe this type of explanation of the language isn't aimed at your level.

Mike
+1  A: 

Microsoft has an online learning track for Java developers switching over to .NET:

For the Java Developer: Learn .NET

It's targeted at .NET 2.0 (Visual Studio 2005), though.

R. Bemrose
After that, you can start reading C# in Depth :)
Martinho Fernandes
A: 

You might also want to look at some actual code, especially of open source projects that may have had their genesis in java but have been ported to c#. nHibernate or nUnit, for example.

Eric King
A: 

I've found the MCTS 70-536 exam book very useful as an intro to C# - it covers all the common things you're likely to need to know.

MCTS Exam

Also, I'm not saying that you should necessarily take the exam, just reading the book and messing around with the practice apps should get you started

Fiona Holder
A: 

I too was a Java hacker for a while. If you have a good grasp on the JVM specification and JVM implementations, the the CLR 2.0 via C# is the best book I've read to date. Jeffrey Richter is one of the best writers in .NET arena.

One of the best people to know is Ted Neward. He keeps a foot in both camps and is one of the most interesting people I've met.

Travis Heseman
A: 

Take a look at this book: C# for Java Developers. It's a great intro for those which are coming from Java. http://www.amazon.com/Java-Developers-Pro-Developer-Allen-Jones/dp/0735617791

Kico Lobo