С первых дней .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) есть некоторые классы, которые используют новый Vista API и выдают исключение PlatformNotSupportedException, если оно используется на компьютере с XP. Например, взгляните на новый класс EventLogReader (в пространстве имен System.Diagnostics.Eventing.Reader).
Разрывает ли Microsoft традицию поддержки платформ?
Честно говоря, в .NET 2.0 уже были классы, поддерживающие функции безопасности NTFS, которые недоступны в Windows 98 / ME.