views:

139

answers:

8

.NET has become a popular technology among software developers and comsumers. I was thinking if it would be a wise decision to develop a Windows Forms based product in .NET that can be downloaded by thousands of customers around the world. The real problem could be the framework installation that has grown considerably with the .NET versions.

v2.0 had a decent 22MB install but the latest v3.5 goes beyond 150MB and can prove to be a deciding factor for customers. I have heard of some tools that do a type of "static" linking for .NET assemblies (e.g. ILMerge) and can be used to create small self contained executables but the question is can these tools be used in production environment? he ILMerge tool was a Research tool and I think it never made it to VS installation.

I have a product to develop that needs a very nice looking user interface which can be accomplished using the WPF support. But I am not sure if customers would like to download a 150MB framework (Not sure how big is v3.0) for a 4MB application. If I develop in .NET 2.0, I loose support for WPF. Does XP, Vista, Windows 7 come with a preinstalled .NET framework?

-- UPDATED BASED ON COMMENTS --

The application will be downloaded from a website and will not have a distributable media.

  1. Use .NET 2.0 - This wont let me use WPF so I will loose on the fancy stuff unless I use some third party skinning tool.
  2. Use the Client Profile to strip down the installation - The installation will come down to around 30 Megs and I will retain WPF/WCF support along with the new framework features.
  3. Supported OSes

      Win 98, ME, 2000 - Full install of Runtime required
      Win XP SP2, SP3, 2003 (I think these have .NET 2.0)
      Vista, 2008 - All version have atleast v3.0
      Windows 7 - v3.5
    
+4  A: 

Various versions of the .NET framework do come pre installed with Vista and Windows 7:

  • XP - Nothing
  • Vista - .NET 3.0
  • Windows 7 - .NET 3.5

If you are really concerned about the download size you should take a look at the client profile. This is a cut down version of the framework that includes just the bits most important for client application development. I believe its ~30 MB in size. Support for it was patchy in 3.5. It only worked on XP 32bit and only if no other framework versions were installed, but looks to be much better in 4.0. It now works on all platforms that support the full .NET framework even if they already have another framework version and comes in re-distributable form as well as a web installer See here

Going beyond the technical details, you do need to consider your target market. Different markets have different base lines and requirements. Remember you can always bundle up the .NET installer with your application all on one CD if you are physically distributing the media. I'd say in most cases it shouldn't be a problem (particularly if you target the client profile), I'd only be worried if you were targeting a specific and small market sector that had very strict requirements on what software was allowed.

Simon P Stevens
A: 

I don't think it's a deciding factor, most of the time. Vista has .NET 3.0 already packaged with it, I believe. Plus, Java is in the same boat (requiring a JRE) and I don't know of any software who has really suffered from the "overhead" of downloading a run-time platform like Java's or .NET.

I strongly believe it's better to think of these platforms as de facto standards; So many applications require them nowadays; chances are most of your potential users already has them installed.

Bryan Menard
+3  A: 

If you worried about the size of the install then I would target the .Net 2.0 framework over the .Net 3.5 framework - if you are just doing a basic windows forms application (no WCF, WPF or Linq etc...) then the .Net 2.0 framework has 90% of the functionality of .Net 3.0 or 3.5, and it also present on a much higher percentage of machines (80% according to this blog)

In VS2008 I've modified my project templates to make this the default.

Kragen
VS2009?
Henk Holterman
Whoops! :-p (fixed)
Kragen
+1  A: 

It can certainly be a concern for users with slow network connections. One solution is to restrict development to not use newer features (that is what I do) and providing a link to the .NET 2.0 runtime on your application's installation instructions web page. This will work fine for Windows Forms (although it will not be possible to use WPF and some of the newer language features).

Peter Mortensen
That is always an option Peter (to provide a framework download link). Also the .NET application installer itself provides the functionality to report and install the missing framework.
A9S6
A: 

Ok, so let me ask this stupid question. Why have you confined yourself to a standalone Desktop client rather than a Web application? You could do the fancy stuff using Silverlight. One of the client with whom I worked, does have a stand alone client in the market but eventually wants to move it to the Web since he needs the Mac users too.

Well, I dont see how an application like a Registry and System cleaner can be developed as a Web application. There will be a lot of security concerns and some applications only suit the Desktop model.
A9S6
A: 

Make it so wonderful clients would download a 1GB framework :).

Now seriously, as XP and all versions above come with .NET preinstalled, what are you worrying about?

You could just target .NET 2.0 for now (unless commited to WPF) and, after 3.5 gains enough popularity, switch.

Sorin Comanescu
+1  A: 

There is also the .NET Framework Client Profile Preview that should reduce the .NET Framework download size to 28 MB. It includes WPF.

Peter Mortensen
A: 

If off-line installation of .NET is not required then the online installer can be used and the actual download size will be below 60 megs (depending on how much is already installed).

Peter Mortensen