Perché devo specificare il framework di destinazione in Visual Studio?

3

Tutti sembrano parlarne facilmente ma non capisco.

.NET Standard è un sottoinsieme di funzionalità di ogni framework .NET che devi seguire se vuoi rendere il tuo framework .NET compatibile e compatibile su tutte le piattaforme che .NET può scegliere.

Allora perché devo specificare manualmente "netstandard20", "net461" e così via in targetframework?

Non dovrebbe essere compatibile con tutti?

Qual è anche il senso di mirare a se stesso "netstandard20"?

    
posta Liquid Core 12.01.2018 - 18:35
fonte

3 risposte

2

La specifica del framework di destinazione ha a che fare con la posizione in cui si intende distribuire l'applicazione e le funzionalità di C # che si intende utilizzare. La risposta più specifica a qualsiasi progetto è specifica per quel progetto.

Il compromesso per l'utilizzo della versione più recente e più grande di .Net è il commercio della compatibilità per comodità. Anche questo fa parte del motivo della suite NetStandard.

  • Net Standard funziona bene per le librerie poiché sarà compatibile con più destinazioni di implementazione
  • La tua applicazione deve essere mirata per una normale piattaforma (.Net 4.x, UWP, Silverlight, ecc.)

Puoi anche consultare le linee guida sul progetto GitHub per Net Standard che enumera abbastanza bene il trade-off:

  • The higher the version, the more APIs are available to you.
  • The lower the version, the more platforms implement it.

Devi decidere cosa è giusto per il tuo progetto. Mantenere il codice legacy significa rimanere sulle versioni legacy di .Net, sfortunatamente. Ciò significa che questi progetti devono mirare in modo specifico alle versioni precedenti.

    
risposta data 12.01.2018 - 20:10
fonte
7

Visual Studio ti permette di indirizzare diversi framework perché alcuni di noi devono ancora supportare sistemi operativi più datati o altri software che non usano i framework più recenti. Se dubiti della veridicità di questa affermazione, esegui una ricerca su Google per Internet Explorer 6 e crogioli nell'odio delle persone che ancora devono sostenerlo in qualche modo perché i loro clienti non sono in grado o non vogliono aggiornare il loro Modello T.

È incredibilmente utile per il tuo IDE essere in grado di dirti "Non puoi usare quella parola chiave o il sovraccarico del metodo, perché non esiste in .NET 3.5."

    
risposta data 12.01.2018 - 18:39
fonte
2

Inoltre,

.NET Standard ha più versioni, che non sono necessariamente compatibili con ogni framework. (netstandard2.0 non è compatibile con net450).

    
risposta data 12.01.2018 - 23:45
fonte

Leggi altre domande sui tag