My Experiences of Learning VB 2005

My initial impression was that the Visual Studio 2005 Express IDE was excellent. The IntelliSense feature is truly outstanding. Although one of the criticisms of VB is the amount of typing, the IntelliSense actually does a great deal of it automatically. If you type an If...Then statement, the End If appears automagically. If you type Try, then the Catch and End Try code is entered for you. It's a great timesaver, but of course it can't always take care of everything. If you insert an If statement half-way through a function, then IntelliSense can't tell where you want the End If. Instead it underlines the If statement, and hovering your mouse over it tells you that there is no matching End If.

intellisense displaying error
IntelliSense showing an error

Problems which merit a warning, such as a variable being defined but not used, are underlined in green. Problems that would halt the compile process, such as a missing End If, are underlined in blue. Hovering the mouse over the underlined section reveals a message that describes the problem and a red exclamation mark, and hovering over the exclamation mark lets you choose Error Correction Options, such as inserting End If.

intellisense offering options
IntelliSense offering options

One of the problems with being an occasional programmer is that it's hard to remember the exact name of functions you want to use. Another of the features of Visual Studio 2005 Express is that when you start typing, a box pops up with options that you might need. You can ignore it and keep typing, or you can scroll through and select what you want. The option that the system thinks you want is highlighted, and if you press space or return, IntelliSense will finish typing that option for you.

intellisense shows function inputs
IntelliSense showing inputs to user-defined function

If you type the name of a function that has several possible inputs, then you can scroll through a list of possibilities. This also works for functions that you have created yourself.

Code snippets are another feature of IntelliSense. If you right-click, then choose Insert Snippet, you can choose from dozens of small snippets of code for a range of tasks, organized in categories. They range from the absolute basics, such as If...Then statements, to more complicated tasks like reading a file or parsing XML. The snippets are just skeletons of the code needed, and have to be customized before they will actually do anything. I rarely used code snippets, but I can see how they would help some people learn the language. 

Overall, I'd give pretty much full points to Microsoft for the IntelliSense features, it almost makes me forgive them for that idiotic paper clip character from MS Word and Excel. Almost.

Designing forms for your applications is simply drag and drop. There are a wide range of controls to put on your forms, from the simple stuff like buttons and text boxes up to more complicated controls such as DataGridView, which displays the contents of a DataSet in an editable grid format, like a spreadsheet. The form design process is very quick and easy. The properties of the controls are set up in the Properties tab alongside the form design area.

Help Files

The help files provided with Visual Studio Express Edition are extremely comprehensive, and are basically an application in themself. When you search for something, you are given 4 sets of results: local help, online help,the Codezone forums, and online questions asked by other users (you can submit questions yourself too.) I spent a lot of time in the help files while learning Visual Basic 2005 and the .NET Framework. Once you get the hang of the way they are organized, you can find information fairly quickly. Sometimes you can find yourself going round in circles due to the sheer size of the help files, but there are basic overviews to get you on track. Of course, since Visual Basic 2005 is so widely used, there are dozens of books and online tutorials to get you started.

Next I will talk about the Visual Basic language itself