Pregunta

Desde los primeros días que salió .NET Framework, hubo un soporte mínimo del sistema operativo:

  • .NET 1.0 - Windows NT o superior (también se admite Windows 98 / ME)
  • .NET 2.0: Windows 2000 o superior (también se admite Windows 98 / ME)
  • .NET 3.0 - Windows XP o superior
  • .NET 3.5 - Windows XP o superior

Esta compatibilidad mínima con el sistema operativo hizo posible ignorar los problemas específicos de la plataforma utilizando solo el marco. Las funciones más nuevas se ignoraron en las plataformas anteriores. Por ejemplo, " Vista de mosaico " Estilo en el control ListView o transparencia de formulario en Windows 98 / ME.

Sin embargo, en System.Core.dll (parte de .NET 3.5) hay algunas clases que usan una nueva API de Vista y lanzan la excepción PlatformNotSupportedException si se usan en una máquina con XP. Por ejemplo, eche un vistazo a la nueva clase EventLogReader (en el espacio de nombres System.Diagnostics.Eventing.Reader).

¿Microsoft rompe con la tradición de soporte de plataforma?

Para ser justos .NET 2.0 ya tenía clases que admitían las características de seguridad de NTFS, que no están disponibles en Windows 98 / ME.

¿Fue útil?

Solución

Microsoft obviamente está empujando hacia un entorno de desarrollo centrado en Vista. No es solo por la razón obvia de "necesitamos ganar dinero", sino también porque Vista es donde están surgiendo las nuevas y geniales API.

Para ser justos, siempre ha sido así con la API de Windows, y probablemente será así con .NET. No hay tal "tradición" como lo describe, pero una tradición de crear API que podrían no funcionar le notifica que se encuentra en un sistema operativo que no lo admite. Siempre intentan ser hacia atrás compatibles, no hacia adelante limitando, si entiendes :)

Otros consejos

Un soporte mínimo del sistema operativo significa que el producto se probó en una plataforma particular y superior. No garantiza que todas las características (o clases / API en el caso de una plataforma de desarrollo como .Net) funcionen en todas las plataformas compatibles.

Hay API nativas específicas de Vista que no existen en XP. .Net 3.5 agrega soporte para el mundo administrado para estas API, pero no intenta proporcionar una implementación administrada para las API nativas no existentes en XP.

Te puedo decir con experiencia que .NET nunca ha funcionado realmente en Windows 98 o ME. Recuerdo que en 2002, cuando la versión 1.0 era nueva, algunos colegas y yo descubrimos que cualquier cosa más complicada que un WinForm con algunos botones y una funcionalidad sencilla no funcionaría en Windows 9x, a pesar de las afirmaciones de Microsoft de lo contrario. Dado que llevábamos un año en XP y podíamos esperar razonablemente Windows 2000 al menos en las máquinas con las que estábamos tratando en ese momento, no fue un gran problema.

Pero básicamente Microsoft descuida las versiones anteriores de Windows con .NET no es nada nuevo. Al menos están lanzando excepciones de PlatformNotSupportedException en estos días.

El soporte de la plataforma siempre ha variado por tipo. Muchos tipos no son compatibles con Compact Framework, por ejemplo.

No puedo hablar de todo esto, pero sé que, por ejemplo, el sistema de registro de eventos en Vista era totalmente revisado y casi no se parece en nada al sistema de registro de eventos en Windows XP. Probablemente sea literalmente incompatible.

El problema aquí es que System.Diagnostics.Eventing se usa en AppFabric (es decir, Windows Azure), por lo que básicamente vas a librar una batalla cuesta arriba para que Windows XP hable con Cloud.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top