I've been using a lot of new .NET 3.5 features in the work that I've been doing, lately. The application that I'm building is intended for distribution among consumers who will probably not have the latest version (or perhaps any version) of the .NET framework on their machines.
I went to go download the .NET 3.5 redistributable package only to find out that it's almost 200 MB! This is unacceptable for my application, because it's supposed to be a quick and painless consumer application that installs quickly and keeps a low profile on the user's machine. For users that have .NET 3.5 already installed, our binary downloads have been instantaneous, so far. This 200 MB gorilla will more than quadruple the size of the download. Is there any other option than this redistributable package that I can use to make sure the framework is on the machine that won't take the user out of our "quick and painless" workflow? Our target time from beginning of download to finalizing the install is less than two minutes. Is it just not possible for someone who doesn't already have .NET installed?
So to answer your question you only need both if your application uses features from both or altenatively you have separate web applications that use . NET 3.5 and . NET 4.0.
Create a . bat script with the following command: copy \server\sharename\sources\sxs C:\Temp break dism /online /enable-feature /featurename:netfx3 /source:C:\Temp /limitaccess exit.
That's one of the sad reasons i'm still targeting .net 2.0 whenever possible :/
But people don't neccessarily need the full 200 MB Package. There is a 3 MB Bootstrapper which will only download the required components:
.net 3.5 SP1 Bootstrapper
However, the worst case scenario is still a pretty hefty download. Also, see this article for a more detailed explanation on the size and an alternative workaround to the size problem.
Addition: Since answering this question, Scott Hanselman created SmallestDotNet.com, which will determine the smallest required download. Doesn't change the worst case scenario, but is still useful to know.
Once .NET Framework 3.5 SP1 comes out (should be fairly soon) there will be a second option of frameworks, namely the "Client Profile", which is a cut-down framework that only weighs in about about 30Mb from memory. It doesn't include all of the namespaces and classes of the full framework, but should be enough for most common apps in theory. It can be upgraded to the full framework if necessary (eg. if an update to your software introduces a new dependency)
More more information, see here: BCL Team blog
Have you looked at the .NET Framework Client Profile? It is much smaller than the full redistributable package and is optimized for delivering just the functionality needed for smart clients.
Here is a nice overview.
I don't know if this will keep the download under two minutes or not, but it should get you quite a bit closer.
The Client Profile has got better (and smaller) in .NET 4 see
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With