The way I understand it, in the .Net world releases 1.0/1.1 are standalone (not included in higher releases) while higher releases are backward compatible down to 2.0. That is:
3.0 = 2.0 + extensions
3.5 = 2.0 + 3.0 + extensions
Yes, you are correct, as any number of sources will confirm:
http://en.wikipedia.org/wiki/.NET_FrameworkBut even if this were not true, that is, even if you had to manually run a separate installer for each version of the .NET framework, how is that any different from a Lazarus Qt app requiring a specific version of Qt, or a database app requiring a specific version of Sqlite, etc?
Some of the most often asked questions here involve the location of specific libraries and how to install them and link to them, particularly on Linux and OS X. At least with .NET, Microsoft makes it easy to install and compile against the .NET framework.
For example, it only takes one line of code in an InnoSetup script to detect the presence of the required version of .NET. And only a few more lines of code to either run the redistributable .NET installer (if you've included it with your installer) or to go to Microsoft's Web site if you think your users can download it themselves.
.NET language features that I really like include the ability to mix assemblies written in different languages (VB.NET, C#, Delphi Prism), and partial classes. Partial classes are similar to categories in Objective C (note that categories are now supported by FPC 2.5.1 with the {$MODESWITCH ObjectiveC1} on OS X and iOS).
.NET is a good choice for new Windows-only apps that target Windows Vista and Windows 7. In the future it will also be the tool of choice for Windows Phone development.
The original question related to using MonoDevelop here, or something. That's the part I don't understand. MonoDevelop does have a form designer, but it's for GTK#, not LCL.
Thanks.
-Phil