views:

301

answers:

4

I wrote some small apps using .NET 3.5 but now I am stuck with deployment problems. My customer will likely to be pissed off when he learns that he will have to download a 231megs dependency (.NET framework 3.5) which installs for 30 minutes (!!!) on an average machine. All, just to run my tiny apps.

Offline distribution is also problematic, since the customer wants the program to fit on a Mini CD (185 mega bytes maximum)

What can I do? I really like .NET, but now I feel hopeless. With almost any other choice (c,c++,python) I would have saved this headache.

update: this is small data processing software and mostly deployed in offline situations on nettops. I can't host is from the net.

+6  A: 

Perhaps you should target the .NET 2.0 framework until your clients are ready to upgrade. Even if you weren't using .NET you will still have these headaches. If you were using Python you would still have to ensure that the user had the proper version of Python installed.

Andrew Hare
Unless you're using the 3.5 features you'll probably be just fine using 2.0.
Hardwareguy
+11  A: 

You can use the .NET Client Profile installer instead of the full framework. Should be around 28MB and be a pretty quick install.

http://blogs.windowsclient.net/trickster92/archive/2008/05/21/introducing-the-net-framework-client-profile.aspx

Adam Sills
+1  A: 

Please remember if you use the .NET setup bootstrapper application, it will only download the parts of the .NET framework that it needs. Usually less than 100mb, in a worst case scenario where they don't even have .NET 2.0 installed.

Also, depending on your application you may be able to use the .NET 3.5 Client Only framework, it is considerably smaller, however I do not know if there is a offline download for it.

You can set your application to use the Client Only framework from the project properties, just check the "Client Only framework subset" checkbox.

This won't work if your application uses WPF or WCF, I think. I'll update this later if I find out I am wrong.

EDIT:

One more option is to use something like Xenocode Postbuild or Xenocode Virtual Application (http://www.xenocode.com) studio to embed the .NET framework into your application so that the client would not need to have .NET installed on each machine.

However, this will make your application exe much larger. A project I work on uses Xenocode Postbuild to embed the .NET framework 3.0 and the exe size ends up being around 50mb, however, the app runs great off of a flash drive.

Navaar
As far as I know WPF is included in Client Profile.
KovBal
+1 for the Client-only Framework subset option - I'd not spotted that one before
ChrisF
+1  A: 

You should try it with the compact .net framework it's only 34mb big, and should be able to be installed quite quickly.

kkaploon
But can you install CF on a regular PC? I don't think so.
Henk Holterman
@Henk: "Supported Operating Systems: Windows 2000 Service Pack 4; Windows CE .NET; Windows Mobile 2003 SE software for Pocket PC; Windows Mobile 5.0; Windows Mobile 6; Windows Vista; Windows XP"
kkaploon