Qu'est-ce que la compatibilité descendante du framework .NET?

12

Nous développons une application Windows en .NET 4 avec une base de données de MySQL. Lorsque nous sommes sur le point de déployer cette application, nous installons le framework .NET 4 dans notre client, puis lors de l'installation du connecteur .NET pour MySQL, il nécessite un framework .NET 3.5. Mais le .NET 4 est déjà installé. Le framework .NET n'était-il pas rétrocompatible?

Nous finissons par installer deux frameworks .NET (3.5 et 4) qui ne sont pas petits en taille de disque. Que signifie exactement la compatibilité descendante?

John Isaiah Carmona
la source
3
La réponse à la question non posée: oui, c'est bien d'être en colère.
Erik Reppen
Devez-vous installer l'ensemble du .NET 3.5 Framework pour un connecteur? Avez-vous essayé de copier / enregistrer uniquement les assemblages requis?
Mert Akcakaya
6
What is .NET framework backward compatibility?Un mythe.
yannis
@YannisRizos Ils détiennent les codes / fonctionnalités obsolètes et gardent leur cadre de plus en plus grand pour un mythe? .NET est bizarre.
John Isaiah Carmona
@ErikReppen: en colère contre qui?
Doc Brown

Réponses:

18

Pour citer MSDN :

Le .NET Framework 4 est rétrocompatible avec les applications qui ont été construites avec les versions .NET Framework 1.1, 2.0, 3.0 et 3.5. En d'autres termes, les applications et les composants créés avec les versions précédentes du .NET Framework fonctionneront sur le .NET Framework 4.

Cependant, dans la pratique, cette compatibilité peut être rompue par des changements apparemment sans conséquence dans le .NET Framework et des changements dans les techniques de programmation. Par exemple, les améliorations des performances dans le .NET Framework 4 peuvent exposer une condition de concurrence critique qui ne s'est pas produite sur les versions antérieures. De même, l'utilisation d'un chemin codé en dur vers les assemblys .NET Framework, la comparaison d'égalité avec une version particulière du .NET Framework et l'obtention de la valeur d'un champ privé à l'aide de la réflexion ne sont pas des pratiques rétrocompatibles. En outre, chaque version du .NET Framework inclut des corrections de bogues et des modifications liées à la sécurité qui peuvent affecter la compatibilité de certaines applications et composants.

Vous devez tester vos applications et composants .NET Framework pour vous assurer qu'ils sont compatibles avec d'autres versions de .NET Framework. Pour vous assurer qu'une application ou un composant s'exécute correctement sur .NET Framework 4, utilisez la procédure pas à pas de compatibilité des applications .NET Framework 4.

Vous pouvez également voir ce fil très utile dans lequel une explication détaillée a été donnée:

/programming/2816914/backwards-compatibility-of-net-framework-4

Mamta D
la source