This project is read-only.

Sorry for the lack of documentation as just putting this together is quite a bit of work.

The first release is only through the Source Code and it's stable but you will need at least VS.Net 2010 Express Edition and the Silverlight 4 Tools for Visual Studio.  I suggest using the Microsoft Web Platform Installer w/Silverlight as it makes the job of installing everything much easier.  If you already have VS.Net 2010 installed (or some other version you can get the rest here at Silverlight 4 Tools for Visual Studio 2010.

I did some test runs on pulling down the code on a fresh machine but had to do a clean build (from the source tree I deleted the obj, bin, etc compiled parts folders) to ensure you can set debug break points.  

All in all it was pretty straight forward when just using the solution file.  In the solution there are two projects, one for the Silverlight project and the other is a web project that has the hosting page for the Silverlight control (LargeFileUploadTestPage.aspx) and also the file handler code that is used to store the file being uploaded (StoreFile.ashx.)   In the Silverlight control project the code that handles the uploading and background worker process is contained in MainPage.xaml.cs.

Now I have a low understanding of multi-threading but I'm a pretty good study so I'm pretty sure that my implementation using a BackgroundWorker thread is solid enough.  There are lots of ways to do things but that one gave me most of what I was looking for.

The read/write stream code I think is pretty sound but could benefit from a solid Checksum test after the file upload is completed.  MD5 is a serialized checksum and is going to be slow on very large files so it's not acceptable.)  Since the file will grow to the offset for the last block read and will the be essentially the same size some sort of strategy needs to be employed after the last bytes of the file arrive.  Not sure how of the best way to do that.

Some cool things about the approach that I'm using is that the file parts can arrive out of order and still get written into the correct parts of the file without with little room for collisions.


More to come.

Last edited Sep 30, 2010 at 11:03 PM by ZombieBob, version 5


No comments yet.