Visual Basic 2005 Cookbook: Solutions for VB 2005 Programmers [NOOK Book]

Overview


This book will help you solve more than 300 of the most common and not-so-common tasks that working Visual Basic 2005 programmers face every day. If you're a seasoned .NET developer, beginning Visual Basic programmer, or a developer seeking a simple and clear migration path from VB6 to Visual Basic 2005, the Visual Basic 2005 Cookbook delivers a practical collection of problem-solving recipes for a broad range of Visual Basic programming tasks.

The concise solutions and ...

See more details below
Visual Basic 2005 Cookbook: Solutions for VB 2005 Programmers

Available on NOOK devices and apps  
  • NOOK Devices
  • NOOK HD/HD+ Tablet
  • NOOK
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac
  • NOOK Study
  • NOOK for Web

Want a NOOK? Explore Now

NOOK Book (eBook)
$22.99
BN.com price
(Save 42%)$39.99 List Price

Overview


This book will help you solve more than 300 of the most common and not-so-common tasks that working Visual Basic 2005 programmers face every day. If you're a seasoned .NET developer, beginning Visual Basic programmer, or a developer seeking a simple and clear migration path from VB6 to Visual Basic 2005, the Visual Basic 2005 Cookbook delivers a practical collection of problem-solving recipes for a broad range of Visual Basic programming tasks.

The concise solutions and examples in the Visual Basic 2005 Cookbook range from simple tasks to the more complex, organized by the types of problems you need to solve. Nearly every recipe contains a complete, documented code sample showing you how to solve the specific problem, as well as a discussion of how the underlying technology works and that outlines alternatives, limitations, and other considerations. As with all O'Reilly Cookbooks, each recipe helps you quickly understand a problem, learn how to solve it, and anticipate potential tradeoffs or ramifications.

Useful features of the book include:

  • Over 300 recipes written in the familiar O'Reilly Problem-Solution-Discussion format
  • Hundreds of code snippets, examples, and complete solutions available for download
  • VB6 updates to alert VB6 programmers to code-breaking changes in Visual Basic 2005
  • Recipes that target Visual Basic 2005 features not included in previous releases
  • Code examples covering everyday data manipulation techniques and language fundamentals
  • Advanced projects focusing on multimedia and mathematical transformations using linear algebraic methods
  • Specialized topics covering files and file systems, printing, and databases

In addition, you'll find chapters on cryptography and compression, graphics, and special programming techniques. Whether you're a beginner or an expert, the Visual Basic 2005 Cookbook is sure to save you time, serving up the code you need, when you need it.

For seasoned .NET developers, as well as those seeking a simple and clear migration path from Visual Basic 6.0 to Visual Basic 2005, this cookbook delivers the definitive collection of problem-solving recipes for a broad range of Visual Basic programming tasks.

Read More Show Less

Product Details

  • ISBN-13: 9780596554903
  • Publisher: O'Reilly Media, Incorporated
  • Publication date: 12/17/2008
  • Series: Cookbooks (O'Reilly)
  • Sold by: Barnes & Noble
  • Format: eBook
  • Edition number: 1
  • Pages: 742
  • File size: 8 MB

Meet the Author

Tim Patrick is Senior Software Architect at TiMaki Services developing c

John Clark Craig's programming experiences and interests go back quite a ways. In 1974 he was programming a DEC PDP8E attached to a teletype and running a paper tape loaded version of FOCAL, a simple programming language similar to BASIC. Over the years, John programmed in just about every version of the BASIC language available, and authored several books on the subject along the way. During John's career as a full-time Software Engineer, he has worked on several fascinating energy and environmental projects. Currently, he's enjoying his software guru position working with a small team of bright R&D engineers as they create the next generation of high-tech self-erecting towers for the world's largest wind turbines.

Read More Show Less

Table of Contents

Dedication; Preface; Who This Book Is For; How This Book Is Organized; What You Need to Use This Book; Conventions Used in This Book; Using Code Examples; Comments and Questions; SafariĀ® Enabled; Acknowledgments; From Tim Patrick; From John Clark Craig; Chapter 1: Visual Basic Programming; 1.1 Introduction; 1.1 Creating a Windows Forms Application; 1.2 Creating a Console Application; 1.3 Creating an ASP.NET Web Forms Application; Chapter 2: The Development Environment; 2.1 Introduction; 2.1 Discovering and Using a Code Snippet; 2.2 Creating a New Snippet; 2.3 Sharing Snippets; 2.4 Adding Snippet Files to Visual Studio; 2.5 Getting an Application's Version Number; 2.6 Letting Visual Studio Automatically Update an Application's Version Number; 2.7 Setting the Startup Form for an Application; 2.8 Setting the Startup to a Sub Main Procedure; 2.9 Getting an Application's Command Line; 2.10 Testing an Application's Command Line; 2.11 Obfuscating an Application; 2.12 Determining if an Application Is Running in the Visual Studio Environment; 2.13 Accessing Environment Variables; 2.14 Accessing the Registry; 2.15 Getting System Information; 2.16 Getting the User's Name; Chapter 3: Application Organization; 3.1 Introduction; 3.1 Creating a Code Module; 3.2 Creating a Class; 3.3 Creating a Structure; 3.4 Creating Other Item Types; 3.5 Creating Object Instances; 3.6 Initializing a Class Instance with Data; 3.7 Releasing an Instance's Resources; 3.8 Using Namespaces; 3.9 Splitting a Class Across Multiple Files; 3.10 Creating a Form Based on Another Form; 3.11 Passing and Returning Structures and Other Objects; 3.12 Creating and Using an Enumeration; 3.13 Converting Between Numeric and String Enumeration Values; 3.14 Creating a Method That Accepts Different Sets of Arguments; 3.15 Using Standard Operators for Nonstandard Purposes; 3.16 Enforcing Strong Data Typing in an Otherwise Weakly Typed Collection; Chapter 4: Forms, Controls, and Other Useful Objects; 4.1 Introduction; 4.1 Creating and Adding Controls at Runtime; 4.2 Iterating Through All Controls on a Form; 4.3 Sharing Event-Handler Logic Among Many Controls; 4.4 Working with Timers; 4.5 Determining If a Control Can Take the Focus; 4.6 Programmatically Clicking a Button; 4.7 Drawing a Control; 4.8 Making a Form the Top-Most Form; 4.9 Indicating the Accept and Cancel Buttons on a Form; 4.10 Remembering a Form's Position Between Uses; 4.11 Attaching a Control to the Edge of a Form; 4.12 Moving or Resizing Controls as a Form Resizes; 4.13 Limiting the Sizing of a Form; 4.14 Centering a Form; 4.15 Creating and Moving a Borderless Form; 4.16 Creating a Fading Form; 4.17 Creating a Nonrectangular Form; 4.18 Changing Menus at Runtime; 4.19 Creating Shortcut Menus; Chapter 5: Strings; 5.1 Introduction; 5.1 Using a StringBuilder; 5.2 Creating a String of N Identical Characters; 5.3 Creating a String by Repeating a String N Times; 5.4 Obfuscating a String; 5.5 Converting Binary Data to a Hexadecimal String; 5.6 Extracting Substrings from Larger Strings; 5.7 Converting a String's Case; 5.8 Comparing Strings with Case Sensitivity; 5.9 Comparing Strings Without Case Sensitivity; 5.10 Converting Strings to and from Character Arrays; 5.11 Converting Strings to and from Byte Arrays; 5.12 Tallying Characters; 5.13 Counting Words; 5.14 Removing Extra Whitespace; 5.15 Using the Correct End-of-Line Characters; 5.16 Replacing Substrings; 5.17 Inserting a Character or String; 5.18 Inserting a Line; 5.19 Double-Spacing a String; 5.20 Formatting Numbers into Strings; 5.21 Trimming Sets of Characters from a String; 5.22 Identifying and Validating Types of Data in a String; 5.23 Converting Strings Between Encoding Systems; 5.24 Determining a Character's Type; 5.25 Parsing Strings; 5.26 Concatenating Strings; 5.27 Speeding Up String Manipulation; 5.28 Counting Occurrences of a Substring; 5.29 Padding a String for Exact Length and Alignment; 5.30 Converting Tabs to Spaces; 5.31 Reversing a String; 5.32 Shuffling a String; 5.33 Using a Simple String Encryption; 5.34 Converting a String to Morse Code; 5.35 Adding Strings to an Application's Resources; 5.36 Converting Any Data to a String; 5.37 Using Regular Expressions to Extract All Numbers; 5.38 Getting a Count of Regular Expression Matches; 5.39 Getting the Nth Regular Expression Match; 5.40 Compiling Regular Expressions for Speed; 5.41 Using Regular Expressions to Validate Data; 5.42 Using Regular Expressions to Count Characters, Words, or Lines; 5.43 Converting a String to and from Base64; 5.44 Splitting a String; 5.45 Creating a String of Space Characters; Chapter 6: Numbers and Math; 6.1 Introduction; 6.1 Using Compact Operator Notation; 6.2 Choosing Integers of the Right Size and Type for the Job; 6.3 Ussssssing Unsigned Integers; 6.4 Swapping Two Integers Without Using a Third; 6.5 Using Single- and Double-Precision Variables; 6.6 Using Decimal Variables for Maximum Precision; 6.7 Converting Between Number Types; 6.8 Rounding Numbers Accurately; 6.9 Declaring Loop Counters Within Loops; 6.10 Converting Between Radians and Degrees; 6.11 Limiting Angles to a Range; 6.12 Creating Double-Precision Point Variables; 6.13 Converting Between Rectangular and Polar Coordinates; 6.14 Creating Three-Dimensional Variables; 6.15 Converting Between Rectangular, Spherical, and Cylindrical Coordinates; 6.16 Working with Complex Numbers; 6.17 Solving Right Triangles; 6.18 Solving Any Triangle; 6.19 Determining if a String Contains a Valid Number; 6.20 Converting Numbers to Integers; 6.21 Calculating p to Thousands of Digits; 6.22 Getting a Number's Prime Factors; 6.23 Using Recursion to Calculate Factorials; 6.24 Manipulating Bits with Bitwise Operators; 6.25 Storing and Retrieving Bits in a BitArray; 6.26 Enhancing the Random Number Generator; 6.27 Generating Random Integers in a Range; 6.28 Generating Random Real Numbers in a Range; 6.29 Generating Normal-Distribution Random Numbers; 6.30 Generating Exponential-Distribution Random Numbers; 6.31 Creating a Matrix; 6.32 Inverting a Matrix; 6.33 Calculating the Determinant of a Matrix; 6.34 Solving Simultaneous Equations; 6.35 Listing of the MatrixHelper Class; Chapter 7: Dates and Times; 7.1 Introduction; 7.1 Getting the System Date and Time; 7.2 Accessing the System's Time Zone; 7.3 Using System Ticks; 7.4 Timing Application Activities; 7.5 Calculating Elapsed Time Using Ticks; 7.6 Calculating Elapsed Time with the Stopwatch; 7.7 Extracting Year, Month, and Day Numbers from a Date Value; 7.8 Extracting Hour, Minute, and Second Numbers from a Date Value; 7.9 Creating a Date or Time Value from Its Parts; 7.10 Formatting Dates and Times; 7.11 Parsing and Validating Dates and Times; 7.12 Adding to Dates and Times; 7.13 Subtracting from Dates and Times; 7.14 Determining the Number of Days Between Two Dates; 7.15 Determining the Day of the Week for a Date; 7.16 Determining the Day of the Year for a Date; 7.17 Determining the Number of Days in a Month; 7.18 Using Controls to Enter or Select a Date; 7.19 Calculating the Phase of the Moon; 7.20 Creating a Calendar; 7.21 Checking for Leap Years; 7.22 Dates and Times in ISO 8601 Formats; Chapter 8: Arrays and Collections; 8.1 Introduction; 8.1 Filling an Array While Declaring It; 8.2 Sorting Array Elements; 8.3 Reversing an Array; 8.4 Inserting into an Array; 8.5 Shuffling an Array; 8.6 Swapping Two Array Values; 8.7 Resizing Arrays Without Losing Existing Values; 8.8 Quickly Copying Part of an Array into Another; 8.9 Writing a Comma-Separated-Values File from a String Array; 8.10 Reading a Comma-Separated-Values File into a String Array; 8.11 Using a Multivalue Array Instead of a Two-Dimensional Array; 8.12 Converting Between Delimited Strings and Arrays; 8.13 Formatting an Array as a Single String; 8.14 Iterating Through Array Elements; 8.15 Passing Arrays to Methods; 8.16 Returning Arrays from Functions; 8.17 Creating a Collection; 8.18 Inserting an Item into a Collection; 8.19 Deleting a Collection Item; 8.20 Iterating Through a Collection; Chapter 9: Graphics; 9.1 Introduction; 9.1 Creating Graphics Objects; 9.2 Drawing on Controls for Special Effects; 9.3 Letting the User Select a Color; 9.4 Working with Coordinate Systems (Pixels, Inches, Centimeters); 9.5 Creating a Bitmap; 9.6 Setting a Background Color; 9.7 Drawing Lines, Ellipses, and Rectangles; 9.8 Drawing Lines One Pixel Wide Regardless of Scaling; 9.9 Forcing a Form or Control to Redraw; 9.10 Using Transparency; 9.11 Scaling with Transforms; 9.12 Using an Outline Path; 9.13 Using Gradients for Smooth Color Changes; 9.14 Drawing Bezier Splines; 9.15 Drawing Cardinal Splines; 9.16 Limiting Display Updates to Specific Regions; 9.17 Drawing Text; 9.18 Rotating Text to Any Angle; 9.19 Mirroring Text on the Canvas; 9.20 Getting the Height and Width of a Graphic String; 9.21 Drawing Text with Outlines and Drop Shadows; 9.22 Calculating a Nice Axis; 9.23 Drawing a Simple Chart; 9.24 Creating Odd-Shaped Forms and Controls; 9.25 Using the RGB, HSB (HSV), and HSL Color Schemes; 9.26 Creating a Rubber-Band Rectangular Selection; 9.27 Animating with Transparency; 9.28 Substitutions for Obsolete Visual Basic 6.0 Features; Chapter 10: Multimedia; 10.1 Introduction; 10.1 Playing an Audio File; 10.2 Displaying Image Files; 10.3 Playing a Video File; 10.4 Making Your Computer Beep; 10.5 Creating an Animation Using Multiple Images; 10.6 Creating an Animation by Generating Multiple Bitmaps; 10.7 Creating an Animation by Drawing at Runtime; 10.8 Creating Animated Sprites; 10.9 Resizing and Compressing JPEG Files; 10.10 Getting JPEG Extended Information; 10.11 Creating Thumbnails; 10.12 Displaying Images While Controlling Stretching and Sizing; 10.13 Scrolling Images; 10.14 Merging Two or More Images; 10.15 Using Resource Images; 10.16 Capturing an Image of the Screen; 10.17 Getting Display Dimensions; 10.18 Speeding Up Image Processing; 10.19 Converting an Image to Grayscale; 10.20 Performing Edge Detection on an Image; 10.21 Full Listing of the LockImage Class; Chapter 11: Printing; 11.1 Introduction; 11.1 Enumerating Printers; 11.2 Sending "Raw" Data to a Printer; 11.3 Get Details About the Default Printer; 11.4 Creating a Print Preview; 11.5 Prompting for Printed Page Settings; 11.6 Drawing Text and Graphics to a Printer; 11.7 Determining the Print Destination; 11.8 Creating Graph Paper; Chapter 12: Files and File Systems; 12.1 Introduction; 12.1 Enumerating Drives; 12.2 Determining if a Directory Exists; 12.3 Creating a New Directory; 12.4 Copying Directories; 12.5 Moving Directories; 12.6 Renaming Directories; 12.7 Parsing File and Directory Paths; 12.8 Searching Iteratively Through Directories and Subdirectories; 12.9 Finding Directories and Files Using Wildcards; 12.10 Determining If a File Exists; 12.11 Getting and Setting File Attributes; 12.12 Accessing Special User and Windows Directories; 12.13 Determining the Space on a Drive; 12.14 Browsing for a Directory; 12.15 Getting File Information; 12.16 Using File-Access Methods; 12.17 Reading and Writing Files as Strings; 12.18 Reading and Writing Binary Files; 12.19 Copying or Moving a File; 12.20 Sending a File to the Recycle Bin; 12.21 Creating a Temporary File; 12.22 Calculating a Checksum for a File; 12.23 Comparing Two Files for Equality; 12.24 Locking a File During Access; 12.25 Reading from a File at a Specific Position; 12.26 Reading and Writing Objects in a File; 12.27 Creating a Comma-Separated-Values File; Chapter 13: Databases; 13.1 Introduction; 13.1 Connecting to a Data Provider; 13.2 Issuing SQL Commands; 13.3 Retrieving Results from a Database Query; 13.4 Using SQL Parameters; 13.5 Using Stored Procedures; 13.6 Using Transactions; 13.7 Storing the Results of a Query in Memory; 13.8 Creating In-Memory Data Tables Manually; 13.9 Writing In-Memory Data Tables to an XML File; 13.10 Reading an XML File into In-Memory Data Tables; Chapter 14: Special Programming Techniques; 14.1 Introduction; 14.1 Preventing Multiple Instances of a Running Application; 14.2 Creating a Simple User Control; 14.3 Describing User Control Properties; 14.4 Starting Other Applications by EXE, Document, or URL; 14.5 Waiting for Applications to Finish; 14.6 List All Running Processes; 14.7 Terminating a Running Process; 14.8 Pausing Execution of a Program; 14.9 Control Applications by Simulating Keystrokes; 14.10 Watching for File and Directory Changes; 14.11 Creating an Icon in the System Tray; 14.12 Accessing the Clipboard; 14.13 Adding Tooltips to Controls; 14.14 Dragging and Dropping Files to a ListBox; 14.15 Dragging and Dropping Between ListBox Controls; 14.16 Disposing of Objects Appropriately; 14.17 Fine-Tuning Garbage Collection; 14.18 Moving the (Mouse) Cursor; 14.19 Intercepting All Key Presses on a Form; 14.20 Accessing the Registry; 14.21 Running Procedures in Threads; 14.22 Reading XML into a TreeView; 14.23 Creating an XML Document; 14.24 Validating an XML Document; 14.25 Using Generic Collections; 14.26 Creating a Screensaver; 14.27 Localizing the Controls on a Form; 14.28 Adding Pop-up Help to Controls; 14.29 Maintaining User-Specific Settings Between Uses of an Application; 14.30 Verifying a Credit Card Number; 14.31 Capturing a Console Application's Output; 14.32 Reading an Assembly's Details; 14.33 Performing Serial I/O; 14.34 Rebooting the System; Chapter 15: Exceptions; 15.1 Introduction; 15.1 Catching an Exception; 15.2 Throwing an Exception; 15.3 Catching Unhandled Exceptions; 15.4 Displaying Exception Information; 15.5 Creating New Exception Types; 15.6 Ignoring Exceptions in a Block of Code; Chapter 16: Cryptography and Compression; 16.1 Introduction; 16.1 Generating a Hash; 16.2 Encrypting and Decrypting a String; 16.3 Encrypting and Decrypting a File; 16.4 Prompting for a Username and Password; 16.5 Handling Passwords Securely; 16.6 Compressing and Decompressing a String; 16.7 Compressing and Decompressing a File; 16.8 Generating Cryptographically Secure Random Numbers; 16.9 Complete Listing of the Crypto.vb Module; 16.10 Complete Listing of the Compress.vb Module; Chapter 17: Web Development; 17.1 Introduction; 17.1 Displaying Web Pages on a Form; 17.2 Accessing Content Within an HTML Document; 17.3 Getting All Links from a Web Page; 17.4 Get the Local Computer's IP Address; 17.5 Resolving a Host Name or IP Address for Another Computer; 17.6 Pinging an IP Address; 17.7 Using FTP to Download Files; 17.8 Calling a Web Service; 17.9 Sending Email Using SMTP; 17.10 Getting POP3 Emails; 17.11 Sending a Message to Another Computer; 17.12 Adding Hyperlinks to a (Desktop) Form; Colophon;

Tim Patrick is a software architect and developer of custom software solutions targeting Microsoft Windows and Web-based users. Tim has over 20 years of experience in software development and software architecture, and is a Microsoft Certified Solution Developer (MCSD). He wrote The Visual Basic DEFANGED_STYLEGuide and its successor, The Visual Basic .NET Style Guide, and recently co-authored O'Reilly's Visual Basic 2005 in a Nutshell.

John Clark Craig's programming experiences and interests go back quite a ways. In 1974 he was programming a DEC PDP8E attached to a teletype and running a paper tape loaded version of FOCAL, a simple programming language similar to BASIC. Over the years, John programmed in just about every version of the BASIC language available, and authored several books on the subject along the way. During John's career as a full-time Software Engineer, he has worked on several fascinating energy and environmental projects. Currently, he's enjoying his software guru position working with a small team of bright R&D engineers as they create the next generation of high-tech self-erecting towers for the world's largest wind turbines.

Read More Show Less

Customer Reviews

Average Rating 5
( 2 )
Rating Distribution

5 Star

(2)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 2 Customer Reviews
  • Anonymous

    Posted May 6, 2007

    Good reading and reference

    A few years ago, I needed to write some VBA code for Access and happened across the 'Access Cookbook'. I was delighted with the wealth of information and the problem/solution oriented approach. So when the 'Visual Basic 2005 Cookbook' came out I immediately grabbed a copy. I was not disappointed. As an experienced programmer, I didn't need a need an introduction to programming, instead I wanted a quick introduction to the new features of .NET and the Cookbook provides it without wasting your time. As promised, the cookbook provides hundreds of problems and solutions. Do you need to know how to handle strings efficiently? Do you need to know how to handle files or graphics objects, its all in here. And while it is not an introduction to programming, it provides so much material that beginners will learn a tremendous amount from the examples in this book. The discussions of the code presented is clean and easy to understand. There is a chapter on database interactions as well as a chapter on web development and ASP. This is a book that you will want to skim straight through and then keep as a reference and you will be sure to refer to it over and over. Highly recommended.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted November 6, 2006

    Excellent VB.Net 2005 resource!

    I've only had this book for a short while, but I'm finding it MUCH more useful than the many other VB.Net books I've got on my shelf. Sometimes it's hard to figure out what function to use to do things in the .NET framework, and this book solves that problem very well. I highly recommend it to any VB.Net programmer, especially if you struggle at all moving up from VB6.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing all of 2 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)