Apr 09


“Hello, Mr. Consumer, we offer amazing new widget software that will save you time and money! It can do X, Y, and Z. You can download and install it from our website. Oh, and by the way, you need .NET 3.5. What’s that? It’s a 200MB separate download from Microsoft that takes an hour to install and… Hello? Hello? Mr. Consumer?”

Welcome to my world as a commercial software developer who uses Microsoft .NET.

A recent article by Rick Stahl discusses how the size of the .NET Framework has exploded from 22.4 MB for .NET 2.0, to 197.0 MB for .NET 3.5. As he mentions, the actual runtime files account for only a small fraction of the installation, probably less than 50 MB. Yet, anyone wishing to run .NET 3.5 software must download and install the entire 200 MB package. One commenter dismissed Rick’s complaints:

“Get over it. That’s a very small price to pay in the land of 500 gig harddrives. You can always choose to write more lines of code in order to save your user a couple Mg. I personally think my time is more valuable than 1/2000th of my user’s harddrive.”

Obviously, this person has never tried to sell consumer software! The issue is not disk space, but download time, and the fact that it’s a separate download and install. Many users are naturally suspicious of anything Microsoft. Now if you tell them they must download a 200MB “framework from Microsoft” just to run your application, that’s about all they need to skip your app and turn to your competitors’ solutions.



In a non-scientific web survey in mid-2007, we discovered that over 50% of software consumers would NOT download the 22MB .NET 2.0 framework to try a new application. I bet if we asked that question again with the 200MB additional download of .NET 3.5, that nearly 100% of the consumers would avoid trying our software.

The problem is compounded further by Microsoft’s reluctance to simply force-install the latest version of .NET on every PC as part of the normal Windows Update process. As I discussed in my article, “What is .NET?“, Microsoft’s reluctance to include .NET as a standard component of Windows probably stems from the Sun vs. Microsoft bad blood over Java a few years back. Sun and Microsoft got into a legal spat, Microsoft stopped shipping Java with Windows, and so now Java is a separate download for Windows users. As a result, perhaps Microsoft is wary of appearing monopolistic, hence Microsoft maintains the .NET Framework as a separate download too.

Stuck on .NET 2.0 Until 2012

I am not bemoaning the size of .NET 3.5. It is what it is, and you can’t get all that terrific new functionality for nothing. Look what has been added to .NET since v2.0: LINQ, WCF, WPF, AJAX, and the list goes on.

Unfortunately, we won’t be able to use any of these new features in our commercial software. As long as Microsoft maintains .NET as a separate (and now gigantic) download, we will continue to target the .NET 2.0 framework for our commercial software applications until a majority of Windows PCs have .NET 3.5 installed, which will likely be sometime in the next decade.

Share and Enjoy:
  • Twitter
  • Facebook
  • Reddit
  • LinkedIn
  • Digg
  • DotNetKicks
  • StumbleUpon
  • Slashdot
  • Technorati
  • Google Bookmarks
  • Print
  • email

Article published on April 9, 2008




Tags: ,

17 Responses to “FAT .NET”

  1. Paco Says:

    I live in Holland. People here don’t have such slow internet connections like many Americans still have. It will take 10 min. to install .net 3.5 with an avarage 10 euro a month internet connection.

    Why don’t you shrink-wrap your application on a CD-Rom including the framework?

    Most current desktop applications can be written as web-applications anyway.

  2. timm Says:

    Making a customer (who wants your software now) wait days for a CD in the mail is just as bad as making them wait and hour while they have to download the .NET framework. And even with high-speed Internet, don’t forget about the 30-60 minute installation time.

    It’s a just a huge barrier to .NET consumer software that exists needlessly. If Microsoft simply included .NET in Windows Update, problem solved.

  3. Bart Czernicki Says:

    What a “loaded” comment with bias.
    “Unfortunately, we won’t be able to use any of these new features in our commercial software.”

    I agree the framework is huge and has its problems when targeting non-intranet users. However, that doesn’t stop me from using .NET 3.5 on the web. Also Silverlight which is a hybird of client/web and that has a pretty small footprint as well (subset of 3.5, but you get a lot of 3.5 features). Lastly, for enterprise type apps (i.e. multi tier/layer apps) 200mb is nothing…an admin can push down the .net framework as an update without the user even knowing.

    However, I do agree that the framework is large and needs a more “modular” deployment. Your app uses 30% of the dlls, then that’s what is installed. Next app’s delta is 5% it adds those dlls/scripts/sql etc.

  4. Paulo Cesar Says:

    Well, maybe .Net is all the wonderful that every .net developer think it is..

    Have you tried Ruby on Rails for web apps, or Adobe Air for making web apps behave like desktop ones?

    Or developing desktop apps with c++ and Qt4? Or even Python with QT4?

  5. A.Nieves Says:

    Microsoft never seems to have a cohesive game plan. It isn’t just a matter of running apps on Vista but trying to make sure they are backward compatible with systems as old as ’98. In the business world, older OSes remain a major continuing issue.

    Microsoft continues to make it even more difficult by making self-serving decisions about what Operating Systems they’ll support. Programming with Microsoft only products is exhausting – there are simply too many non-programming issues always popping up. OS support, server changes, killing programming languages like Visual basic when it doesn’t suit them and on and on and on with these guys.

    There are other viable options out there – options with a stable past and a clear roadmap.

  6. Nathan Baulch Says:

    For now I’m using LinqBridge…
    http://www.albahari.com/nutshell/linqbridge.html

  7. Mayday Says:

    I don’t understand why Microsoft won’t include .NET with Windows. It’s like they are purposefully sabotaging their own framework. We will be stuck on .NET 2.0 for at least another couple years until Vista is widely deployed. Given how much people hate Vista, it’s gonna be a long time…

  8. timm Says:

    Jabba the Hutt says:

    “Kaa bazza fatoo kundee hodrudda Jabba moota lande. Meba zundratta stupidoo gozeeo Microsofticon ganja dotnet inclusioo puta Windoze. Moda quitata Princessa Leia hottiee bikinee gooldona. Heh heh heh heh. Buta whata upa Cinnabono hairdooa?”

    Which translates to:

    “If you think I’m fat, you should see Jabba’s mother-in-law! It’s quite foolish for Microsoft not to include .NET with Windows. How about that Princess Leia in a golden bikini? Oooh la la. But whatup with those Cinnabon hair rolls?”

  9. net framework 1 1 download Says:

    [...] from Microsoft&quot just to run your application, that’s about all they need to turn to youhttp://www.devtopics.com/fat-net/Visual Studio 2008 and .NET 3.5 Released – ScottGu&39s BlogNET 3.5 Released. Monday, November 19, [...]

  10. gregg Says:

    Bumped into your FAT-NET article. Right on! The problem today is most programmers are ‘hires’ and not ‘publishers-for-profit’. Microsoft makes its money on providing tools/services for corporate in-house projects where ‘good-enough’ software is, well, good enough. Microsoft .NET forces the “publishers-for-profit” to obfuscate, placate the MSI installer-god, police and intrude on the customer’s Windows installation. Despite any advantages .NET may bring to the table, it has failed to make Common Languages Runtime-equal. C# is the prima donna, J# is the ugly duckling while the dethroned VC++ is slowly forced into the system programming dungeon. Managed-code hysteria is leaving alot of developer-publisher roadkill!

  11. .net framework 2.0 Says:

    [...] just to run your application, that’s about all they need to turn to your competitors’ solutions.http://www.devtopics.com/fat-net/FileForum Microsoft .NET Framework v2.0 x86Oct 28, 2005 … It appears like 2.0 is solid and a good [...]

  12. alwin Says:

    I have a project where i only use some .net 3.5 assemblies, for example System.Core. I just put copy local to true, and include them in the download. Works like a charm :)

  13. Doug Says:

    I package the 2.0 framework with my executable in a self-extracting zip file then run a batch file that check if the framework is installed, and if it is not, then the batch file starts the installer. I mostly write small and simple apps that when compiled take up ~20-50KB. The last program i wrote was a polyalphabetic encryption algorithm with a loop function and it is 56KB. I wrote a 6000 line app and that only takes 140KB, but the total memory usage is almost 50MB mostly because of the framework assemblies.

  14. David Nelson Says:

    I wonder if you have seen Scott Hanselman’s blog post on the true size of the download for the .NET framework: http://www.hanselman.com/blog/SmallestDotNetOnTheSizeOfTheNETFramework.aspx.

    Basically, the download is NOT 200MB. At most, it is 56MB.

  15. Cogito Says:

    I create application with the size of 24 KB with c#, but I have to include .net framework 2.0 with 22.4 MB. My client complain because he has to download 22.4 MB only to install 24 KB file size application.

    Did I lie to my customers? Will microsoft always make everything tobe difficult?

  16. Yaser Says:

    Hi all,
    Check the new feature called as the .NET Framework Client Profile
    for overcoming the size problem of .NET Framework.
    links:
    http://msdn.microsoft.com/en-us/library/cc656912.aspx
    http://blogs.windowsclient.net/trickster92/archive/2008/05/21/introducing-the-net-framework-client-profile.aspx

  17. .NET Installed on Almost 80% of Windows PCs Says:

    [...] shortsightedness harms .NET developers because it often requires our customers to download the separate 25+ MB package from Microsoft to run our .NET application.  This extra hassle puts .NET developers at a [...]

Leave a Reply