views:

198

answers:

9

I'm seriously considering moving from VB.Net to C#. If you made the jump to C# from vb.net, then what were the best resources you used to learn the language going from novice to pro?

Thanks

+7  A: 

I use this VB.NET C# comparison reference all the time.

mgroves
+1  A: 

I found this pocket reference to be invaluable when making the switch:

http://oreilly.com/catalog/9780596003197

EDIT: I just realized that book is kind of old (2002). I guess it's been a while since I used VB.NET. :) Anyway, it's very inexpensive and might still come in handy.

Andy West
+2  A: 

OJT worked for me. the framework is the same. Syntax is "just another language" to learn. People get hung up on "what langauage" far too often. Skills I learned as an assembly language programmer are just as valid in higher-level languages.

The VB editor in Visual Studio does have some nice features.

No Refunds No Returns
+1  A: 

Programming C# is a great reference.

You'll struggle with the syntax (End versus curly brace and semicolons), but the transition should be somewhat smooth. It's just understanding the differing syntax which will make it frustrating.

Choosing between C# and VB.NET

The only major difference between the two languages is that C# can break out of the ‘managed’ world of .NET to support unsafe code should this be required. However unsafe code is, as its name suggests, inherently hazardous and you may feel that it is a good thing to avoid using it. Explicit use of pointers is seldom required when programming .NET. If you really feel that you cannot do without pointers, then C# would be a good choice of language. If you are happy to work within the managed world of .NET, then C# or VB.NET would be equally suitable for your purposes.

Of course, there are other .NET languages available too. At first sight, C++ might seem the most attractive choice for programmers with previous experience of that language. You need to be aware, however, that the .NET version of C++ is best used for manipulating unmanaged memory. In most cases, C# would be a better choice of .NET language for a programmer with C++ experience. Unlike C++, the C# language was specifically designed for the .NET Framework. It benefits from a simple syntax, garbage collection and type safety to eliminate many potential bugs.

0A0D
+2  A: 

Maybe one of the best things to do is to rewrite some of your VB code, some classes, i was a vb coder some time ago, and one of the things i did was write the NerdDinner App in C#, following the Scott Gu tutorial it really help me.

Omar
+2  A: 

I think you have two questions:

  • What does it take to move from VB.NET to C#?, and
  • What does it take to move from a novice to a pro?

Others have answered the first question.

A great resource that will help with the second is the Beginner's Developer Center. For those new to .NET but not really beginners, I would suggest MSDN Ramp Up.

Rob Windsor
+2  A: 

Since you know Visual Basic .Net, you will not have much difficulty on learning C#

Besides other posts Visual Basict .Net to C# converter will help you too much.

You can write your code in Visual Basic .Net and see the equivalent in C#

http://www.developerfusion.com/tools/convert/vb-to-csharp/

JCasso
+2  A: 

In pre .net days, there was a real perception (and deservedly so) of VB being for kids and the C languages being for grown ups. The .net Framework has changed (the reality if not the perception of) all that. I don't recall seeing anything in c# that couldn't be done in VB. I don't do VB very much so I don't remember irritating things about the language, in c# two pet peeves for me are the case sensitivity and the syntax of the for loop. Neither of which apply to the VB language. So the question is, are you sure you need to change?

Ken Lange
Widespread bias against VB.NET may not be logical, but it does exist. Since the move to C# is largely trivial, why not do it and benefit from the improved perception (logical or not) of your seriousness and skill level?
Andy West
First, I would not call learning a new language trivial. Not learning, as in put it on your resume and charge people big bucks per hour. Secondly, a developer's "seriousness" and skill level is not derived exclusively or even predominantly from his/her skill in any one language, but in how well he/she can think. If you are dealing with someone who does not believe this, then you really have a completely different problem.
Ken Lange
+4  A: 

Oddly this reverse question might help you understand the areas in which things differ.

If C# programmers need to be told certain things then there must be a difference to the way VB.NET works:

What a C# Coder Should Know Before They Write VB

Matt Breckon
+1 good link [15 chars]
0A0D