Is it reasonable to assume/require the .NET framework these days

netprogramming-languages

Background:

I have a project where I need to provide the user a download package with some sensitive data in it. The data needs to be encrypted. After they download it, they need to be able to view it (no editing required). For this question, let's approximate the data as a series of static html files. Because the data is sensitive, it needs to be encrypted any time it is on disk.

We are thinking of providing the user with a download option that would give them a zip file containing two files:

  • A data file (we'd probably use an encrypted zip file behind the scenes) with the data they asked for
  • An application to view the data that would appropriately prompt for a passphrase and handle decrypting the data and displaying it via an embedded web browser.

Additional details:

  • Users are not under our control. They are consumers.
  • We are not worried about cross platform in this question. This is just about Windows. We will have a separate download for Mac users.

Get to the question already:

For that application we need to create, we're internally debating if it is reasonable for that app to be a .NET winforms application. We want a single .exe, and we want the download to be reasonably small (e.g. 100k).

  • Dare we use the .NET framework (we don't need to use a particularly recent version of .NET–2.0 would be fine)?
  • Is it reasonable to assume that most consumers have .NET on their machines now due to Windows Update?
  • Is it reasonable to ask the ones that don't have it to install it?

We know that not 100% of users will have .NET installed. The real question is if it is reasonable to ask them to have it in this day and age.

P.S. Does anyone know of any reliable statistics of what percentage of people actually do have .NET installed already?

Best Answer

By default, Windows XP doesn't include any version of the .NET framework. Vista, and Server 2008 include .NET Framework 3.0, Windows 7 and Server 2008R2 include .NET 3.5, and Windows 2000 can't support anything above .NET 2.0.

With that in mind, it comes down to the OS spread in your target audience. I would list the requirement prominently on the download page and provide a link to Microsoft Update/Downloads section for the framework download, in addition to your application download.