С первых дней появления .NET framework поддержка ОС была минимальной:
- .NET 1.0 - Windows NT или выше (также поддерживаются Windows 98 / ME)
- .NET 2.0 - Windows 2000 или выше (также поддерживаются Windows 98 / ME)
- .NET 3.0 - Windows XP или выше
- .NET 3.5 - Windows XP или выше
Эта минимальная поддержка ОС позволила игнорировать проблемы, связанные с платформой, за счет использования только фреймворка. Новые функции игнорировались на старых платформах. Например, стиль «Мозаичный вид» в элементе управления ListView или прозрачность формы в Windows 98 / ME.
Однако в System.Core.dll (часть .NET 3.5) есть несколько классов, которые используют новый API Vista и генерируют исключение PlatformNotSupportedException, если используется на машине XP. Например, взгляните на новый класс EventLogReader (в пространстве имен System.Diagnostics.Eventing.Reader).
Разве Microsoft нарушает традицию поддержки платформ?
Честно говоря, в .NET 2.0 уже были классы, поддерживающие функции безопасности NTFS, которых нет в Windows 98 / ME.