Career path: C# versus VB.NET

 
69   95.7
Aug 30, 2010
 
Hello,

I am coming from an assembly / C background and I am ready to move into building databased business applications in .NET.  
My plan is to go as far as possible and become an .NET architect who is familiar with OO and Patterns.  Since I am totally new to .NET, my question is what is the better language to start: VB.NET or C#.  And what are the reasons?

Look forward to your answers.
And, thanks in advance.



1,128   99.9
Aug 31, 2010
I would say go for C#, now this is probably due to my background as a Java developer and later on C# developer. I have only lately been doing VB.Net development (maintaining legacy code). And one tends to recommend what one is most used to.

But since I started developing in VB I found it to be more cumbersome to use than C#. A benefit of using C# is that I have found most OSS and blogs are using C# which makes it easier to find examples. You will also get the benefit of understanding Java.

 1 comment
 
Thanks Robert for your insights! Very helpful indeed. --- Henry Wong  Sep 01, 2010

256   99.6
Sep 08, 2010
Hi,

C# and VB.NET both use the same set of Framework Base Class Libraries though their syntax are way different.

C# follows C, C++ syntax where as VB.NET is more like writing English language like statement.

In my opinion C# is more popular as compared to VB.NET but it would be up to you to decide which one to choose.

60   95.3
Sep 10, 2010
I'm a VB.NET developer and if I were starting fresh I would choose C# only because there seems that more resources (web, magazines, etc) are written for C# first.

50   50
Sep 12, 2010
Also you need to take in consideration that C# is standarized so you find products from other companies more likely to be focused on C#, specially you can find C# implementations to write apps for Linux and iPhone (go-mono.com)

You may someday ask to write something for silverlight and pretty much everybody is using C# on silverlight

50   50
Sep 14, 2010
For an architect, language is a tool to achieve the end.
Use C# or VB.Net, but use the way no one has used ever before.

50   50
Sep 14, 2010
The number of C# jobs as opposed to VB.NET jobs are 20 - 1.

After learning either I find w/ a month or so you can become just as productive. There are also translators so just becuase there are C# examples you can easly convert them.

There are obvious pros/cons to both. I find VB easier to read and good for new programmers, however if you come from C or Java, C# is the way to go.

50   50
Sep 15, 2010
If you are planning to become an Architect, you should learn and be able to use both. As someone has already stated, its a tool.
I dont mean that you will not have a favorite, because you will. But you should be able to switch from one to the other without issue.

60   95.3
Jan 23, 2011
I would suggest go with C#.As it is an cleaner and OOAD Lang.If you ever want to switch you can do it with easy.

70   95.9
Feb 20, 2011
Hi Henry

I would choose C#

* There are more examples out there
* Most third party vendors uses C# as their main language
* More jobs
* Clean and easy syntax
* Easier to read than VB.Net (I think)
* The syntax is very similar to Java, C++ and various other

Before I started with C# 5 years ago I was a Visual Basic 6 developer and the transition from VB6 to C# was actually easier than VB.Net.

As an architect I don't think you need to know both languages equally well. Specialize in one, and know a few thing about the other. It's far more important to know the .Net framework and the various technologies it offers (WF, WCF, WPF, MEF, EF, LINQ) and how and where to use it.

Good luck

Hans-Petter

60   95.3
Feb 22, 2011
I started dynamic web development initially with classic asp in which there was not much choice to begin with. vbScript was the way to go back in those days. So it was natural for me to pick VB.NET when it came to ASP.NET. I used it for a couple of years and since I was still developing for web, at some point it became apparent that I needed to do increasing amount of client side coding with JavaScript. There was one project in which we needed to use it a lot. So I became more familiar with the c-based syntax. Regardless of my years of experience with vb-syntax, I found it hard to revert back to it. So I naturally just switched to C#. I never regretted the change. C# still feels like a better choice with more possibilities. Besides, if you need experienced peer support with complex or advanced problems or with new technologies, you may expect to get it from the C# community. As for career opportunities, I believe you're better off with C#. There are more job openings, admittedly also more competition. Last but not least, with C# you wouldn' t be locking yourself into a corner. As a lot of other languages share most of the syntax.

73   96.0
Feb 23, 2011
Choose C#, because it is more demanding and pure Object Oriented.

60   95.3
Mar 17, 2011
I'm primarily a C# developer however i don't believe C# is more OOP than VB.net, both languages has it's pros and cons, if your background is C/C++/Java  then it's more logical to go with C#.

at the end of the day it all goes down to where you are more comfortable working with, both languages supports pretty much all the OOP features you'd need, can do the same design patterns, supported by the same framework.

Concentrate on one but also be open with the other as to when an opportunity arises that you may need to switch languages for a job then you could easily switch between the 2.

even with the samples on the web more focused on C#, there are tons of online and offline converters to switch it around.

you could check out comparisons between c# and VB.net but on the top of my head

C# can have Partial Interfaces and VB.Net can't,
Static classes is also not available in VB.Net (although I believe Modules in VB are already sealed static classes so this becomes pretty much the same already).




50   50
Mar 06, 2013
KEY DIFFERENCES

Purpose/Size

VB.NET

C#


Decimal

Decimal

decimal

Date

Date

DateTime

(varies)

String

string

1 byte

Byte

byte

2 bytes

Boolean

bool

4 bytes

Integer

int

8 bytes

Long

long

4 bytes

Single

float

8 bytes

Double

double

Decision structure (selection)

Select Case ..., Case, Case Else, End Select

switch, case, default, goto, break

Decision structure (if ... then)

If ... Then, ElseIf ... Then, Else, End If

if, else

Loop structure (conditional)

While, Do [While, Until] ..., Loop [While, Until]

do, while, continue

Loop structure (iteration)

For ..., [Exit For], Next
For Each ..., [Exit For,] Next

for, foreach

Declare an array

Collapse | Copy Code

Dim a() As Long

Collapse | Copy Code

int[] x = new int[5];

Initialize an array

Collapse | Copy Code

Dim a() As Long = {3, 4, 5}

Collapse | Copy Code

int[] x = new int[5] {

        1, 2, 3, 4, 5};

Integer division

\

/

Modulus (division returning only the remainder)

Mod

%

Exponentiation

^

n/a

Integer division Assignment

\=

/=

Concatenate

&= NEW

+=

Modulus

n/a

%=

Bitwise-AND

n/a

&=

Bitwise-exclusive-OR

n/a

^=

Bitwise-inclusive-OR

n/a

|=

Equal

=

==

Not equal

<>

!=

Compare two object reference variables

Is

==

Compare object reference type

TypeOf x Is Class1

x is Class1

Concatenate strings

&

+

Shortcircuited Boolean AND

AndAlso

&&

Shortcircuited Boolean OR

OrElse

||

Scope resolution

.

. and base

Array element

()

[ ]

Type cast

Cint, CDbl, ..., CType

(type)

Postfix increment

n/a

++

Postfix decrement

n/a

--

Indirection

n/a

* (unsafe mode only)

Address of

AddressOf

& (unsafe mode only; also see fixed)

Logical-NOT

Not

!

One's complement

Not

~

Prefix increment

n/a

++

Prefix decrement

n/a

--

Size of type

n/a

sizeof

Bitwise-AND

And

&

Bitwise-exclusive-OR

Xor

^

Bitwise-inclusive-OR

Or

|

Logical-AND

And

&&

Logical-OR

Or

||

Conditional

If Function ()

?:


50   50
Mar 06, 2013
Difference b/w C#.Net and VB.Net