Sviluppare con .NET Core? Perché no?

Personalmente credo che .NET Core abbia raggiunto la maturità sufficiente per poter essere utilizzato al posto di .NET Framework. Nello sviluppo di applicazioni procedo sempre con l’analisi dei pro e dei contro nella scelta del framework da utilizzare. Le considerazioni che solitamente faccio sono:

  • Le applicazioni legacy difficilmente possono essere migrate a .NET Core: è meglio mantenere web app, backend e web api al framework .NET. Un discorso analogo è rappresentato dalle applicazioni on-premise (ad esempio deployate in sistemi Server)
  • Per quanto riguarda le applicazioni scritte in VB.NET (ahimè esistono ancora!), è sempre consigliato convertirle a C# e, se proprio non è possibile, mantenerle in .NET Framework
  • Per le altre soluzioni, soprattutto in ottica cloud, è consigliabile utilizzare .NET Core
  • Se l’applicazione è stata sviluppata seguendo i principi S.O.L.I.D, la migrazione potrebbe richiedere pochi interventi (necessari per l’adeguamento delle varie porzioni di codice). Se è sviluppata in Spaghetti Code (ebbene si, esistono!), è l’adeguamento ad un flusso più’ fluido ed organizzato è d’obbligo.

Continua a leggere Sviluppare con .NET Core? Perché no?

.Net Core – Static files e cache

La cache è il meccanismo che consente ai browser di memorizzare al loro interno le singole risposte http provenienti dal client. Vengono memorizzate all’interno della cache i contenuti di pagine, file javascript, immagini e ovviamente i file css.

Il sistema di caching dei file statici in ambiente di produzione è sicuramente molto importante, perchè consente al client di scaricare solo i file che effettivamente sono “scaduti” (ovviamente se non vengono effettuate forzature, come la cancellazione della cache sul browser). Questo tipo di comportamento non sempre è ottimale durante la fase di sviluppo: spesso una risposta diversa da quella che ci aspettiamo deriva proprio dal mancato aggiornamento dei file (all’interno della cache del browser).

Continua a leggere .Net Core – Static files e cache

Design Patterns – Builder

Tipologia: Creazionale

Obiettivo: separare la creazione di un oggetto complesso dalla sua rappresentazione in modo da poter creare rappresentazioni differenti

Frequenza di utilizzo: Medio – Bassa

Diagramma UML - Builder
Diagramma UML – Builder

Componenti:

  • Builder: definisce l’interfaccia astratta per la creazione di parti di Product
  • Director: costruisce l’oggetto Product utilizzando l’interfaccia astratta definita in Builder
  • Product: è l’oggetto complesso da costruire. Concrete Builder costruisce la rappresentazione interna dell’oggetto Product e definisce il processo con cui verrà assemblato. Inoltre, include le classi e le interfacce degli elementi costituenti del risultato finale
  • Concrete Builder: costruisce e assembla le parti di Product implementando l’interfaccia definita all’interno di Builder. Tiene traccia delle rappresentazioni che sono state create. Definisce un’interfaccia per ottenere Product.

Continua a leggere Design Patterns – Builder