Click here to Skip to main content
15,885,546 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
See more:
Many-many years ago I implemented an file-base database application and I have now many clients using it. UI is written in vb5 and DB is Access2000 (via DAO). I think it's time to migrate to something modern. What should I choose?

What I have tried:

Many-many years ago I implemented an file-base database application and I have now many clients using it. UI is written in vb5 and DB is Access2000 (via DAO). I think it's time to migrate to something modern. What should I choose?
Posted
Updated 25-Sep-21 6:20am
Comments
RedDk 25-Sep-21 13:42pm    
What should you choose? The latest installment of whatever by whomever. Presumeably your implementation skills are based upon however. Easiest to go with whichever now. Which is whenever. Pretend you've enlisted in the Army ... and using standard issue equiptment is the option available to you.

1 solution

I'd suggest that you switch to C# - although VB is still available (and even used) it's now based on the .NET framework, and works very differently to VB5. But ... some VB5 things will still work, but won't necessarily work well with .NET components.
Switching to C# means you don't have access to any superseded legacy commands, and aren't tempted to use them instead of teh more modern .NET equivalents.

For DB choice, it would depend on what you are trying to do - specifically if the DB is single user or multiuser.
For single users, Access (though a more modern variant) is still available, as is SqLite and Compact SQL. I'd probably use SqLite as it's available on Android as well, so it;'s slightly more future proof.
Form multiple users, Access is a very poor choice - SQL Server or MySql are both designed to work well with many users and without the problems Access always throws up!
 
Share this answer
 
Comments
Nick Katditsik 25-Sep-21 13:13pm    
Well, I prefer file-based and not service-based databases. My application is multiuser, but over the years I implemented my own record locking mechanism and so i don't thing i 'll have a problem. Anyway, what if i keep working with vb5 and switching to SQLlite? Is SQLlite accesible with DAO?
OriginalGriff 25-Sep-21 13:34pm    
Then you'd - frankly - be an idiot.

VB5 is ancient history - and your own record locking is very unlikely to be anywhere near as efficient and effective as a server based solution.

Either you want to migrate to something modern - as you originally stated - or you want to stick with ancient technology that may or may not be supported at all in future versions of the OS. VB5 was superseded in 1998 by VB6 and it's now 23 years later than that! :laugh:
All you will do by sticking with VB5 and suchlike is recreate the current software, which seems ... an odd thing to do.
Dave Kreskowiak 25-Sep-21 15:27pm    
Nothing uses DAO anymore. It's been dead for quite a long time.

Your record locking solution isn't going to be anywhere as efficient as in todays database engines.

Seriously, "multiuser" and "file-based database" should never be used in the same sentence, let alone as a database solution.

Take the word of someone who had to deal with that nightmare not that long ago. All it takes is one network "hiccup" at the very wrong time and your database is screwed, possibly even to the point where you're restoring from backups. File-based databases access is nowhere near as robust against failures as a server-based solution.
Nick Katditsik 25-Sep-21 14:01pm    
Are you nuts? I didn't ask your opinion for vb5. I asked for alternatives.
And i have no problem with ancient technology. My car is a Mustang '67.
What is important for me is something to do the job. If this is old vb5 or new vb# makes no difference, iif it works.
But I want to change because I code in vb5 for 25 years and it's like living in a house where you know every single room!
So let's say I want to start from the scratch. What should I use?IS C#/SQLlite the best solution? Any alternatives?
OriginalGriff 25-Sep-21 16:39pm    
As I said - I'd go with C# because it breaks you away from the outdated VB stuff and forces you to learn the newer stuff which really does make your life easier (Generics, Lambdas, Linq, Events, Delegates, ... )

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900