views:

356

answers:

12

I am developing a small windows app, but have some trouble deciding whether to use .NET or not. As a coder I would like to make use of the .NET libraries. On the other hand, requiring my users to download the gargantuan .NET runtime seems like a horrible decision.

A 100 meg prerequisite might be alright for software in the scale of Visual Studio, but I feel like it would be a deal breaker for quick lightweight tools (think, for example, Notepad++). In the future, the .NET runtimes will likely become widespread enough to eradicate the problem, but in the short run, I feel uneasy.

In your opinion/experience, is 2009 too early for a small app to go .NET? Should I wait for the bigger players to pave the way?

Edit: Which versions, if any, come by default with XP SP2 and Vista?

A: 

If your users have either win xp sp2 or vista then they already have the framework installed.

So, if you are thinking if you should start developing your applications in .NET, then yes should.

Megacan
If I remember correctly, you need to explicitly install .NET 2.0 onwards with XP SP2, it doesn't come as part of the service pack. SP2 is a prerequisite for .NET 2.0 onwards
Russ Cam
I won't be needing the latest versions. Thanks for the info. I wasn't aware that any .NET framework came with XP SP2 by default. Sorry for my ignorance!
In that case, XP can run up to .NET 1.1 without being upgraded to SP2
Russ Cam
I don't know for sure for win XP. I know that vista already comes with (at least) .NET 2.0. Anyway, a lot of applications use .NET so its likely that the users already have it installed
Megacan
A: 

You are right that .NET applications are bloated by needing the framework. If you're creating a mega-application that everyone will use, then it might be worth the effort to write it in the native language. For anything much else then the time you can save by using something like .NET outweighs the runtime cost.

Unless you need the latest and greatest features, stick with older versions of .NET and you shouldn't have to worry too much. Take the oldest OS in reasonable use right now that you want to target. So I guess that's Windows XP. The latest service pack for that comes with the .NET framework installed anyway. It would be nice to show a sensible warning if the user is lacking .NET, but otherwise you shouldn't need to worry about it.

Mat
No service pack for Windows XP installs the .NET Framework.
Dave Van den Eynde
Really? I was under the impression that Windows XP (original without service pack) came without .NET whereas Service Pack 2 (if not SP1) added .NET framework. Maybe its Windows XP with SP2 (i.e. slipstreamed) that includes it?
Mat
A: 

These are subjective things of course, but I prefer JDK/JRE; it's more mature, and as a bonus its platform-independence is real, not just something on paper (.NET's Mono project is really not there yet.)

If you're sure that Windows is all you ever want to use, go with .NET.

Joonas Pulakka
There was no reason for this to be voted down except bigotry.
Wayne M
+6  A: 

.NET is shipped with any recent version of Windows, so I doubt that you will be severely limited by using .NET.

Do you need to support Windows 2000? If you're happy with 2003 and Vista, you should have no problem.

Keep in mind that not everyone will be on .NET 3.5 (SP1) tough, but if you're not using any of that it is no problem.

EDIT: It seems like I was mistaken regarding XP SP2. .NET 2.0 is not included in service pack 2 for XP. According to wikipedia W2003R2 was the first release to include .NET 2.0.

Brian Rasmussen
So... According to the same wikipedia page, no version of .NET is included by default in XP.
XP is not a recent version of Windows.
Dave Van den Eynde
but a lot of people are still using it - and will be for sometime yet
Phil Nash
A: 

Depends on target audience. Imagine your typical user. Now try to guess his internet bandwidth and technical skills.

If you develop something "for grandma" with 56kbit modem and no technical knowledge do not use it.

If you develop for people with broadband and no fear of installing software by themselves you should use .NET.

Muxecoid
+3  A: 

The redistributable package for .net has cca 25MB. In these days, when users watch videos on youtube, the 25 MB is not barrier. And for example .NET 2.0 is part of Win XP SP 2, and the .NET 3.5 should be part of windows updtes.

Even so, users need download .NET only once. Then you can distribute only your app.

TcKs
Thanks. I did not know 2.0 was included in SP2.
It isn't, unfortunately. I thought so at one time...
Will
+2  A: 

Why not look up the "real" size of the .NET Runtime before making assumptions?

http://www.smallestdotnet.com

It's really not always a 80 meg download. Most times it will take far less since some bits are already there etc.

Also note that with Jan .NET 3.5 SP1 is in Windows Update.

Tigraine
Thanks for the size reality check. Part of my concern was having any extra download requirements at all, not necessarily the size. But as you, and many others, have pointed out, my worries were in vain. Thank you.
No problem :)Also, I would not be concerned about the Framework size. 80mb is nothing in today's world. I think the installation time is the far worse problem (although nobody will cancel it while it's running)
Tigraine
+3  A: 

You might want to take a look at Scott Hanselman's site. It dispels the common illusion that the .NET framework downloads are hundreds of megs in size. That is only the Redistributable. End users do not need to download that version.

Cerebrus
+2  A: 

Hm, depends which .NET platform you're aiming for. Say .net 2.0 then you're gonna be free to develop for all windows xp and later OS and won't need framework install as prerequisite. Then targeting 3.0 in my opinion not worth, rather go straight to 3.5 since it packed with quite a bunch of new stuff that can make your development much easier With 3.5 you don't necessary need full framework install, I've lately been building .net 3.5 sp1 app for windows xp and up, and I used a very very nice Client Profile tool from Microsoft to deliver prerequisites for my app.

Here's detailed: Client Profile

Paul G.
3.0 is no different than 2.0 other than it includes windows workflow and windows communication foundations. These are all extensions and can be run against native 2.0 but they aren't relevant to a small client app.
Chris Marisic
+2  A: 

It really depends on each project.

  1. How much time/money will using .NET for the project save you? (Some things are easy to do without .NET, others aren't.)
  2. To what extent will using .NET improve your ability to fix bugs/add features? (Difficult-to-maintain code goes out of date and people lose interest in the product.)
  3. How likely is your target audience to already have the framework installed, or at least be proficient enough to obtain it?
  4. How important is it to you that people are not "turned off" the product due to the .NET requirement? (Obviously the more people who use your app the better, but how important is this compared to the first two points? Would you rather have a better app but less users?)
Artelius
A: 

I found this blog post, from 2005, that indicated that 85% of the new consumer PC's and 58% of the new business PC's had the .NET Framework installed (I'm assuming .NET 1.1). Your target demographic may vary, but I think a lot of potential customers will already have it installed.

Dave Van den Eynde
A: 

Yes, it would be a dealbreaker for fast small tools. That's where Delphi is for.

But you should take a very good look at your market. People who do not upgrade are also unlikely to buy much software, so unless your target market is there, it might not matter too much.

And there is another trade-off, you might be able to deliver more features in less time with .net.

The answers you get here are likely to be a bit biased towards .net development.

Stephan Eggermont