468,746 Members | 1,763 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,746 developers. It's quick & easy.

File Upload/Download Problem

I am building an ASP.NET application that has a requirement that the
user should be able to download all of the data that they have input
into the system and save it to a file on their local PC. Then at some
future time they should be able to upload it back to the web server and
continue working on it. (Don't ask me why they have to be able to do
this. Apparently the users are super paranoid about saving their data
to the server and want to be able to keep it on their local PC)

Anyway, here is my problem. I am not sure the best way to handle this.
I have a class structure where the root class is called UserCase.
UserCase holds all of their information, including other classes for
sub information including collections, etc. My original plan was to
use XMLSerialization to serialize UserCase to an XML file and then have
the user download the file to their PC. Then, later they could upload
that XML file back to the server and I could use de-serialization to
change it back to a UserCase object and they would be good to go.
However this has brought up a ton of related problems like the
following:

1. All of my classes inherit from XPBaseObject which is a 3rd party
component from DevExpress (www.devexpress.com) called Express
Persistent Objects. XPO is an object/relation mapper that hides the
database and makes coding a lot simpler. The problem is that
XPBaseObject does not support serialization. So I have had to take a
stab at implementing the IXMLSerializable interface myself. So far
that has been a nightmare.
2. How should the system handle it when changes are made to the web
site and a user uploads an old XML file that doesn't fit the structure?
3. How do I handle data integrity issues if data on the server changes
and the XML file is not in synch with the server?
4. Is there any good way to automate the upload/download process that I
described above? Or is there any way to make it easier?

Basically I am looking for some advice for a better way to solve the
above scenario. I have a web app where the user needs to be able to
download their data to their PC and then re-upload it at a future time.
It needs to be fairly secure and fairly simple for the user to do. It
also needs to be able to handle data integrity issues, file corruption
issues, etc. Any help or advice would be greatly appreciated.

Thanks,
Corey

Jan 19 '06 #1
1 2027
I would make a duplicate class (I will call it a DTO-Data Transfer
Object) that does nothing but hold the data. I would then add a
constructor to your real object accepting the DTO and have the
constructor build the object using the input data.

When structural changes are made, the new version becomes a new DTO. The
object gets a new constructor for the new version. Now the object can
handle building itself from two different versions of the uploaded data.

This means of course your upload routine will have to be smart enough to
figure out which version of the object was uploaded before de-
serialization. I would recommend a version number property on the DTO to
simplify this. It does not need to be in your real object. Simple
XMLReader code can get the version number before de-serialization.

--
----
700cb Development, Inc.
http://www.700cb.net
..NET utilities, developer tools,
and enterprise solutions

th*********@yahoo.com wrote in news:1137688863.705024.211810
@f14g2000cwb.googlegroups.com:
I am building an ASP.NET application that has a requirement that the
user should be able to download all of the data that they have input
into the system and save it to a file on their local PC. Then at some
future time they should be able to upload it back to the web server and
continue working on it. (Don't ask me why they have to be able to do
this. Apparently the users are super paranoid about saving their data
to the server and want to be able to keep it on their local PC)

Anyway, here is my problem. I am not sure the best way to handle this.
I have a class structure where the root class is called UserCase.
UserCase holds all of their information, including other classes for
sub information including collections, etc. My original plan was to
use XMLSerialization to serialize UserCase to an XML file and then have
the user download the file to their PC. Then, later they could upload
that XML file back to the server and I could use de-serialization to
change it back to a UserCase object and they would be good to go.
However this has brought up a ton of related problems like the
following:

1. All of my classes inherit from XPBaseObject which is a 3rd party
component from DevExpress (www.devexpress.com) called Express
Persistent Objects. XPO is an object/relation mapper that hides the
database and makes coding a lot simpler. The problem is that
XPBaseObject does not support serialization. So I have had to take a
stab at implementing the IXMLSerializable interface myself. So far
that has been a nightmare.
2. How should the system handle it when changes are made to the web
site and a user uploads an old XML file that doesn't fit the structure?
3. How do I handle data integrity issues if data on the server changes
and the XML file is not in synch with the server?
4. Is there any good way to automate the upload/download process that I
described above? Or is there any way to make it easier?

Basically I am looking for some advice for a better way to solve the
above scenario. I have a web app where the user needs to be able to
download their data to their PC and then re-upload it at a future time.
It needs to be fairly secure and fairly simple for the user to do. It
also needs to be able to handle data integrity issues, file corruption
issues, etc. Any help or advice would be greatly appreciated.

Thanks,
Corey


Mar 13 '06 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by matt | last post: by
4 posts views Thread by wakun | last post: by
4 posts views Thread by Jonny | last post: by
2 posts views Thread by fReDiNi | last post: by
6 posts views Thread by =?Utf-8?B?U2NvdHQgVHJpY2s=?= | last post: by
reply views Thread by zhoujie | last post: by
xarzu
2 posts views Thread by xarzu | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.