hi everyone :) im hoping to learn a healthy amount of vb10/12 by the end of the month. mainly to improve my cv and get a better shot at jobs. originally wanted to learn vb6 for a college project , but after a post in daniweb , my ideas are as such : vb6 obsolete , bad , dont learn! vb10/12 good! go for it !

thats basically all the idea i have about all stuff vb.

however , i did read that c# is used in developing vb ( some ideas regarding this matter would help out too! ) and that it is similar in a lot of ways to java, which being my background (along with some c , n html) makes me think that C# - vb10/12 is the combo for me.

i got a softcopy of head first C# , and i think im gonna learn it from there ( as i love the head first series) , but i dont know any good books for vb10/12. need some help there too!

and lastly , i keep going "vb12/10" every time , what should i start with ? 10 or 12 ?
and consedering that i have never touched anything visual basic , what do you guys think will be the best way for me to start the vb+c# journey?

edit: oracle 9i is obsolete , and that is what we were told to use at college(along with vb6), and im not going to listen to them. need some help in choosing what would be a good backend software as well. i only have some theoritical knowledge about sql in general, havent done anything practical. would mysql be a good option?

any help would be great! :)
regards.

Recommended Answers

All 9 Replies

Either choose VB2012 or C#2012. Not both, that would be confusing I guess. I would opt for C#, since you have a C and Java background. I'm a C# man, but if you want to go for VB.NET 2012, go for it! Happy programming!

Personally I prefer VB.Net.

If your goal is improve marketable skills in a few weeks and you already have a C background, it will be much easier for you to pick-up C#. Unfortonately, VB is viewed by many as an inferior language (even though it essentially equal to C#).

MS claims to be working on bringing parity to the two languages, but in my view this has primarily focused on adding functionality to C# that previously only existed in VB and not the other way around. C# is still their flagship .Net language and is/was used to write a the framework libraries.

Officially, VB6 is dead, but it is tenacious. MS updated the VBA language (VBA is essentially an interpreted form of VB6) in 2010, so there is some hope that they will recant their decision and release a VB7 at some point. Any effort to learn VB6 should be viewed as an effort to build up your skills repertoire. (I.E. it can not hurt to know it.) Old code will still need to be maintained and the VB6 runtime is supposed to be supported through the Windows 8 lifecycle.

commented: Again, great answer. +14

@TnTinMN: Way back, I did lots of VBA programming on Excel. I always found VB.NET some super VBA. When I first met C#, well, I was lost. Consise syntax, lambda expressions, predicate delegates, etc. etc. I'm sure you can do all those things in VB.NET, but it seems as if it always has to happen via some sort of workaround. But correct me if I'm wrong.

@TnTinMN: Way back, I did lots of VBA programming on Excel. I always found VB.NET some super VBA. When I first met C#, well, I was lost. Consise syntax, lambda expressions, predicate delegates, etc. etc. I'm sure you can do all those things in VB.NET, but it seems as if it always has to happen via some sort of workaround. But correct me if I'm wrong.

VB.Net is not a some form a super VBA. It is an entirely different language. Granted, it still maintains much of the same syntax structure of VB6 just like VB6 maintained a lot syntax structure of BASIC. However, Vb.Net is just that, it is a .Net language that after compiles to the same Common Intermediate Language that the C# compiler compiles to. Hence the ease of using a C# library in VB.Net or visa versa.

I am not sure extactly what you mean here by "workaround" and I don't want to invoke a preferred language war, but I see a lot of this as an issue of style, familiarity and personal preference.

C#'s syntax is concise because someone defined a shorthand notation versus a more verbose statement.

Let us take a simple example:

C#
delegate int del(int i);
static void Main(string[] args)
{
    del myDelegate = x => x * x;
    int j = myDelegate(5); //j = 25
}

VB
Delegate Function del(i As Integer) As Integer
Private Shared Sub Main(args As String())
     Dim myDelegate As del = Function(x) x * x
     Dim j As Integer = myDelegate(5) ' 'j = 25
End Sub

Other than the required language syntax difference (and in this case as in most, C# requires less typing) what is the "Workarround" in the VB code that you mentioned.

Let's use one of your recent posts as an example where VB.Net is more concise:

C#:
    int a = 42;
    switch (a)
    {
    case 1 :
    case 2 : //statements for case 1 and 2
    break;
    // probably more case here
    default:
    Console.WriteLine("We are here");
    break;
    }

VB:
Dim a As Integer = 42
Select Case a
   Case 1, 2
      'statements for case 1 and 2
   Case Else
      ' probably more case here
      Console.WriteLine("We are here")
End Select

One way to quickly learn VB.net is use the integrated help function. Anytime you're stuck on the exact way to do it in VB type in the keyword and press F1. Any functions, methods, properties, classes, etc., that are part of the common .net library will have sample code in both C# and VB. Making it easy to learn from one to the other. Also the MSDN website has a pretty good search engine that searches not only the help library but also several large forums. Like I said it's quick, but it's not comprehensive, but atleast the grounding you get will make learning more complex and esoteric concepts easier.

Also use the idea of code snippets, they can be a great memory refresher for you.

edit: oracle 9i is obsolete , and that is what we were told to use at college(along with vb6),

OP, thanks for that bit of info. I've often wondered why I see so many from your part of the world trying to learn VB6.

and im not going to listen to them.

I hope the college's software selection is just a recommendation and not a requirement.

need some help in choosing what would be a good backend software as well. i only have some theoritical knowledge about sql in general, havent done anything practical. would mysql be a good option?

MySql is probably a valid choice, but I would recommend Microsoft SQL Server Express (free also) or MS Sql Server CE. At least with the MS products, you should have less chance of bumping into issues whilst you are trying to learn the programming language and there are lots of examples available for them as well.

For programming language learning resources:

Visual C# Resources
Visual Basic Resources

thanks for all the valuable info! this is why im so much into daniweb.
as im a complete beginer in this feild , it will take a few reads of the replies above, coupled with healthy sessions with buddy google to get it all in properly. i apologize beforehand if i end up asking something silly...

If your goal is improve marketable skills in a few weeks and you already have a C background, it will be much easier for you to pick-up C#. Unfortonately, VB is viewed by many as an inferior language (even though it essentially equal to C#).

that is my goal , as im in my last semester at college. regarding background , im more into java than C , although the later was what i started out with.

I hope the college's software selection is just a recommendation and not a requirement.

i asked our tutor about C# and .NET , and he said that after the vb6 project is done , we will be moving on into asp.net , and C# will be used there , and since we know java and vb6 codes , learning asp "is going to be a breeze!" .
taken, with a pinch of salt.

my question here is :

  1. i know basics of java morderately well. will catching C# be easy given this ?
  2. seeing the code examples above , i guess i can write C# code in place of VB code , and still all will be well ? i think i remember seeing project options on the opening page of VS 2010... so if i want to code in C# or C++ or VB , ill just have to choose the respective project type right ?
  3. everyone keeps telling me that asp.net and vb.net are a lot similar , and knowing one greatly simplifies learning the other. is that really so?

i ask these questions as C# seems more appealing as the syntax is something im familiar with atleast. also , since im doing these to up my marketable skills , if learning vb.net helps out with learning asp , thats great!

OP, thanks for that bit of info. I've often wondered why I see so many from your part of the world trying to learn VB6.

its a pretty diverse place here, multitude of boards , some autonomous (the elite colleges n universities) and others mostly state based. so the syllabus across the country varies , most of the times greatly , and i dont think vb6 is in the syllabus part of anyof these boards. at our college , the cs guys most often talk about oracle 11i and 10g along with asp.net, i guess thats what they use as per syllabus. The guy who teaches us works for a consultancy, and although vb6 and 9i are outdated , he keeps telling us that companies still use these stuff here.. he talks a lot about the new stuff being hard on the resources of the companies , and thats why they still stick with outdated stuff. that is probably why you see people from here trying vb6.

i know basics of java morderately well. will catching C# be easy given this ?

That is something that only you can decide after giving it a go. We all have different aptitudes. All I can say is that some refer to C# as Microsoft's answer to java, so it may seem familiar to you. However, I found that similiarities between two languages can lead to unrealistic expectations and frustration when the subject language does things differently.

Also, don't think that you are going to learn it all in a short period of time or at all. The .Net framework is huge and growing. Whatever .Net language you use is just a means to use the framework.

Personally, I try to not use language specific contructs as much as possible, but rather use the framework types and classes as much as possible. This makes it easier for me to move between VB and C#. Some would say that this is a poor style. Fashions change and if I am not being payed to produce code to someone's standard, who are they to tell me that I am doing to wrong. :)

seeing the code examples above , i guess i can write C# code in place of VB code , and still all will be well ? i think i remember seeing project options on the opening page of VS 2010... so if i want to code in C# or C++ or VB , ill just have to choose the respective project type right ?

That is pretty much correct. You can mix and match different project types to produce a given solution.

everyone keeps telling me that asp.net and vb.net are a lot similar , and knowing one greatly simplifies learning the other. is that really so?

This I can not offer an opinion on.

------------------------

Since you intend to create a project that will be accessing a database, this tutorial has a lot of good stuff in it on creating a Creating the Data Access Layer. It is premised on creating a web project, but the data stuff is universal.

not use language specific contructs

sounds good , but its a bit hard for me to understand exactly what that translates to in code.. if you could give an example of that, would be great :)

regarding learning in a short time , i know if i try to hurry i wont learn anything , i just want to get the simple basics as much as i can , so later on , it will be easier to catch the harder stuff as they keep coming. :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.