Question

Dès les premiers jours, le framework .NET est sorti, il y avait un support minimum pour l'OS:

  • .NET 1.0 - Windows NT ou supérieur (Windows 98 / ME sont également pris en charge)
  • .NET 2.0 - Windows 2000 ou supérieur (Windows 98 / ME sont également pris en charge)
  • .NET 3.0 - Windows XP ou supérieur
  • .NET 3.5 - Windows XP ou supérieur

Cette prise en charge minimale du système d'exploitation permet d'ignorer les problèmes propres à la plate-forme en utilisant uniquement le cadre. Les nouvelles fonctionnalités ont été ignorées sur les anciennes plates-formes. Par exemple, " Vue mosaïque " style dans le contrôle ListView ou la transparence de formulaire sous Windows 98 / ME.

Cependant, dans System.Core.dll (composant de .NET 3.5), certaines classes utilisent une nouvelle API Vista et émettent une exception PlatformNotSupportedException si elles sont utilisées sur une machine XP. Par exemple, examinez la nouvelle classe EventLogReader (dans l’espace de noms System.Diagnostics.Eventing.Reader).

Microsoft rompt-il avec la tradition du support de plate-forme?

Pour être honnête, .NET 2.0 disposait déjà de classes prenant en charge les fonctionnalités de sécurité NTFS, qui ne sont pas disponibles sous Windows 98 / ME.

Était-ce utile?

La solution

Microsoft pousse évidemment vers un environnement de développement centré sur Vista. Ce n'est pas seulement en raison de la raison évidente "nous devons gagner de l'argent", mais aussi parce que Vista est l'endroit où les nouvelles API fraîches se développent.

Pour être juste, cela a toujours été le cas avec l’API Windows, et ce sera probablement le cas avec .NET. Il n'y a pas une telle " tradition " comme vous le décrivez, mais la tradition selon laquelle les API qui ne fonctionnent pas peuvent vous informer que vous utilisez un système d'exploitation qui ne le prend pas en charge. Ils essaient toujours d’être en amont compatibles, pas avant limitants, si vous comprenez:)

Autres conseils

Une prise en charge minimale du système d'exploitation signifie que le produit a été testé sur une plate-forme donnée et au-dessus. Cela ne garantit pas que toutes les fonctionnalités (ou les classes / API dans le cas d'une plateforme de développement telle que .Net) fonctionneront sur toutes les plateformes prises en charge.

Il existe des API natives spécifiques à Vista qui n'existent pas dans XP. .Net 3.5 prend en charge le monde géré pour ces API, mais ne tente pas de fournir une implémentation gérée pour des API natives non existantes sous XP.

Je peux vous dire avec expérience que .NET n’a jamais vraiment fonctionné sous Windows 98 ou ME. Je me souviens qu'en 2002, lorsque la version 1.0 était nouvelle, certains de mes collègues et moi-même avions découvert que tout ce qui était plus compliqué qu'un WinForm avec des boutons et des fonctionnalités extrêmement simples ne fonctionnerait pas sous Windows 9x, malgré les affirmations de Microsoft. Étant donné que nous connaissions déjà XP et que nous pouvions raisonnablement nous attendre à Windows 2000 au moins sur les machines avec lesquelles nous avions affaire à ce moment-là, ce n’était pas grave.

Mais, fondamentalement, Microsoft néglige les anciennes versions de Windows avec .NET n’est pas nouveau. Au moins, ils lèvent des exceptions PlatformNotSupportedException ces jours-ci.

Le support de la plate-forme a toujours varié selon le type. De nombreux types ne sont pas pris en charge par Compact Framework, par exemple.

Je ne peux pas parler pour tout cela, mais je sais que, par exemple, le système de journal des événements de Vista était totalement remanié et ne présente pratiquement aucune ressemblance avec le système de journal des événements de Windows XP. C'est probablement littéralement incompatible.

Le problème ici est que System.Diagnostics.Eventing est utilisé dans AppFabric (Windows Azure). Vous allez donc devoir vous battre pour faire en sorte que Windows XP communique avec le Cloud.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top