Very basic question - where to store data for a Windows app?

  • Thread starter Thread starter Scott Leonard
  • Start date Start date
S

Scott Leonard

I'm new to Windows Forms development (web-based development is my primary
area of focus).
I've been tasked to create a windows application that basically provided
users the ability to take surveys - kinda like a telemarketing-based survey
application.

My question is this: what is the best mechanism for storing the data that
users enter into the application? The options, that I'm aware of are:
1. MSDE (SQL Server Desktop Edition)
2. JET (MS Access-based database file)
3. XML
4. Serialized objects

I'm unable to use a standard client/server approach here, as the application
is considered "sometimes connected" - network access will not always be
available. So, the app will have to temporily store the data locally until a
network connection is found.

I'm looking for input on the pros/cons for the approaches listed above and
for any other options that are availabe. Also, pointers to online resources
in this area would be greatly appreciated.

Thanks in advance,
Scott
 
Scott Leonard said:
I'm new to Windows Forms development (web-based development is my primary
area of focus).
I've been tasked to create a windows application that basically provided
users the ability to take surveys - kinda like a telemarketing-based survey
application.

My question is this: what is the best mechanism for storing the data that
users enter into the application? The options, that I'm aware of are:
1. MSDE (SQL Server Desktop Edition)
2. JET (MS Access-based database file)
3. XML
4. Serialized objects

I'm unable to use a standard client/server approach here, as the application
is considered "sometimes connected" - network access will not always be
available. So, the app will have to temporily store the data locally until a
network connection is found.

I once worked on a project which had seemingly similar requirements. Our
solution used a very simple approach which was something like this:

- a lightweight app which simply allowed someone to complete the survey.
Survey results were saved to file as comma delimited text (although XML
would have been fine also). There was one results file per candidate. This
app could be configured to save result files to a network location, to a
local directory, or to send them via email.

- We then had a more heavyweight application that imported results and made
sense of them. This imported result files into an Access database, which was
more than adiquate for purposes of performance and features. The application
could be configured to pick files up from a network location, or a user
could recieve results via email and drop them into the import folder.

Personally, I liked this approach becuase of it's simplicity. It handled the
disconnected nature of the problem also. The Survey app could be sent to
people by email, and text results emailed back. It would be easy to develop
a web app that also gathered and sent result files back for analysis.

More random thoughts about your suggestions:

- Access File/Jet: Not heavyweight, but IMHO handles up to about 80,000
items of quite reasonably. Access files are nice n' portable. They do need
Jet installed though, which complicates deployment. Handles 5-10 concurrant
connections ok.

- MSDE: Needs to operate as a server, and be installed on each machine, thus
complicating deployment. Can handle much more data than access, which is
good if you need it. Check licensing issues perhaps!? Performance is
deliberately limited as usage increases.

- Serialized Objects: Not used them much, but I think it's complicated!

- XML: Handy as an intermediate storage medium between applications!
Lightweight. Fairly simple.

Admittedly, I don't know your requirements very well, but I hope this has
helped!?

Tobes
 
Just stick it in a JET database - you don't have to have MS Access on the
computer to use JET, but it is readily available for debugging, it is
simple, etc.
A DataSet can be streamed to/from disk as well - myDataSet.WriteXml and
myDataSet.ReadXml - you must write the dataset to an XML file after each
insert, else if the computer is powered down, you loose the record - JET
sounds safer.
Don't use MSDE for a simple app - installation nightmares.

Scott Leonard said:
I'm new to Windows Forms development (web-based development is my primary
area of focus).
I've been tasked to create a windows application that basically provided
users the ability to take surveys - kinda like a telemarketing-based survey
application.

My question is this: what is the best mechanism for storing the data that
users enter into the application? The options, that I'm aware of are:
1. MSDE (SQL Server Desktop Edition)
2. JET (MS Access-based database file)
3. XML
4. Serialized objects

I'm unable to use a standard client/server approach here, as the application
is considered "sometimes connected" - network access will not always be
available. So, the app will have to temporily store the data locally until a
network connection is found.

I'm looking for input on the pros/cons for the approaches listed above and
for any other options that are availabe. Also, pointers to online resources
in this area would be greatly appreciated.

Thanks in advance,
Scott




----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption
=---
 
Scott,

Take a look at the 101 VB.Net samples from MS. One of the samples is an off
line to Online example. It checks to see if there is a connection to MSDE
or Access and if not, stores the data in an XML file. Then, the next time
you connect, it will sync the changes.

HTH,
Brian P. Hammer

Scott Leonard said:
I'm new to Windows Forms development (web-based development is my primary
area of focus).
I've been tasked to create a windows application that basically provided
users the ability to take surveys - kinda like a telemarketing-based survey
application.

My question is this: what is the best mechanism for storing the data that
users enter into the application? The options, that I'm aware of are:
1. MSDE (SQL Server Desktop Edition)
2. JET (MS Access-based database file)
3. XML
4. Serialized objects

I'm unable to use a standard client/server approach here, as the application
is considered "sometimes connected" - network access will not always be
available. So, the app will have to temporily store the data locally until a
network connection is found.

I'm looking for input on the pros/cons for the approaches listed above and
for any other options that are availabe. Also, pointers to online resources
in this area would be greatly appreciated.

Thanks in advance,
Scott




----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption
=---
 
Back
Top