È necessario utilizzare .NET Core, anziché .NET Framework o Xamarin, nei seguenti 6 scenari tipici in base alla documentazione qui .
1. Esigenze multipiattaforma
Chiaramente, se il tuo obiettivo è avere un'applicazione (web / servizio) che dovrebbe essere in grado di funzionare su piattaforme (Windows, Linux e MacOS), la scelta migliore nell'ecosistema .NET è quella di utilizzare .NET Core come runtime (CoreCLR ) e le librerie sono multipiattaforma. L'altra scelta è quella di utilizzare il Mono Project.
Entrambe le scelte sono open source, ma .NET Core è direttamente e ufficialmente supportato da Microsoft e avrà un investimento pesante in avanti.
Quando si utilizza .NET Core su più piattaforme, la migliore esperienza di sviluppo esiste su Windows con l'IDE di Visual Studio che supporta molte funzionalità di produttività tra cui gestione dei progetti, debug, controllo del codice sorgente, refactoring, editing avanzato tra cui Intellisense, test e molto altro. Ma il ricco sviluppo è supportato anche usando Visual Studio Code su Mac, Linux e Windows, inclusi intellisense e debugging. Anche editor di terze parti come Sublime, Emacs, VI e altri funzionano bene e possono ottenere l'editor intellisense usando il progetto open source Omnisharp.
2. Microservizi
Quando si crea un sistema orientato ai microservizi composto da più microservizi indipendenti, dinamicamente scalabili, con stato o stateless, il grande vantaggio che si ha qui è che è possibile utilizzare diverse tecnologie / framework / linguaggi a livello di microservizi. Ciò consente di utilizzare l'approccio e la tecnologia migliori per le micro aree del sistema, quindi se si desidera creare microservizi altamente performanti e scalabili, è necessario utilizzare .NET Core. Alla fine, se hai bisogno di usare una libreria .NET Framework non compatibile con .NET Core, non c'è problema, puoi creare quel microservizio con .NET Framework e in futuro potresti essere in grado di sostituirlo con .NET Nucleo.
La piattaforma di infrastruttura che potresti usare è molte. Idealmente, per sistemi di microservizi grandi e complessi, è necessario usare Azure Service Fabric. Ma per i microservizi senza stato è anche possibile usare altri prodotti come il Servizio app di Azure o Funzioni di Azure.
Da giugno 2016, non tutte le tecnologie di Azure supportano .NET Core, ma il supporto di .NET Core in Azure aumenterà notevolmente ora che .NET Core è stato rilasciato.
3. I sistemi più performanti e scalabili
Quando il tuo sistema ha bisogno delle migliori prestazioni e scalabilità possibili in modo da ottenere la migliore reattività, indipendentemente da quanti utenti hai, allora è dove .NET Core e ASP.NET Core brillano davvero. Quanto più puoi fare con la stessa quantità di infrastruttura / hardware, tanto più ricca sarà l'esperienza che avrai per i tuoi utenti finali, a un costo inferiore.
I giorni dei miglioramenti delle prestazioni di legge di Moore per le singole CPU non si applicano più; tuttavia devi fare di più mentre il tuo sistema sta crescendo e hai bisogno di maggiori scalabilità e prestazioni per gli utenti più esigenti di tutti i giorni che stanno crescendo esponenzialmente in numero. In definitiva, è necessario essere più efficienti, ottimizzare ovunque e ridimensionare meglio tra cluster di macchine, VM e core di CPU. Non è solo una questione di soddisfazione dell'utente; può anche fare un'enorme differenza in termini di costo / TCO. Ecco perché è importante lottare per prestazioni e scalabilità.
Come accennato, se puoi isolare piccoli pezzi del tuo sistema come microservizi o qualsiasi altro approccio debolmente accoppiato, sarà meglio in quanto non sarai in grado di evolvere indipendentemente ogni piccolo pezzo / microservizio in modo indipendente e avere un migliore a lungo termine agilità e manutenzione, ma sarai anche in grado di utilizzare qualsiasi altra tecnologia a livello di microservizio se ciò che devi fare non è compatibile con .NET Core. E alla fine saresti in grado di riformattarlo e portarlo a .NET Core quando possibile.
4. Sviluppo stile riga di comando per Mac, Linux o Windows.
Questo approccio è facoltativo quando si utilizza .NET Core. Ovviamente puoi anche utilizzare l'IDE completo di Visual Studio. Ma se sei uno sviluppatore che desidera sviluppare con editor leggeri e un uso intenso della riga di comando, .NET Core è progettato per l'interfaccia della riga di comando. Fornisce semplici strumenti da riga di comando disponibili su tutte le piattaforme supportate, consentendo agli sviluppatori di creare e testare applicazioni con un'installazione minima su macchine sviluppatore, di laboratorio o di produzione. Editor come Visual Studio Code utilizzano gli stessi strumenti da riga di comando per le loro esperienze di sviluppo. E gli IDE come Visual Studio usano gli stessi strumenti CLI ma li nascondono dietro una ricca esperienza IDE. Gli sviluppatori possono ora scegliere il livello che desiderano interagire con la catena di strumenti dalla CLI all'editor all'IDE.
5. Necessità fianco a fianco delle versioni .NET per livello di applicazione.
Se si desidera poter installare applicazioni con dipendenze su diverse versioni di framework in .NET, è necessario utilizzare .NET Core che fornisce il 100% fianco a fianco, come spiegato in precedenza in questo documento.
6. App Windows 10 UWP .NET.