Question What database to package with applications?

duanecwilson

New member
Joined
Apr 7, 2008
Messages
4
Programming Experience
3-5
I am fairly new with VB.Net, though I have been around VBA for years. What I want to know is, if I create an application, where do I store the data? In flat files - I think not. But where do the professional packages store their data, such as MS Money or the income tax programs, or even game profiles and scores, etc. I am sure they don't interface with a possibly non-existent MS Access, and most people don't have databases on their computers. But when you buy a package, it stores the data for you.
I would like to create applications in a deployable package, but don't know how to store the data in a package deployable on any Windows computer.
At work, I connect to and use existing database platforms, but an end user may have none of this. Please let me know these basics. Thousands of new programs are written every month and marketed and users never have problems storing data - it is always transparent to them. There must be some common, fairly simple, and inexpensive methods they use.
Thanks for any input.
 
Maybe the following discussion can answer some of your questions:

http://www.codenewsgroups.net/group/microsoft.public.vb.general.discussion/topic14406.aspx

As is suggested whatever strategy you choose will be dependent on what kind of "storage" your application requires and the kind of environment it will run in.

Letting home users select their own data folders is perhaps harmless, letting each Entry Clerk do the same, during their shift, is likely to lead to maddness.

And there is no single location that will be correct for all kinds of storage, in all kinds of situations.
 
What type of file or database is used?

Thank you for the response, Ibut wasn't really referring to location or folders. Many applications store large amounts of data. I was wondering if there is some kind of common database they use or a special file format. If there is a special database that can be used for this type of thing and can be distributed, I would like to know about it. Thank you again.
 
If you need preferences stuff just to store a few variables, you can use the application settings : http://www.devsource.com/c/a/Languages/VBNET-Using-MySettings-for-Application-Settings/

For database, you can use Access. Just remember to package MDAC with your application so it works on computers that didn't get it from Windows Update. Then you just use the wizards to create a typed dataset of it and you can manipulate it through the dataset and the table adapters.

If your data is not suitable for application settings, nor relationnal databases, you can use Serialization to store whole objects on disk.

Last but not least, you can create your own file format and create the routines to write and read it. That's suited for stuff that your customer will want to pass around from one application to the other and data that is very complex but doesn't match the relationnal database model well.

In any case but application settings, you'll need to think about where you store the files on disk. If you want your application to work on vista, you're better not to place anything you need write access to in your installation directory (if you're lucky, it will break your application, if you're not, it will use virtualization to place the file very far away, your application will run fine and you'll never know anything went wrong when you uninstall and leave thrash on the system or you upgrade the wrong files). Place those files in the common directory that best fits the use you will make of it (application data, user profile, etc.). Or you can let the user browse for where to store and retrieve the file so it is their responsability.
 
Thank you for the response, Ibut wasn't really referring to location or folders. Many applications store large amounts of data. I was wondering if there is some kind of common database they use or a special file format. If there is a special database that can be used for this type of thing and can be distributed, I would like to know about it. Thank you again.

If security isn't an issue, I use Access databases. It's very portable and there's no need to install anything (the .net framework has everything needed already).
 
I am sure they don't interface with a possibly non-existent MS Access

I think you might be surprised as to how inaccurate your supposition is.. Access is prevalent across all Windows PCs, simple and well established. e.g. Think MS reinvented the wheel when it comes to your Outlook emails? Nah.. it's just an altered version of Access

There must be some common, fairly simple, and inexpensive methods they use.
Thanks for any input.
Access, XML files, flat files, excel sheets (jet db driver can read them all)

First you need to analyse your data storage needs. Dont shove 500 gig of data in a text file if you plan on searching it more than you write to it
 
Any good ideas on a book or reference to do this?

Thank you for all your responses. I develp Access databases for a living and yet never realized how ubiquitous they really are for many applications. Can someone elaborate just a little on the MDAC and/or Jet database interface? I am not sure how to go about it but I'm sure I could understand if I knew some good resources/books to just point me in the right direction.
One thing I know nothing about is serialization. If someone could give a brief explanation of that, it would be valuable.
Thanks again for the tips.
 

Latest posts

Back
Top