---
title: "VB6 Migration pains - captured as a conversation"
url: "https://osherove.com/blog/2006/2/10/vb6-migration-pains-captured-as-a-conversation.md"
canonical: "https://osherove.com/blog/2006/2/10/vb6-migration-pains-captured-as-a-conversation.html"
published: "2006-02-10T00:17:00"
updated: "2006-02-10T00:17:00"
tags: ["Off Topic"]
author: "Roy Osherove"
description: "Scott Swigart , at one of the mailing lists that I frequent, recently wrote one of those \"It'd be funny if it wasn't so sad\" kind of emails. With permission, I'm quoting parts of it here. If you're a consultant, this…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# VB6 Migration pains - captured as a conversation

By Roy Osherove February 10, 2006 In [Off Topic](https://osherove.com/blog/category/off-topic)

**Historical article** · Originally published February 10, 2006; technical details may be outdated.

[Scott Swigart](http://swigartconsulting.blogs.com/tech_blender/), at one of the mailing lists that I frequent, recently wrote one of those "It'd be funny if it wasn't so sad" kind of emails. With permission, I'm quoting parts of it here. If you're a consultant, this should sound **really** familiar.

It's a rehash of a conversations between the consultant and customers moving from VB6 to .NET (especially 2.0);;

"...

People moving over from VB6 are really struggling with things like: 

1. You really should use data binding now.  No, I know, you’ve never used it before.  No I know, you tried with earlier versions of VB and felt like you got burned.  No, it’s real this time.  No, really.  Stop typing txtUserName.Text = DataSet.DataTable(0).UserName.  Stop!!!

2. Ok, to use databinding, you just need a BindingSource, DataSource, DataMember, DataSet, DataTable, TableAdapter, and BindingNavigator.  No really, you want to do it this way.  It’s better.  Trust me.  It’s so much easier.

3. Oh, Autonumber.  Um, partial class the TableAdapter to get at the DataAdapter, uh, DataSetTableAdapter namespace, um, let’s see, AddHandler OnRowUpdated…  No really, this is better.  STOP TYPING txtUserName.Text =

4. Well, you see, if you would just use SQL Express…  Look, Access isn’t really supported.  Yes, I know the IDE lets you add an Access datasource, and builds the typed dataset, and all that, but trust me, it’s not really supported.   How big’s express?  About 50MB.  No, that’s not big.  Uh, no, that doesn’t include the Framework.  Yes, you’re looking at 70MB + however big your app is, but in this day and age, that’s really not so much.  Your app used to be a 3 MB download?  But that was before .NET.  “That’s the point.” You say?  Well, we think it’s secure.  Yes, we thought MSDE was secure too, but they’ve done a lot of work since they thought that was secure, and now they _really_ think this is secure.  No, I won’t refund my consulting fees if I advise you to use it, and there’s some security hole that no one knows about today, and it causes a major headache for you.  You have to take some risks you know.  Access isn’t safe either.  Well, I know Slammer didn’t affect Access, but SQL is safe and Access isn’t.  STOP TYPING txtUserName.Text =.  You’re doing it the hard way!  Don’t use Access, it’s not _really_ supported!

5. Oh, you want it to show up in a different format than in the database.  Uh, Databinding, uh, advanced.  See here, “Format type”, um, custom.  No, you just think it’s easy if you use txtUserName.text=, uh, what’s this warning, oh yeah, Format and Parse events.  Um let’s see, we get to the binding object for the textbox by, uh, AddHandler…

6. It’s not getting saved in the database?  Um, did you call Validate?  How about EndEdit?  Stop typing DataSet.DataTable(0).UserName = txtUserName.Text.  That’s the wrong way.  Wrong. Wrong. Wrong. Wrong!!!  So what if it works.  Microsoft says… What so you mean this isn’t working out?  What do you mean, you’re going to try another consultant?  BUT… MICROSOFT… SAYS….

..."

## More in Off Topic

[All posts in Off Topic](https://osherove.com/blog/category/off-topic)

- Feb 14, 2006

    ### [\[OT\]Israeli group announces anti-Semitic cartoons contest](https://osherove.com/blog/2006/2/14/otisraeli-group-announces-anti-semitic-cartoons-contest.html)

- Feb 11, 2006

    ### [The future of interaction](https://osherove.com/blog/2006/2/11/the-future-of-interaction.html)

- Jan 19, 2006

    ### [Guess that conference](https://osherove.com/blog/2006/1/19/guess-that-conference.html)

- Jan 19, 2006

    ### [FYI: "v7ndotcom elursrebmem"](https://osherove.com/blog/2006/1/19/fyi-quotv7ndotcom-elursrebmemquot.html)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
