Традиция поддержки платформы .NET Framework - PullRequest
2 голосов
/ 30 сентября 2008

С первых дней .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.

Ответы [ 6 ]

3 голосов
/ 30 сентября 2008

Минимальная поддержка ОС означает, что продукт был протестирован на конкретной платформе и выше. Это не гарантирует, что все функции (или классы / API в случае платформы dev, такой как .Net) будут работать на всех поддерживаемых платформах.

Существуют специфичные для Vista собственные API-интерфейсы, которых нет в XP. .Net 3.5 добавляет поддержку управляемого мира для этих API, но не пытается обеспечить управляемую реализацию для несуществующих нативных API в XP.

1 голос
/ 30 сентября 2008

Microsoft явно продвигается к среде разработки, ориентированной на Vista. Это не только из-за очевидной причины «нам нужно зарабатывать деньги», но и из-за того, что в Vista появляются новые классные API.

Честно говоря, так было всегда с Windows API, и, вероятно, так будет с .NET. Нет такой «традиции», как вы описываете, а скорее традиция создания API, которые могут не работать, уведомляют вас о том, что вы находитесь в операционной системе, которая не поддерживает ее. Они всегда пытаются быть обратно совместимыми, а не форвардами ограничивающими, если вы понимаете:)

1 голос
/ 30 сентября 2008

С опытом могу сказать, что .NET никогда не работал на Windows 98 или ME. Я помню, как в 2002 году, когда версия 1.0 была новой, некоторые из нас с коллегами обнаружили, что что-либо более сложное, чем WinForm с некоторыми кнопками и очень простой функциональностью, не будет работать в Windows 9x, несмотря на заявления Microsoft об обратном. Учитывая, что у нас был год на XP, и мы могли разумно ожидать Windows 2000 по крайней мере на машинах, с которыми мы имели дело в то время, это не имело большого значения.

Но в основном Microsoft, пренебрегая старыми версиями Windows с .NET, не является чем-то новым. По крайней мере, в эти дни они генерируют исключения PlatformNotSupportedException.

0 голосов
/ 27 июля 2011

Проблема здесь заключается в том, что System.Diagnostics.Eventing используется в AppFabric (то есть в Windows Azure), так что вы в основном будете сражаться в трудном положении, заставляя Windows XP общаться с облаком.

0 голосов
/ 30 сентября 2008

Я не могу говорить за все это, но я знаю, что, например, система журнала событий в Vista была полностью переработана и почти не похожа на систему журнала событий в Windows XP. Это, вероятно, буквально несовместимо.

0 голосов
/ 30 сентября 2008

Поддержка платформы всегда различалась по типу. Например, многие типы не поддерживаются в Compact Framework.

...