ASP.NET Core è un nuovo framework open-source e cross-platform per la creazione di applicazioni cloud collegate a Internet, quali applicazioni web, applicazioni IoT e backends mobile.

  • Le applicazioni ASP.NET Core possono essere eseguite su .NET Core o sul .NET Framework.
  • È stato progettato per fornire un framework di sviluppo ottimizzato per le applicazioni distribuite nel cloud o eseguite in locale.
  • È costituito da componenti modulari con sovraccarico minimo, in modo da mantenere la flessibilità durante la costruzione delle soluzioni.
  • È possibile sviluppare e eseguire le applicazioni cross-platform ASP.NET Core su Windows, Mac e Linux.
  • ASP.NET Core è open source su GitHub.

La prima versione in anteprima di ASP.NET è uscito quasi 15 anni fa come parte del .NET Framework. Da allora milioni di sviluppatori lo hanno utilizzato per costruire ed eseguire grandi applicazioni, e negli anni abbiamo aggiunto e sviluppato molte funzionalità ad esso.

ASP.NET Core ha una serie di modifiche architetturali che comportano un quadro molto più snello e modulare.

ASP.NET Core non è più basato su System.Web.dll, ma si basa su una serie di pacchetti NuGet granulari; Ciò consente di ottimizzare l’applicazione per includere solo i pacchetti NuGet necessari. I vantaggi di una superficie più piccola dell’applicazione includono una maggiore sicurezza, un ridotto servizio di assistenza, un miglioramento delle prestazioni e costi ridotti in un modello a pagamento.

 

API REST multi-piattaforma, utilizzando ASP.NET Core e Visual Studio Code…. Perchè?

Ci sono molti cambiamenti che accompagnano ASP.NET Core:

  • Open Source
  • Cross plattform
  • Ottimizzato per il cloud e in linea con le nuove tendenze nello sviluppo Web
  • La possibilità di eseguire ASP.NET Core su Linux introduce la possibilità di esplorare nuove frontiere.

Quando ASP.NET Core è stato rilasciato, Microsoft e la comunità .NET hanno deciso di unire le funzionalità di MVC e Web API; ciò ha senso dato che i due sono sempre stati molto simili.

ASP.NET Web API vs MVC: Quali sono le differenze?

Prima di ASP.NET Core, erano molto simili; entrambi hanno seguito un modello di tipo MVC con Action e Controlloer.
L’API Web non dispone di un motore di visualizzazione come Razor che invece è stato progettato per essere utilizzato per le API REST.
Microsoft ha promosso la Web API come un framework per la creazione di qualsiasi tipo di servizio HTTP.
E ‘stata un’ottima alternativa a WCF, SOAP e ai servizi web di tipo ASMX. È stato progettato fin dall’inizio con JSON e REST in mente.

MVC è stato progettato per applicazioni web standard con front-end HTML.

Il nuovo MVC 6 fornito con ASP.NET Core unisce il meglio dei mondi MVC e Web API da ASP.NET.
Da qualsiasi controller, è possibile restituire una vista o un oggetto e MVC si prenderà cura di serializzarla per te.
Più stili di routing diversi consentono di implementare applicazioni web MVC basilari o più API di tipo REST.

Ci sono molti aspetti innovativi in .NET Core. Per noi, tuttavia, uno degli aspetti più emozionanti di .NET Core sono le PERFORMANCE:

Collection
Le collection sono il fondamento di qualsiasi applicazione e ci sono molte collection disponibili nelle librerie .NET.
Net Core introduce alcuni miglioramenti relativi all’eliminazione di sovraccarichi, come ad esempio le operazioni di razionalizzazione per consentire un miglior inlining, riduzione del numero di istruzioni e così via.

LINQ
Nel codice applicativo, le collection spesso vanno di pari passo con la query integrata linguistica (LINQ), che ha visto ancora maggiori miglioramenti.
Molti degli operatori di LINQ sono stati interamente riscritti per .NET Core per ridurre il numero e la dimensione delle allocazioni, ridurre la complessità algoritmica e generalmente eliminare i lavori inutili.

Compressione
Gli esempi mostrati finora, delle collection e di LINQ, riguardano la manipolazione dei dati in memoria.
Naturalmente ci sono molte altre forme di manipolazione dei dati, incluse le trasformazioni che sono fortemente legate alla CPU. Anche in questo caso sono stati introdotti dei forti miglioramenti di tali operazioni.

Serializzazione
La serializzazione binaria è un’altra area di .NET che può essere abbastanza intensiva per CPU / dati / memoria .
BinaryFormatter è un componente che è stato inizialmente lasciato fuori di .NET Core, ma riappare in .NET Core 2.0 per supportare il codice esistente che ne ha bisogno (in genere, altre forme di serializzazione sono consigliate per il nuovo codice). Il componente è molto simile a quello rilasciato nel .NET 4.7, ad eccezione delle migliorie considerevoli in termini di prestazioni.

Networking
Una buona quantità di sforzi viene applicata per ottimizzare e sintonizzare i livelli inferiori dello stack di networking, in modo da poter costruire in modo efficiente componenti di livello superiore.
Una tale modifica che ha un grande impatto è PR dotnet / corefx # 15141. SocketAsyncEventArgs è al centro di un gruppo di operazioni asincrone su Socket e supporta un modello di completamento sincrono in cui le operazioni asincrone che effettivamente completano in modo sincrono possono evitare i costi associati a completamenti asincroni.