Forgot your password?

Visual Basic 2005 Jumpstart 169

Posted by samzenpus
from the feet-first dept.
Graeme Williams writes "The tag line for Visual Basic Jumpstart is, 'Make Your Move Now from VB 6 to VB 2005', but the book also includes introductory and summary material rather than staying focused on VB 6 users. The book has a few good examples and some useful information about Visual Basic 2005, but the information, including links to the Internet, doesn't seem complete or up-to-date. This book isn't the help you need." Read the rest of Graeme's review.
Visual Basic 2005 Jumpstart
author Wei-Meng Lee
pages xiv + 197
publisher O'Reilly Media
rating 5
reviewer Graeme Williams
ISBN 0-596-10071-X
summary A useful but flawed snapshot of Visual Basic 2005 without a clear audience

My current (small) applications are in Access and Visual Basic for Applications rather than VB 6, but with that caveat I'm part of the audience for this book, since I'm actively considering moving them to Visual Basic 2005. I want to like this book more than I do. Part of my confusion is that all of the chapters are useful, but I don't think they're useful to the same people.

I have no idea who the audience is for Chapter 2, "Programming with Visual Basic". Some of the information is useful and relevant, with specifics on differences between VB6 and VB2005, but some of it just seems plain silly: "Just as in VB 6, in VB 2005, you make decisions using the If-Then-Else construct". The wording is sometimes odd, too. The fact that parentheses in function calls are now mandatory in VB 2005 is explained backwards: "VB 6 Tip: In VB 6, you can call the PrintMessage subroutine without using parentheses to enclose the parameter list." The chapter could have been collapsed into a very clear and not very large table giving the differences between VB 6 and VB 2005.

In VB 2005, Microsoft has introduced a new bag of functions under the My. namespace. It's not a very big bag – it feels like the product manager wrote down the first four or five functions he thought of. For example, My.Computer.Network contains just five elements: IsAvailable, DownloadFile, UploadFile, Ping, and the NetworkAvailabilityChanged event. Jumpstart describes it as " ... one of the most useful and unique additions to VB 2005 ... The aim of the My namespace is to provide direct access to commonly used libraries in the .NET framework that were previously difficult to access." I'm sorry, that just sounds too much like a press release.

If you're really interested in the status of a network interface, for example, you need to look in the 30+ classes in the System.Net.NetworkInformation namespace. But this is not included in the list of "some other useful namespaces in the .NET framework" (p61). Also, Example 4-3 (p117) uses the System.Net.HttpWebRequest and System.Net.HttpWebResponse classes to download an image, not any of the classes mentioned in Chapter 3.

On the face of it, Chapter 3, "Putting Object-Oriented Programming to Work", provides a very clear and thorough introduction to the object-oriented programming constructs in VB 2005. Unfortunately, it's not complete. Microsoft has a summary of "Object-Oriented Programming for Visual Basic 6.0 Users" which points out that the Binary Compatibility option from VB6 is no longer supported in VB 2005, but this is not mentioned in Jumpstart.

If you're moving from VB6 to VB2005, you're also moving to NET 2.0, but the book has only the most cursory introduction to NET 2.0. Part of the problem is that the book needs to be either more or less reliant on online information. If it was less reliant on online information, it would be more useful as a stand-alone resource. If it was more thoroughly linked to the estimable resources at, it would be more complete and up-to-date.

Jumpstart mentions two MSDN Help Topics: "Programming Element Support Changes Summary" and "Help for Visual Basic 6.0 Users". The former is very useful, perhaps more useful than found in this book, although it's organized in MSDN's one fact per page style. The latter can only be found via Google, since it is now part of MSDN2, the "new MSDN" for Visual Studio 2005 and SQL Server 2005. MSDN2 is not mentioned in the book, nor is VBRun, the Visual Basic 6.0 Resource Center, which has a boatload of information on moving to VB 2005.

The database application in Chapter 4, "Developing a Windows Application" is useful and clearly presented. It's a nice example of the new SplitContainer control. But it's no better than examples in other introductions to Visual Basic, and it's a little hard to see how it's suited to the stated purpose of this book – of introducing developers with an existing Visual Basic 6 code base to Visual Basic 2005.

The term "jumpstart" cuts both ways. The goal of the book is to give VB6 programmers a rapid introduction to Visual Basic 2005. But the book itself was published rapidly – before Visual Basic 2005 was released – and some of that speed shows. On page 126, Jumpstart instructs you how to configure Windows XP to run IIS, but on page 139 points out that this isn't possible in XP Home.

Chapter 5, "Building Web Applications", explains that Visual Studio includes its own web server, so you don't need to run IIS, but the fact that Visual Basic 2005 Express doesn't include this feature is mentioned only in the preface (page xi). To provide IIS, you need either Windows XP Professional, or Visual Studio Standard or above, or Visual Web Developer 2005 Express. Wouldn't it make sense to explain the various combinations of operating systems and Visual Studio editions in one place, at the beginning of the chapter where they're relevant?

I'm not an ASP programmer, but I feel as though the 35 pages devoted to ASP probably aren't enough to give the topic a decent introduction, which perhaps deserves a separate book. For example, authentication is covered in just three short paragraphs. The 35 pages could have been devoted to something more central to the topic, such as more details on .NET 2.0. Obviously, there are other books on .NET 2.0, but while you can use Visual Basic 2005 without ASP, you can't use it without .NET 2.0.

If we take the book's tagline seriously, Chapter 6, "Moving from VB 6 to to VB 2005", should be the core of book, but it seems like more of an afterthought. Much of the content is from Artinsoft. Rather than reading about about it third-hand in this book, or second-hand on MSDN, I recommend you go to the the Artinsoft web site, where they have plenty of information for download.

It's hard to put a numerical rating on a book like this, which doesn't seem focused or particularly thorough, but still contains a lot of useful information. The book could have been better if it had been linked more systematically to Microsoft's online resources. It might have seemed better if the audience had been clearer. A rating of 5 ("Neither terrible nor terribly good") seems about right. By all means buy the book if you think it will be worth the money to have the information and examples in book form. Just don't expect too much."

You can purchase Visual Basic 2005 Jumpstart from Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page
This discussion has been archived. No new comments can be posted.

Visual Basic 2005 Jumpstart

Comments Filter:
  • by EraserMouseMan (847479) on Monday March 06, 2006 @02:05PM (#14859635)
    VB.Net is syntactically a lot different from classic VB. If you're going to make the switch, you might as well learn C#. Then you will also be familiar with C/C++ style coding.

    Ditch the Dim!
    • Public Main (e EventArgs) {
      Stupid Microsoft = new stupid();
      Stupid.GoBankruptIn = 100;
      Public On_Bankrupt (e EventArgs) {
      Linux Ubuntu = new Linux();
      //The domination of Linux written in C#
      • Public Main (e EventArgs) {
        Stupid Microsoft = new stupid();
        Microsoft.GoBankruptIn = 100;
        Public On_Bankrupt (e EventArgs) {
        Linux Ubuntu = new Linux();

        There, now maybe Linux can dominate the world.
        • Your parameter types are backwards, also you need to attach your event handler to receive events. More like...

          public void Main (EventArgs e) {
              Stupid microsoft = new Stupid();
              microsoft.GoBankruptIn = 100;
              microsoft.OnBankrupt += new EventHandler(On_Bankrupt);
          Public void On_Bankrupt (EventArgs e) {
          Linux ubuntu = new Linux();
      • Stupid Microsoft = new stupid(); Stupid.GoBankruptIn = 100; Stupid.Start();

        Shouldn't that be:

        Stupid Microsoft = new stupid();
        Microsoft.GoBankruptIn = 100;


        Linux Ubuntu = new Linux();

    • I agree. I just started in C# because a colleague had a large base of code we needed in the language already. It is actually quite a nice language. The most painful part was installing Windows for the first time in years.
    • I second that!
      And I even third that (if that makes sense) ;D !

      But I wonder: is there a /. reader who admits he is coding in VisualBasic, and for whom it makes sense to read such a book review?


      (P.S. I regullary don't admit I program in C# .... and the actual project is my first and hopefully my last C# project, never saw so much stupidity on one place concentrated)
      • ..what kind of stupidity? Blanket statements like that don't help anyone.
        • 70% of C# is copying the good stuff from Java.
          5% of C# is making minor improvements.
          15% is removing the stuff that makes Java superior.
          10% is adding braindead stuff which does not work as you would expect.

          If you want, I make you a list ;D

          Just some short examples:
          * why does System.Int21.Parse("0x0abcd1234", System.Globalization.NumberStyles.HexNumber) not work?
          But: uint hex = 0x0abcd1234; does work?
          * why are all things upper case letters? Classes, Methods, Properties? (brain dead naming conv
    • I disagree. VB.Net is symanticly very similar to VB6. Almost identical. Vb.Net is Object Oriented, and it's design considerations are vastly different from VB6. The problem most VB6 developers run into is that they know the syntax and they expect it to work a specific way. What I tell most people who talk about learning VB.Net is to take a Java or C# class, becuase they are both OO languages that will remove the expectations you have from knowing the syntax. Once you can wrap your head around OO design, jum
      • Wow so, attend a real OO class to learn a real OO language (C# or Java). Then go back to the old VB syntax just so you're back in your comfort zone? It's much better to go totally OO. Not OO-ified VB. It's just weird man, just weird.

        I used to do significant projects in classic VB. Now I use C# and cringe anytime I see people doing VB.Net. It's just so unnatural. It's like restoring a classic car's engine without restoring the body. It's never going to win anything at a classic car show. People will look
        • "Wow so, attend a real OO class to learn a real OO language (C# or Java). Then go back to the old VB syntax just so you're back in your comfort zone?"

          Uhh, Vb.Net IS real OO. VB6 is not. And why should you make developers learn an entirely new syntax when they are already proficient in one? Especially in a system like .Net where compiling different syntaxes is trivial. VB, Java, C#, PHP, you can do it all in .Net! The whole point was that you could use what ever language syntax you are familiar with and use
      • VB.Net is syntactically closer to VB6, but semantically it is an almost exact copy of C#, so much so that you can convert 95% of all code out there back and forth with a couple of regular expressions.
    • VB.Net is syntactically a lot different from classic VB. If you're going to make the switch, you might as well learn C#. Then you will also be familiar with C/C++ style coding.

      I disagree. If you have a VB 6 project with hundreds of thousands of lines of code, and the code is clean enough, then you can use a code converter utility to move almost all of your code to VB.NET. In most business environments, it is much better to be quickly up and running on VB.NET, than it is to rewrite hundreds of thousan
    • by Anonymous Coward
      Uh, no. VB and VB.NET have similar syntax. They are different only because of the .NET framework. If you learn c# you will NOT know c/c++ they are NOT similar. Java and c# have similar syntax. If you are trying to get a com object to work, you have to put a wrapper on it. .NET compiles com+, which VB6,VFP cant interop with, so you have to add a com wrapper, which is simply clicking a checkbox. Now, trying to put a com object into a .NET app is not so fun, but if you know the language, you can build your own
    • If your going to suggest learning C# then you may as well suggest switching to Java because .
      1: It makes Javascript easier.
      2: It makes c# easier
      3: It makes C/C++ style coding easier.
      4: You are no longer locked into a single vendor on a single platform.

      Oh and it's free or you can pay for JRockit, and the IDE (Eclipse) is free, or you can use JBuilder foundation or pay for a better version of JBuilder or even maybe a Microsoft product etc....
  • Pick a subject you learned yourself hastily, then find a publisher known for editors unfamiliar enough with your subject to accept it as gospel because the manuscript is long and *looks* intelligent.

    Look up Amazon reviews of Mortier's books on 3D design applications and you'll see almost the same reviews as above.
  • How about "why"? (Score:3, Interesting)

    by DogDude (805747) on Monday March 06, 2006 @02:06PM (#14859646) Homepage
    I think that the book should start off by trying to explain to me WHY I should move from VB6 to VB2005. From everything I've read, there's little reason to make the jump. I've got probably a dozen, working, mission-critical VB6 apps right now, and I just don't see the point.
    • There's your problem. "Mission Critical" and "VB" in the same sentence.

      Alarms sound, red lights flash.
    • by Anonymous Coward
      Don't mess with 'em, DogDude! It's just too dangerous!

      My dog's wiping his ass on my carpet!

      I must help you, but my MISSION CRITICAL cash register JUST BLUE SCREENED! Oh no! Why did we upgrade? How will we now make this sale of MISSION CRITICAL deworming medicine?!

      Best stick with what works. You're just too damned important to risk upgrading your little VB scripts.
    • I considered making the jump. I jumped back.

      Basically the .net libs are not nearly as nice as I had expected them to be. Many are surprisingly simplistic. The whole forms/dataset system really feels like a lashup to me. These will improve, I'm sure, but the paucity of 3rd party solutions and the general whimpyness as-supplied made my trivially simple project a lot of work.

      But to add to the frustration, I use an external COM plugin for data gathering. Trying to get this working with .net was nightmareish. Th
      • Thanks for the good info. That's some of the first real feedback I've gotten about it. I definitely use all kinds of 3rd party COM objects, and if they're not going to plug in seamlessly, then I'm already losing time/money. And if .NET objects are *easier*, then there's really no need. I've never really run into any problems with the plain ol' vanilla OLE DB stuff except for vendor-supplied drivers (I found one from Oracle where they switched the order of parameters in some important functions that cont
      • >I'll be sticking with VB6. I see no compelling reason to change.

        this may not matter to you, but VB6 isnt supported by MS anymore. (or will be soon?)

        i'm doing my work now with C# (2005 Edition) and most likely will never go back to VB5/6
      • by dnaumov (453672)

        "But the worst problem is that .net is still very much a bolt-on to Windoes. When you load the system, .net does not load. In fact, many of the machines in the office didn't even have it installed. What this means is that when you start your (my) 32k compiled app, it takes about 15-20 seconds for the libs to load up."

        What a ridiculous bunch of FUD. What machines are you using, Pentium 166 ? My machine is rather dated by today's standards, a 1 Ghz Athlon with 512mb or ram and all the .NET apps I have run so

      • Did you try using ngen.exe? This can also been run from windows installer via a custom action.

        NGen Revs Up Your Performance with Powerful New Features []
      • Re:How about "why"? (Score:2, Interesting)

        by RetroGeek (206522)
        What this means is that when you start your (my) 32k compiled app, it takes about 15-20 seconds for the libs to load up.

        Which is the main complaint about Java. That it takes too long for the JVM to start up.

        And from a post below:

        all the .NET apps I have run so far start up in 1-4 seconds.

        Which is my experience with Java.
      • Re:How about "why"? (Score:3, Informative)

        by 0kComputer (872064)
        But to add to the frustration, I use an external COM plugin for data gathering. Trying to get this working with .net was nightmareish.

        I've been using .net for over 4 years now and I've never had an issue inegrating w/ existing COM components. Actually Visual Studio does all the work for you, and if for some reason you need to do something it can't handle or need to override something theres plenty of info on it (Hint: search for interop). You are either spreading FUD, or just dont know how to find th
      • "I considered making the jump. I jumped back."

        So, not only didn't you jump, the system was so horrible that merely contemplating it made you go back to your previous language of choice?

    • While this may not be a general concern for some developers, Microsoft has moved Visual Basic 6 out of "Mainstream Support" (as of 3/31/2005) and into "Extended Support". Extended support is set to end 3/31/2008. How does that affect you? If your application is working now, what's going to cause it to break? Well, it may not, but some companies (or individuals) have policies put in place as a CYA that you may not be able to develop using tools that are no longer supported by the vendor. It gives them som
    • Because you're still hopelessly tied in to a steaming pile of hack-prone, virus-ridden shit called Windows. Now if you move to a .NET VB platform, the nice people at the Mono project have provided you with a solution which allows you to run on a decent operating system, providing your VB code doesn't reference a laundry-list of broken, insecure COM objects (in which case you should rewrite your code on a platform used by Real Men, like J2EE etc.)

      At least with mono, you are able to regain some of your man

    • Re:How about "why"? (Score:3, Interesting)

      by RobinH (124750)
      We use VB6 for some specialized tasks... basically a nice colorful user interface where we need the use of a PC to store some data. The actual mission critical stuff is usually performed by some underlying real time control system. In that respect, what vb6 gives us is a rapid GUI development that can do all the things that LabView and Citect can do but has a lot more user support on the internet, and can integrate better with everything else. It's a good fit.

      Then we tried moving to VB .NET. I didn't ha
    • I think that the book should start off by trying to explain to me WHY I should move from VB6 to VB2005.
      Probably because you'd like to get another job sometime.
    • For starters, because future "upgrades" to Windows or other software may eventually break the DLL environment upon which VB6 and/or your VB6 apps depend. We've already started to see this at the company I work for, and are scrambling to figure out ways to move this stuff (including very old versions of Apex controls, Crystal Reports, etc.) into a slightly more modern environment.
  • by dpbsmith (263124) on Monday March 06, 2006 @02:13PM (#14859692) Homepage
    ...because at the rate Microsoft keeps coming up with new and incompatible versions of VB, it seems a foregone conclusion that by the time you absorb the book and have Made Your Move Now from VB 6 to VB 2005, it will be time to buy VB Jumpstart 2006: Make Your Move Now from VB 2005 to 2006, and then VB Jumpstart 2007, VB Jumpstart 2008, etc.

    For the lucky author, it gives a new meaning to the phrase .NET profit.
    • What versions are these? What incompatibilities? VB6 to VB.Net, yes. But what else? If you mean 16-32 bit in VB4 that was a while ago. I'd call FUD but I might have missed something.

      • VB5 was an incomplete implementation of 6... Things were broken from 4, DIFFERENTLY than they would be broken from 4 to 6. Further, things that worked in 5 did not work the same way in 6. With the jump from 6 to .NET, there was a post on google groups/deja about the vast list of things where the entire logical context changed. So YEAH, Every version change since 4.
  • Visual Fred (Score:5, Insightful)

    by vadim_t (324782) on Monday March 06, 2006 @02:15PM (#14859715) Homepage
    No such thing as a migration from VB6 to .NET. VB.NET is simply .NET with a VB-like syntax. Anything at all larger than a few lines is best rewritten from the beginning.

    IMO, it's pointless to try to convert a VB6 program to .NET, it'll end up being a lot more effort than just writing it from scratch.

    This is the risk you take when coding using closed tools. There's no more support for VB6, and no real migration path.

    • Re:Visual Fred (Score:2, Insightful)

      by DogDude (805747)
      his is the risk you take when coding using closed tools. There's no more support for VB6, and no real migration path.

      So, what's the problem, *exactly*? I hear OSS zealots saying this all of the time, but all of my VB6 apps still work just fine...
      • all of my VB6 apps still work just fine...

        A specific example for you.

        MS stopped supporting MS Proxy server, but that was no problem, we just kept using it because it worked. Then last year shortly after I was hired, it just stopped working.

        I tried to reinstall it, only to find it was installed under windowsNT4, and then the server was upgraded to windows2000. MS Proxy cannot be installed under windows2000, you would need the windows2000 version that never existed.

        We have a linux based proxy server now

        • So why didn't you replicate the install chain?? For debugging purposes only of course.
      • They work now. Nothing guarantees they'll continue working in Windows 2007 or whatever. MS can easily break say, something in ADO, and all the programs using it will be screwed.

        Another pretty major thing is that there's no upgrade path. VB3 code worked with VB4, and so on until VB6. But not anymore. This is a deadend. Compare with C, invented in 1970 and compilers are still being developed. It works, so people happily continue using it.

        This also means all 3rd party providers are switching to the new infrast
      • So, what's the problem, *exactly*? I hear OSS zealots saying this all of the time, but all of my VB6 apps still work just fine... Because they will slowly die, bit by bit. You may find weird errors using Vista or the next radically different OS pumped out by Microsoft. You many notice oddities under a 64 bit OS. There are lots of horrible possibilities. Also if your customers know your applications are in VB6, they may start to worry too.
  • by funkmeister (783995) on Monday March 06, 2006 @02:40PM (#14859967) Homepage
    I love all the titles the VB authors use for their "insights" into this decrepit language. Like "VB Unleashed!" as if VB is some rabid animal, or "Hidden VB secrets" just dug up from King Tuts tomb.

    I see a nice spot on my bookshelf for this book, beside my kids "Jumpstart Toddlers" CD's.
  • VB to Python (Score:5, Interesting)

    by scorp1us (235526) on Monday March 06, 2006 @02:41PM (#14859979) Journal
    VB is the whipping boy of Microsoft. Every iteration changes the language in some crazy way. I started pre-VB, but for the VB line, I started at VB1.0. I've watched it "grow" (I perfer mutate) over the years. I now still do about 90% VB. But I have tired of the language changing every few years. I've fallen in love with Python. It is cross-platform and easier. The only thing needed is a good GUI. I prefer Qt, (which is GPL or commercial). The effort of supporting more than windows in one platform is trivial with python, which opens up the MacOSX market (and linux too.)

    Even if you don't need crossplatform, Python has all that COM support and is highly integrated into the Windows OS. To me, it is worth my time to learn python because the languages changes very little. It also is 'cleaner'.

    Ruby fans don't flame me. I know the two are close, but I can only recommend what I have used extensively.
    • Re:VB to Python (Score:2, Interesting)

      by RonMcMahon (544607)
      Your comment; "Every iteration changes the language in some crazy way. I started pre-VB, but for the VB line, I started at VB1.0. I've watched it "grow" (I perfer mutate) over the years. I now still do about 90% VB. But I have tired of the language changing every few years." is very odd. It has me questioning if you are being entirely honest.

      As a VB developer since 1993 (and a commercial software developer since 1983), I can say that the language (pre .NET) hasn't changed in the way you present that it

      • I call bullshit.

        I too have programmed in VB from the old days and I can tell you emphatically that any VB2 application you had was using VBX controls and will no longer work. Furthermore you can no longer find VBX controls nor get the ones you were using upgraded.

        The migration from VBX to OCX cost me over two thousand dollars as I replaced all the controls I was used to using. I paid the money because I had to, I didn't enjoy it and I tried my best to pass the cost on to my customers who ended up with the s
  • I write in VB.NET 2005. I feel like it's all stagnant. The welcome page in the application hasn't updated since November, most code examples are referring to VB6, what little I can find on VB.NET 2005 is about the public beta, and recent posts to boards regarding the language reveals that many think the software is still in beta even though it was released about five months ago.

    Clickonce deployment is one of the most exciting things I've seen in ages, but aside from a couple little exercises I wrote, I've o
  • You know the 'beep' command works just as faithfully as it did, way back in the glory days of BASIC?

    Yes, but better (or worse depending on how you look at it).....

    "on error resume next" is still alive and kicking! w00t!
  • It's a trite comment, and it's the reviewers words, but it kinda sums it up:

    the book also includes introductory and summary material rather than staying focused on VB 6 users

    Users, not developers?

  • One of those books you purchase just because you may stumble upon an explanation to a problem you're not finding in your more robust guides.
  • Loved it, then hated it...

    I did a large application long ago starting with VB 2.0 thru VB 6. That was an "interesting" progression with each version. As some have pointed out MS threw in some crazy changes along the way, but for the most part each version built on the previous version. The notable exception being the data libraries... DAO, RDO, ADO, etc... Each time re-inventing the wheel, but by version 6 with ADO it seemed like MS had hit upon a good compromise of power and accessibility.

    Than came .Ne
  • I work for a company whose main product is a VB6 app that has had hundreds of thousands of pounds invested in it over many years. When .Net came out we quickly realised there was no way to simply convert the code to VB.NET. The upgrade wizard is a joke. The only way to move to .NET is to do a rewrite, but we don't have the time or money to do that. I suspect many companies are in this position, but they don't want to make to much of a fuss as they do not want their customers to know about the problem. Even
  • Until Visual Studio returns the ability to create a stand alone executable program there will always be a place for VB6. Microsoft could not have made their AntiSpyware without it!
  • Visual Basic 2005 Jumpship

Gosh that takes me back... or is it forward? That's the trouble with time travel, you never can tell." -- Doctor Who, "Androids of Tara"