ASP.NET Core sì o ASP.NET Core no?

In questo ultimo periodo, sia a lavoro sia per progetti miei, mi capita sempre più spesso di trovarmi di fronte al "dilemma" che dà il titolo a questo post: in questo nuovo progetto utilizzo ASP.NET 4.x o ASP.NET Core?

Quando usare ASP.NET Core

Uno dei punti di forza di ASP.NET Core è la possibilità di essere eseguito anche su altre piattaforme oltre che Windows.
Tali ambienti (Linux e macOS) possono essere usati anche durante lo sviluppo e non solo in produzione.
A supporto delle attività di sviluppo ci sono strumenti come Visual Studio Code che garantiscono comunque una certa velocità nelle operazioni quotidiane di uno sviluppatore, rispetto a un banale editor di testo.
Inoltre, la leggerezza e scalabilità di ASP.NET Core rendono le applicazioni molto adatte ad un'architettura applicativa basata su microservices.
Questo discorso va a braccetto con la possibilità di utilizzare una infrastruttura a containers come Docker.
Questo punto è molto interessante: data la possibilità di eseguire l'applicazione anche su Linux, può essere utilizzata indistintamente sia la versione di Docker per Windows, sia quella per Linux.
Un altro dei motivi per cui si può scegliere di utilizzare ASP.NET Core piuttosto che la versione "standard", è la necessità di avere performaces molto elevate.
ASP.NET Core è almeno 10 volte più veloce rispetto ad ASP.NET.
Questo è dovuto anche alla sua elevata scalabilità.

Quando usare ASP.NET 4.x

Se la vostra applicazione web utilizza già ASP.NET Full Framework e non avete intenzione di migrare ad ASP.NET Core, potete anche smettere di leggere qua l'articolo e rimanere su questo ecosistema. :)

Un altro punto che vi può far optare subito per questa scelta è la disponibilità di librerie di terze parti solo per il full framework e non per ASP.NET Core. Sia che queste siano su NuGet che componenti di terze parti quali Telerik o Syncfusion.
Altre cose che non sono supportate da ASP.NET Core e che vi dovrebbero "trattenere" su quest'altra scelta sono ad esempio la mancanza di Web Forms e WCF.
Se utilizzate almeno una di queste due tecnologie e non volete riscrivere la vostra applicazione, vi conviene rimanere su questa strada.

Ricapitolando

Quando usare ASP.NET Core:

  • i server sono su Linux
  • si è scelto di utilizzare Docker come container delle proprie applicazioni
  • performance e scalabilità sono due requisiti fondamentali

Quando usare ASP.NET Full Framework:

  • l'applicazione che state sviluppando utilizza già il Full Framework e non avete le necessità dei punti precedenti
  • utilizzate librerie di terze parti che non supportano .NET Core

Conclusioni

Le mie conclusioni sono che non esiste una verità assoluta sull'adozione di ASP.NET Core su un progetto, che sia nuovo o una migrazione di uno esistente ASP.NET 4.x.
Questa scelta dipende sempre dai requisiti che avete e da quanto la vostra applicazione sfrutterà le nuove funzionalità di ASP.NET Core da cui non potete prescindere assolutamente (le vedremo nel prossimo post).

Visual Studio Extensions: SolutionColor

Non so a voi, ma a me capita molto spesso di lavorare con molte più istanze di Visual Studio aperte contemporaneamente.
Spesso, passando da una finestra all'altra, devo innanzitutto capire in che solution mi trovo e quindi ricercare quello che stavo guardando.
Ho provato anche ad usare il multidesktop, ma il risultato cambia poco.
L'unica soluzione che ho trovato più rapida e che mi fa perdere meno tempo è aggiungere un'estensione per Visual Studio 2015, molto semplice: https://marketplace.visualstudio.com/items?itemName=Wumpf.SolutionColor

Questa piccola estensione non fa altro che aggiungervi nella toolbar due pulsanti: il primo vi permette di selezionare un colore che vi andrà a ricolorare la toolbar della finestra di Visual Studio e il secondo vi azzera questa impostazione.
In questo modo potete andare a colorare le vostre finestre di Visual Studio in base alla solution e quindi ricordarvi a colpo d'occhio di quale progetto si tratta.
Attenzione che il colore lo memorizza in base alla posizione del file .sln e non del nome della solution, quindi se spostate i sorgenti, perdete l'impostazione.

That's all folks!

Evento: Visual Studio 2017, novità e dintorni da Connect()

Venerdì 3 Febbraio presso il dipartimento di Informatica a Pisa, ci sarà un nuovo evento targato DotNetToscana.
Questa volta parleremo delle tante novità che ci sono state negli ultimi mesi, lato sviluppo.

In particolar modo, durante la mia sessione, andremo a vedere le novità di ASP.NET Core 1.1 dal punto di vista di un progetto reale.
Quindi, niente "Hello World" ma un progetto vero e proprio sviluppato con l'ultima versione di ASP.NET.
Nel dettaglio andremo a vedere cose del tipo:

  • Dependency Injection
  • Dapper
  • Custom Tag Helper
  • Response Caching
  • Response Compression
  • Globalization e Localization
  • Memory Cache
  • Redis Cache
  • Bower, Gulp

Queste sono quelle che mi vengono in mente, ma sicuramente c'è altro. :)

A questo link http://dotnettoscana.org/eventi/visual-studio-2017-novit%C3%A0-e-dintorni-da-connect potete trovare l'agenda con le altre sessioni e soprattutto il link per la registrazione.
Questo il link dell'evento su Facebook: https://www.facebook.com/events/191992654607241

Ci vediamo a Pisa!

Evento: DevOps@Work 2017

Vi segnalo un evento molto interessante che si terrà Venerdì 10 Febbraio a Roma (nella sede Microsoft).
Come si può capire dal titolo dell'evento sarà una giornata all'insegna di DevOps.
Verranno affrontati argomenti come Visual Studio Online, TFS 2017, Azure, Docker, Git, GitFlow e tanti altri.
La giornata sarà divisa su due track parallele (difficilissimo scegliere!) e gli speaker sono tutti veramente in gamba.

Potete trovare maggiori informazioni e soprattutto le track e gli abstract sulla pagina di EventBrite in cui, ovviamente, è possibile anche registrarsi.
Fatelo prima possibile, non rischiate di perdervi questo evento interessantissimo.

https://www.eventbrite.it/e/biglietti-devopswork-2017-30931208076?aff=es2

 

Visual Studio 2015: ottenere l'errore "Microsoft Web Deploy v3 or higher is recommended" durante la pubblicazione

Ultimamente mi è capitato che dopo aver installato Visual Studio 2017 su una macchina in cui era già presente Visual Studio 2015, la pubblicazione di un sito ASP.NET smettesse di funzionare con il seguente errore:

"Microsoft Web Deploy is not correctly installed on this machine. Microsoft Web Deploy v3 or higher is recommended."

Dopo varie prove sulla mia macchina virtuale, ho visto che è sufficiente reinstallare il componente Web Deploy aggiornato all'ultima versione, direttamente dal sito di Microsoft: https://www.iis.net/downloads/microsoft/web-deploy

Una volta reinstallato non importa riavviare il pc, ma basta chiudere e riaprire Visual Studio 2015 perchè tutto torni a funzionare.