Le versioni .NET sono retrocompatibili?


8

Nel corso degli anni varie versioni di .NET sono state implementate sui miei computer client tramite WSUS. Ora sembra che su molte macchine queste installazioni si siano perdute a vicenda e alcuni aggiornamenti di sicurezza di .NET non stiano funzionando.

Ho verificato che posso eseguire lo strumento di pulizia di .NET per sbarazzarmi di tutte le installazioni di .NET su un client e quindi posso inviare .NET 3.5 tramite WSUS. Questo sembra aver risolto i problemi che sto avendo sulla macchina su cui l'ho provato.

Quindi la domanda è: se ho .NET 3.5, c'è qualche motivo per installare anche le versioni precedenti?

Risposte:


14

Retrocompatibile è un brutto termine da usare. .NET 1.0, 1.1 e 2.0 sono i loro framework che non hanno compatibilità tra loro. .NET 3.0 e 3.5 sono super set del framework 2.0, usando il framework di base .NET 2.0, con dll aggiuntive per fornire funzionalità aggiuntive (3.0 incluse cose come WCF e WWF, 3.5 avevano cose come LINQ). In termini di requisiti applicativi:

  • Le app 1.0 richiedono l'installazione di .NET 1.0.
  • Le app 1.1 richiedono l'installazione di .NET 1.1.
  • Le app 2.0 richiedono l'installazione di .NET 2.0, 3.0 o 3.5.
  • Le app 3.0 richiedono l'installazione di .NET 3.0 o 3.5.
  • Le app 3.5 richiedono l'installazione di .NET 3.5.

Sono abbastanza certo che .NET 4.0 segua lo stesso modello di 2.0 - 3.5 (2.0 base con dll di funzionalità aggiuntive). Quindi l'installazione di .NET 3.5 ti coprirà per le applicazioni .NET 2.0 - 3.5. Dovrai installare .NET 1.1 se esegui qualsiasi app 1.1 (uguale per le app 1.0).


4
Sono abbastanza sicuro .net 4 è un CLR completamente nuovo che funziona fianco a fianco con qualsiasi versione precedente - non è solo un pacchetto di espansione come 3 / 3.5 era
Michael Haren l'

@Michael - Ancora non ho trovato informazioni definitive, ma sembra che tu abbia ragione. Colpa mia.
Evan M.

+1. Risposta fantastica. Non posso dirvi quante volte ho dovuto spiegarlo ai nostri tecnici dell'assistenza.
joeqwerty,

2
msdn.microsoft.com/en-us/library/bb822049.aspx è un articolo che conferma ciò che affermi sopra. E sì, 4.0 è autonomo, non ha dipendenze da altre versioni.
Larry Smithmier,

2

.NET è retrocompatibile in una certa misura, ma è necessario confrontare tra le versioni del framework. Quello che fanno è che è compatibile side-by-side, che è il problema che devi affrontare. C'è sicuramente un motivo per installare altre versioni. Un'app può essere scritta per targetizzare una versione specifica e se questa versione non è presente su una macchina, l'app fallirà.


È un po 'quello che pensavo. Immagino che dovrò farlo su una macchina per macchina.
Boden,

@Boden: di solito è possibile passare all'app per targetizzare un framework diverso, ma richiede la modifica di un file app.config o web.config per l'app. Sconsiglio vivamente, tuttavia, in quanto ciò potrebbe introdurre tutta una serie di problemi per l'app e quindi romperla totalmente.
Squillman

Probabilmente otterrai una copertura davvero buona distribuendo 3.5 ora e 4.0 quando verrà rilasciato ad aprile. 3.5 ha lo stesso CLR di 2, quindi non è necessario eseguire 2 e 3.5. Pochissime app eseguono più 1.1, quindi potresti lasciarlo spento e includerlo solo nel raro caso in cui sia necessario.
Michael Haren,

-1

No, .net non è compatibile con le versioni precedenti. MS si riserva il diritto di apportare modifiche. Da 2,0 u a 3,5 sono IIRC, ma questo è più un "lato fortunato". Il concet è che sono installati tutti i framework necessari e un'applicazione è indirizzata al framework contro il quale è stata compilata - questo consente a MS di ripulire nuove versioni e introdurre modifiche non compatibili.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.