OK, this is rather broad question but … Is there a chart that says what version of the framework will run what?
So, I guess it brakes down into two questions
1 – Are the frameworks 100% backward compatible? I’ve had a Framework 2.0 Website run 1.1 dlls, so I assume 2.0 will run 1.1. Will this work for a windows app? Will it work for all versions?
2 – Is a framework ever forward compatible? I know the reverse of above will not work but will it work for any set of versions?
So, how important is it to keep the versions on your clients’ machines synced with your build version?
Is there a best pratice in the .net community on how to make your software work for the most number of clients without forcing non-technical users to download newer/different versions of the .net framework?
As a rule of thumb, if .NET version X installs side-by-side with .NET version Y, then .NET version X is not compatible (backwards or forwards) with .NET version Y. This is a rule I’ve been using for quite some time (since .NET 2.0 came out). It’s probably too safe for small-scale applications, but it’s better to be safe than sorry.
Here are some concrete examples:
.NET 2.0 will not run .NET 1.1
.NET 4.0 installs side-by-side with .NET 3.5/3.0/2.0 and with .NET 1.1
Hope this helps.