VB.NET - A Microsoft "Flagship" Language
Visual Basic has always been a flagship language for Microsoft and this didn't change when .NET came out. Visual Basic remained a featured language for Microsoft development in the new .NET world. Two new languages, J# and C# were announced at the same time but one of those hasn't survived. In January 2007, J# was officially "retired". But another new language called F# has been added. So .NET is a growing, changing environment.
There is also a .NET version of C++. The versions before Visual Studio 2010 didn't get good reviews. Many programmers continued to use the last version published before .NET, Version 6. The new 2010 version looks much better. In fact, the C++ team has been using the slogan, "10 is the new 6" to emphasize their belief that it's now time to move up.
When you write a program in any .NET "managed code" language, the .NET Framework does most of the work. Visual Basic, and every other .NET language, is just the skin on top of .NET. Once you learn .NET, switching to another language syntax is a lot easier. The really important things don't change. In fact, with Visual Studio 2010, Microsoft has announced a new policy they call "Coevolution" for the two premier languages, Visual Basic and C#. According to Microsoft's Jonathan Aneja, "The intent is to make the languages advance together. When major functionality is introduced in one language, it should appear in the other as well."
There are even more .NET languages available now from third party developers! Microsoft lists all these at their site:
- COBOL for Microsoft .NET.
- Perl for Microsoft .NET.
- Eiffel for Microsoft .NET.
- Python for Microsoft .NET.
- Pascal for Microsoft .NET.
- Mercury for Microsoft .NET.
- Mondrian for Microsoft .NET.
- Oberon for Microsoft .NET.
- SmallTalk for Microsoft .NET.
- Standard ML for Microsoft .NET.
Visual Studio .NET versus Visual Basic Express versus other .NET languages
I've been using the term, ".NET Framework". This is a "library" of code that all .NET languages use. For example, if you declare a "String" variable in your program (like a sentence in this lesson), the actual programming that creates the memory for the string is in a programming object called "mscorelib".
Before .NET, compatibility was a more serious problem because when you upgraded from one version of Visual Basic to the next, it was possible to create programs that's weren't completely compatible with computers that only had the "runtime" for the previous version. With .NET, you can "target" the specific version of the Framework that you want. You can also have different versions of .NET and Visual Basic installed "side by side" on the same computer. For example, you can have both VB.NET Express and Visual Studio Professional installed on the same computer with no problems.
There's no advantage to using the paid version of VB.NET from a performance point of view. The code you create with VB Express and Visual Studio are completely equal. After they're compiled to executable code, they are the same. So if you can create the program you need with the free version, why pay? Keep in mind that the limitations you accept with the free VB Express are not limitations in what the language can do, they're just limitations in how easy it is to write the code to do it. Visual Studio is just a graphical "front end" for the .NET Framework that generates the commands and parameter files to do what you need to do. The difference in the various versions is just the features of the front end.
One reason for learning Visual Basic is that other technologies are also based on a "BASIC" syntax including the languages VBA and VBScript. (Mainly because BASIC was so widely used when they were created.) I've said it before, "The only reason for choosing one .NET language over others is that you can code faster and create more understandable code. For me, that's Visual Basic."
Some additional .NET technologies to be aware of
Although they were also in the previous version, you should be aware of some of the other technologies that work with Framework 4:
- Windows Workflow Foundation (WF)
Write code that describes a whole process, like an assembly line.
- Windows Communication Foundation (WCF)
The buzzword here is "connected systems". We used to call them "networks" but Microsoft has much more ambitious goals in mind.
- Windows Presentation Foundation (WPF)
Microsoft describes WPF (unfortunately using 'marketing language' instead of English) as "a unified programming model for building rich Windows smart client user experiences that incorporate UI, media, and documents."
What the heck does that mean?
For one thing, it means that a WPF application can be deployed on the desktop or hosted in a web browser. Microsoft wants to unify application services like 2D and 3D drawing, vector and raster graphics, typography and even audio and video. Microsoft Silverlight is subset of WPF that was originally used only on the web but is now becoming a "lightweight" version of WPF for any environment.
VB.NET 2010 Express includes two templates focusing directly on WPF technology, one for clients (desktops) and once for web browsers. These technologies go way beyond the scope of this introduction course, but be aware that they're available when you need them.
There's another reason why this is the right time to learn VB.NET ... It's called the "Version 2.0 Rule". Learn about it on the next page.