views:

280

answers:

5

Basically, i am trying to determin if an application made for 1.x will run on a computer with just one copy of the .NET framework installed which is a higher version than what i am targetting, ie: it only has one copy of .NET 2.0, or 3.0, or 3.5 or 4.0 - has one copy of either of these and thats it, the hypothetical computer would not have 1.0 or 1.1 installed.

Trying to determine if 1.0 or 1.1 app would run here - the app is a simple app and im just trying to get the largest reach possible without the need to install the framework (and yes, i realize the frameworks are really small now days at about 40mb, but this is still not an option for me). thanks

an aside: btw, i have googled this to no avail, do we have or does anyone know adoption stats in terms of % of windows computers that run (say) 2.0, 1.x, 3.5 etc... or 2.0 and above, or 1.x and above? there is a reference on scott hanselmans blog but this seems really optimistic and incorrect to me as i did some user-string analysis of common users, and adoption of 2.0+ was barely above 50% while hanselmen said according to windows update data it was 95% (and this was in janruary 2010).

Edit\Update Could someone please confirm if Nayan's answer (and Daniels point under Darins answer) is correct? If so, this would change everything!

+3  A: 

Yes it will run fine if you have a higher version of the framework installed. It is backwards compatible. But in the end of 2010 there's very little sense in still keeping applications targeting .NET 1.*. You could at least recompile them to target the .NET 2.0 if not .NET 3.5 or 4.0.

Darin Dimitrov
thanks buddy, upvoted
Erx_VB.NExT.Coder
Hm, are you sure that's true? I am asking this because it's possible to have multiple frameworks on the machine, if this was the case, only latest fx would be necessary.
Daniel Mošmondor
@Daniel, this is a good point you've raised, can someone please confirm what this means in relation to our question? i always figured the seperate GACs (.NET framework versions) where there for any/possible breaking changes in backwards compatibility, but would love to confirm this... anyone?
Erx_VB.NExT.Coder
+1  A: 

You should not have any problems running your application on .net 1+ frmaeworks.

Vinay B R
thanks buddy, upvoted
Erx_VB.NExT.Coder
+1  A: 

. Net has been designed to always be backwards compatible. This means if we get to later versions it will still work.

It also means if the Microsoft team make a mistake it will still be there just a better way will be available

AutomatedTester
Thanks mate, upped.
Erx_VB.NExT.Coder
A: 

I don't think the question is very clear. I'll explain:

  1. If you are asking if the application is already built on .NET 1.x and you are trying to run it in any other version, it will not work. It would need the same version.

  2. But if you still have the code and are willing to recompile it on newer .NET versions, then you will have a newer .NET version compatible app!

What, I feel, missing in your question is that whether you are talking about built up apps or source codes.

Nayan
+1: Good answer.
KMan
ok, let me get this right, i will be compiling the app in .NET 1.x, the hypothetical target machine has .NET 4.0 and nothing else. Are you saying that my application exe compiled in .NET 1.x will not work? could someone please confirm this?
Erx_VB.NExT.Coder
I think 1. is wrong but have nothing to test it out with.
John Nicholas
@John: Then test it, and let us know too. :)
Nayan
+1  A: 

To answer your aside the wikipedia page shows what versions of windows have what version of .net pre-installed by default

To answer your main question. I know 100% that if you have 3.5 it will run 1.0-3.5 with just that installed. However I do not know if that is true for 4.

Scott Chamberlain
@scott, thank you so much for your answer and for what i suspect are your test results from the 3.5 days!
Erx_VB.NExT.Coder
Upvoted, thanks for awesome link.
Erx_VB.NExT.Coder