As I have been reading different articles and stuff
I am start to beliving that c# is important to learn.
Basically I was VB developer so I moved to VB.NET
but is this enough. I mean as I was discussing in my
longhorn topic, they may have used c# to build some part of avalon and indigo.
I know some of the basci difference between c# and vb.net but I m confuse now about which way to go.
Can some one help?
As I have been reading different articles and stuff
good suggetion but do u think c# is really important then vb.net
The best thing about .NET is that it really doesn't matter which language you write your code in, so feel free to stick with VB.NET - there's no intrinsic advantage to code in C#.
I would suggest though that every VB.NET programmer should have a passing familiarity with C# for the simple reason that there is far more example code written in C# and if you can understand it you can save yourself a lot of time.
The jump from any flavor of Basic to any flavor of C is a large one. But the gap between VB.NET and C# is the smallest gap of any between a flavor of Basic and a flavor of C. In a very real sense, you'll just have to grasp a new syntax... the common language runtime is the same.
Try porting some of your VB.NET apps to C# - use the C# application wizards to start off with.
rhm wrote:I would suggest though that every VB.NET programmer should have a passing familiarity with C# for the simple reason that there is far more example code written in C# and if you can understand it you can save yourself a lot of time.
I think this is a very good point!
However there is bad examples around as well of course and whether you learn faster by going through others examples or trying to write your own - I can only say copy pasting does not really help in learning, but having some good well done examples and analyzing what exactly they do can be helpful.
I know it's a HUGE temptation to do WinForms stuff at first - but I really suggest you avoid this at first if you want to learn the language stuff.
Essentially the point here is, currently you have the option to go with VB.NET or C# - the learning curve will be 100% the same. But when you start to be more proficient, and want to write some application that does something - you want to know C# for the reason rhm mentioned. If you only know VB and find interesting (there's a lot) stuff written in C#, you'll have hard time telling whether those examples etc are well written and how to fix possible issues. Running a c# to vb.net converted may only make things worse in terms of bugs introduced in already buggy examples.
So my point? Go with C#. If you still believe VB.NET is easier, do some research on the net and you'll see people saying that it was just like learning entirely new language.
I really dont think it is a choice as a vb.net developer to understand c#. It seems that a majority of samples on the net is in c#. I think many people do c# because it is teh oober
pwzeus wrote:I know some of the basci difference between c# and vb.net but I m confuse now about which way to go.
I heard Dan Appleman made this argument. Learn both VB.net & C# if you're a VB developer. Because some day, somebody will pay you a lot of money to create a solution using C#. And the majority of your effort in learning a .NET language will be spent learning the base-class library. It's almost trivial to go to C# once you've mastered the BCL & VB.net.
Instead of C#, why not learn C++/CLI instead:
JDanielSmith wrote:Instead of C#, why not learn C++/CLI instead..
Certainly, if you are into writing drivers or other close to kernel code. But if you do not care about the raw metal, I think it's enough if you can read C/C++ and be proficient in C#. Knowing a bit about how the machine works is always good, but I would not recommend going all C++ way unless you have interest in the areas it enables. A good C# dev can do everything a C++ developer can except for very very few cases. With the magic of /unsafe and interop, there is VERY very few limits to what you can do on future Windows platforms. And with smaller learning curve than that of going C++/CLI.
And even if you do care about raw metal.. Like I said, it's possible in C# (more easily in future than now), but when you are that good in C# it should not be a huge leap to C++/CLI anymore.
hummm really intresting
JDanielSmith wrote: Instead of C#, why not learn C++/CLI instead..
Certainly, if you are into writing drivers or other close to kernel code. But if you do not care about the raw metal, I think it's enough if you can read C/C++ and be proficient in C#. Knowing a bit about how the machine works is always good, but I would not [...]
My point (here and on my blog) is that if you're happy with VB.NET, learning C# isn't going to get you much more than a different syntax. VB.NET and C# are pretty much interchangeable as far as features/functionality; syntax is the biggest reason to prefer one over the other.
The biggest downside I see to C++/CLI instead of C# is less protection from yourself--it's easier to shoot yourself in the foot with C++/CLI than C#.
Notice I'm careful to always say C++/CLI - I'm talking about writing 100% managed code. With managed code, you're no closer to the "raw metal" in C++/CLI than you are with C# or VB.NET. And if you need to go there, IJW in C++ is even easier than interop, p-invoke or unsafe.
Learn both. AS many have said, it's fairly easy to switch between the two - 98% is just syntax.
There are subtle advantages to each one, VB.NET is better for some things (late binding to COM objects springs to mind), C# is better for others (more UI samples, access to unsafe facilities)
For now there is no big difference in the 2 languages, Hey, I am not a Microsoft Employee and I dont know, but I believe that as time goes by this will change. It will be easier and more effective to use VB to create applications with user interaction and C# will be optimized to be used in components and libraries development.
I myself used VB in the past than moved to VB.NET. Now I am a C# Developer. I personally prefer C#.
The thing that bugs me about the .NET CLR is that VB.NET just doesn't taste like VB anymore, and C# just doesn't taste like C. I understand the utility of common ground. But I think there is still a place for C. There may even still be a place for VB. Thoughts?