Visual Basic 2005 Jumpstart 169
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 Microsoft.com, 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 bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page
Don't switch to VB.Net - Switch to C# (Score:4, Insightful)
Ditch the Dim!
Re:Don't switch to VB.Net - Switch to C# (Score:1, Funny)
Stupid Microsoft = new stupid();
Stupid.GoBankruptIn = 100;
Stupid.Start();
}
Public On_Bankrupt (e EventArgs) {
Linux Ubuntu = new Linux();
Linux.DominatePlanet();
}
Debugged version (Score:1)
Stupid Microsoft = new stupid();
Microsoft.GoBankruptIn = 100;
Microsoft.Start();
}
Public On_Bankrupt (e EventArgs) {
Linux Ubuntu = new Linux();
Ubutnu.DominatePlanet();
}
There, now maybe Linux can dominate the world.
Re:Debugged version (Score:2)
public void Main (EventArgs e) {
Stupid microsoft = new Stupid();
microsoft.GoBankruptIn = 100;
microsoft.OnBankrupt += new EventHandler(On_Bankrupt);
microsoft.Start();
}
Public void On_Bankrupt (EventArgs e) {
Linux ubuntu = new Linux();
ubuntu.DominatePlanet()}
Re:Don't switch to VB.Net - Switch to C# (Score:2)
Shouldn't that be:
Stupid Microsoft = new stupid();
Microsoft.GoBankruptIn = 100;
Microsoft.Start();
Also:
Linux Ubuntu = new Linux();
Ubuntu.DominatePlanet();
Re:Don't switch to VB.Net - Switch to C# (Score:2)
Re:Don't switch to VB.Net - Switch to C# (Score:1)
Re:Don't switch to VB.Net - Switch to C# (Score:2)
I spit on mono.
Re:Don't switch to VB.Net - Switch to C# (Score:2)
Re:Don't switch to VB.Net - Switch to C# (Score:1, Interesting)
Personally, I think C# and Java (which I've invested almost a decade learning/using) are pretty much never the best solution anymore. Anything I can do in Java I can do better with a mix of Python (or Ruby) and C. Java (and C#) are
Re:Don't switch to VB.Net - Switch to C# (Score:1)
The main reasons to learn C# over vb.net is that the samples available are usually written in C#, and the jobs available usually have a snobby attitude that C# developers are somehow superior becau
Re:Don't switch to VB.Net - Switch to C# (Score:1)
Re:Don't switch to VB.Net - Switch to C# (Score:1)
Re:Don't switch to VB.Net - Switch to C# (Score:3, Funny)
The computer converts source code to binary pretty easily, too.
Re:Don't switch to VB.Net - Switch to C# (Score:2)
And I even third that (if that makes sense)
But I wonder: is there a
angel'o'sphere
(P.S. I regullary don't admit I program in C#
Re:Don't switch to VB.Net - Switch to C# (Score:1)
Re:Don't switch to VB.Net - Switch to C# (Score:2)
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
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
Re:Don't switch to VB.Net - Switch to C# (Score:2)
True. Besides the fact that I don't write OS specific software nevertheless MS could have made lots of stuff less contra intuitive
IMHO you should not need to use the Windows API if you program in
My list was just a short list from my mind about stuff I stumbled over the last days
ange
Re:Don't switch to VB.Net - Switch to C# (Score:3, Interesting)
Re:Don't switch to VB.Net - Switch to C# (Score:2)
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
Re:Don't switch to VB.Net - Switch to C# (Score:2)
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
Re:Don't switch to VB.Net - Switch to C# (Score:1)
That's odd, I thought there was some restriction on extending base objects because they are basically wrappers around Windows API.
Re:Don't switch to VB.Net - Switch to C# (Score:3, Informative)
-Rick
Re:Don't switch to VB.Net - Switch to C# (Score:2)
Re:Don't switch to VB.Net - Switch to C# (Score:1)
vb.net : 139 [monster.co.uk]
C# 449 [monster.co.uk]
Java 770 [monster.co.uk]
Sorry, I'm American (Score:2)
-Rick
Re:Don't switch to VB.Net - Switch to C# (Score:2)
Re:Don't switch to VB.Net - Switch to C# (Score:2)
The only problems I have found with programming mistakes not being picked up by the compiler are late binding issues where elements are access by string/integer identifiers and the debugger picks those up as expected. I mean, the compiler doesn't know that my database has a table with a column names "Value1" at compile time, so If I fat finger "Valeu1" into an identifier, th
Re:Don't switch to VB.Net - Switch to C# (Score:3, Interesting)
I cannot see that vb syntax, for someone coming in with no prior
Re:Don't switch to VB.Net - Switch to C# (Score:2, Insightful)
Re:Don't switch to VB.Net - Switch to C# (Score:2)
Some of us like words better than symbols, and I hate all the ways C and its descendants encourage people to combine multiple lines of code into one.
On the other hand, I also like lines that end with semicolons, so unless Pascal makes a comeback, I'm probably SOL for general-purpose languages. For specialized languages, PL/SQL is okay, but it would be nice if they had decided whether they wanted a BA
Re:Don't switch to VB.Net - Switch to C# (Score:2)
There's nothing wrong with VB per se. It's a decent language for prototyping and quick fixes. And it's flexibility is an asset that might make it a reasonable consideration for some large projects.
But as anyone who has ever written code for a living will tell you. There's not actually such a thing as a "quick hack" or "quick fix" and all too frequently, a prototype becomes a release product when th
Re:Don't switch to VB.Net - Switch to C# (Score:2)
-Rick
Re:Don't switch to VB.Net - Switch to C# (Score:2)
For example, this code:
Console.WriteLine( 2 + Test() )
I think would work with your example and actually return "2" rather than Null Pointer Exception or whatever. Gack.
I LOVE it !!! (Score:2)
Brilliant! It appeals to a self-taught programmer's basic instincts to feel comfortable with an English-like language. But like everything in life, it comes with trade-offs.
Re:Don't switch to VB.Net - Switch to C# (Score:2)
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
Re:Don't switch to VB.Net - Switch to C# (Score:1, Informative)
Re:Don't switch to VB.Net - Switch to C# (Score:1)
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....
Re:Don't switch to VB.Net - Switch to C# (Score:2)
You > You can write OO Javascript (it's fun too!!!)
I agree about Javascript being fun, but the OO syntax (and underlying functionality) is completely different thatn Java's. You beat your own argument.
Sounds like R. Shamms Mortier's MO for authoring. (Score:2, Interesting)
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)
Re:How about "why"? (Score:2, Funny)
Alarms sound, red lights flash.
Re:How about "why"? (Score:1, Funny)
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.
Re:How about "why"? (Score:2, Informative)
Basically the
But to add to the frustration, I use an external COM plugin for data gathering. Trying to get this working with
Re:How about "why"? (Score:1)
Re:How about "why"? (Score:2)
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
Re:How about "why"? (Score:2, Informative)
what a bunch of FUD (Score:1, Flamebait)
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
Re:How about "why"? (Score:2)
NGen Revs Up Your Performance with Powerful New Features [microsoft.com]
Re:How about "why"? (Score:2, Interesting)
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
Which is my experience with Java.
Re:How about "why"? (Score:3, Informative)
I've been using
Re:How about "why"? (Score:2)
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?
Impressive.
Re:OMG what are you doing? 20 seconds?!!! (Score:2)
As a software developer I just love telling my customers to buy a new computer so they can run the new version of my software that does the same thing as the old version. They never fail to applaud my programming and business acumen.
I develop in both, but when there's no compelling reason to use NET I continue to use VB6, there's a wider installed base of the runtimes and better resource use/performance.
Re:How about "why"? - Product Support (Score:1)
Re:How about "why"? (Score:1)
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)
Then we tried moving to VB
Re:How about "why"? (Score:2)
1. I used pascal once. I have a strong C background, but have used Perl, assemb
Re:How about "why"? (Score:2)
Before you young'ins had objects everywhere, we did the same thing but we called it modular programming. It's how Linux got written actually... no C++ needed.
We had a guy at work like you... you got him in a meeting and he went on and on and on about architecture, interfaces, objects, API's, whatever, and the reason he's fired is that he was too dumb to realize that you actually had to
Re:How about "why"? (Score:2)
You are showing your lack of formal education by implying that the language you use has any bearing on if the application is 'well designed'. Well designed apps have been written in assembly on up.
Creating a
Re:How about "why"? (Score:2)
With vb6 it is very hard to write applications that are reusable.
I guess I'm just really really good at it then, because I consider it easy to create reusable code in any language. It's called modular programming. We did it before object oriented was all the rage with the tweenies.
Re:How about "why"? (Score:2)
In VB6 they have these things called "modules", and also things called "class modules" if you can't pry yourself away from objects, and they have user controls. All of which can be part of a shared library or shared repository of code, especially since it integrates just fine with source safe or whatever version control system you want to tack on, like CVS. You don't have to put any of your business logic in the forms.
You obviously don't know what you're talking about. Why
Re:How about "why"? (Score:2)
Probably because you'd like to get another job sometime.
Re:How about "why"? (Score:2)
Re:How about "why"? (Score:2)
This should be a subscription, not a book... (Score:3, Funny)
For the lucky author, it gives a new meaning to the phrase
Re:This should be a subscription, not a book... (Score:1)
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.
Re:This should be a subscription, not a book... (Score:1)
Visual Fred (Score:5, Insightful)
IMO, it's pointless to try to convert a VB6 program to
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)
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...
Re:Visual Fred (Score:1)
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
Re:Visual Fred (Score:1)
Re:Visual Fred (Score:2)
A sendmail.cf file that is five years old still works. Ditto for qmail and postfix configurations, and BIND, and Samba, and Squid, and Apache...do you know why? Because there was no reason to make them not work. Even massive improvements to a piece of sta
Re:Visual Fred (Score:2)
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
Re:Visual Fred (Score:2)
VB book titles. (Score:3, Funny)
I see a nice spot on my bookshelf for this book, beside my kids "Jumpstart Toddlers" CD's.
Re:VB book titles. (Score:2)
Unleashed is one of Sams' major series. 48 books total [samspublishing.com]
Re:VB book titles. (Score:2)
VB to Python (Score:5, Interesting)
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)
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
Re:VB to Python (Score:2)
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
Re:VB to Python (Score:2)
Well, that's off my Amazon Wishlist, but... (Score:2)
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
VB2005 - Top Language (Score:1)
Yes, but better (or worse depending on how you look at it).....
"on error resume next" is still alive and kicking! w00t!
VB "Users" (Score:2)
the book also includes introductory and summary material rather than staying focused on VB 6 users
Users, not developers?
Sounds like a reasonable compendium (Score:1)
Tried it (Score:2)
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
Don't Flush Your Investment Down the Loo Again! (Score:2)
Cold Dead Fingers (Score:2)
Re:Cold Dead Fingers (Score:2)
Shouldn't that read.... (Score:2)
Visual Basic 2005 Jumpship
Re:VB anything stings my eyes (Score:3, Insightful)
Re:VB anything stings my eyes (Score:2)
Sorry, what? There are too crappy languages. As an extreme example, let's see you code a web application in Brainfuck. It's hard to read, takes ages to write, and is a pain to set up. But it can't be the fault of the language, because there are no crappy languages, of course.
Re:VB anything stings my eyes (Score:5, Insightful)
Because it works. It is simple. It gets the job done fast.
It works most effectively for smallish one-off projects and, I admit, there are better tools to use for anything that requires a software engineering effort, but VB fills a lot of needs.
The "sister" language, VBA, is ideal for vendors who want to provide rich, user-accessible scripting interface to their hardware or software products.
Re:VB anything stings my eyes (Score:3, Insightful)
Also, the damn thing's everywhere. Suppose you have some dullish office data handling task. The sort of thing your average white-collar drone will spend several days working on in Excel, click, copy, paste, add up, repeat...
You're smarter than that. You know that this kind of repetitive shite is best done by a computer. Very well... but you aren't in the I
Re:VB anything stings my eyes (Score:3, Insightful)
Because vbscript works with excel, word, access - learning vb gets you to work with almost every microsoft product from asp server scripting to making vb6 windows applications to client side vbscript coding to office to scripting for other apps.
It gets the job done a lot of times coz you have 1 week to process this data or 1 week to make a quick system for the local auction.
Re:VB anything stings my eyes (Score:2)
Re:VB anything stings my eyes (Score:2)
But guess what--Javascript can do all those things as well. The whole idea of COM was that the calling convention is accessable to any language, unlike the insular world of Java. I have written lots of Windows Script Host scripts in Javascript and have done a whol
Re:VB anything stings my eyes (Score:2)
So then what exactly is the difference between coding in VBScript and Javascript?
They have access to the same set of objects. Javascript does not have any language features that VBScript does not have.
Javascript has curly braces and type sensitivity but for most part any Javascript code can be translated line by line to exactly the same VBScript code.
Re:VB anything stings my eyes (Score:2)
Re:MS abandoned VB6 coders since .NET (Score:2)
The tragedy is that the management is going with