C# aggiornamento entity

Novità in C# 7.0

C# 7 è la prima versione del linguaggio completamente sviluppata seguendo il modello open-source. I sorgenti sono disponibili su github dove è anche possibile seguire l’avanzamento dello sviluppo e intervenire nelle discussione del team di sviluppo.

Novità in C# 7.0

Le novità riguardano tre temi fondamentali :

  • Accesso ai dati: nello sviluppo di applicazioni prevalentemente web, l’architettura per l’accesso ai dati è profondamente cambiata. I dati non sono più localizzati all’interno dell’applicazione, ma vengono decentralizzati su web-services (web-api) esterni. Nei linguaggi di programmazione ad oggetti, le operazioni di accesso ai dati vengono spesso modellate utilizzando una classe astratta (o meglio un’interfaccia) in cui sono definite le operazioni disponibili. Anche i dati sono a loro volta rappresentati da un numero più o meno variabile di classi. Seguendo i principi della OOP, l’implementazione della classe astratta (o delle interfacce) all’interno delle singole classi mette a disposizione tutte le operazioni della superclasse in ogni singola classe. Se questo tipo di approccio è vero per i linguaggi ad oggetti, non è applicabile nei linguaggi funzionali dove ogni funzione implementa una singola operazione per tutti i tipi di dato. L’approccio utilizzato nei linguaggi funzionali permette molto facilmente di aggiungere una nuova funzione ma non risulta così immediata l’introduzione di un nuovo tipo di dato: è necessario modificare tutte le funzioni esistenti per permetterne la sua gestione. Questo tipo di approccio era già possibile utilizzando C# 6 (sebbene scrivendo molto codice non sempre comprensibile), ma in C# 7 è stato migliorato introducendo il pattern matching, che tratteremo in un prossimo articolo.
  • Performance: le nuove ottimizzazioni sono focalizzate ad aumentare le performance, in particolare riducendo la copia dei dati all’interno della memoria. L’introduzione delle local function, l’utilizzo di valori di ritorno e variabili locali per reference (e non per valore) e la possibilità di ritornare dati custom da metodi asincroni consentono di migliore sensibilmente le performance delle applicazioni. In un prossimo articolo verranno trattate in maniera approfondita.
  • Semplificazioni nel codice: sono state introdotte le throw exception, la possibilità di gestire in maniere più semplice i costruttori ed i metodi finalize delle classi, la dichiarazione di variabili out direttamente nell’elenco dei parametri dei metodi e l’utilizzo del carattere _ (underscore) come separatore nella rappresentazione di numeri. Anche questo argomento, verrà approfondito nei prossimi articoli.

Pubblicato da

Andrea Merlin

Laureato in informatica, diversi corsi di specializzazione legati allo Sviluppo Software e alla Computer forensics. Appassionato di nuove tecnologie, amo la programmazione, la Business Intelligence e tematiche legate alla Privacy.Sempre alla ricerca di nuove idee, stimoli … e progetti da seguire!Amo trascorrere il tempo libero in Val Borbera, un piccolo angolo del Piemonte, in provincia di Alessandria.