Guida intergalattica per Parallels 13 e Visual Studio 2017

Dopo l'atto di amore del post precedente verso il mio mac, in questo vi scriverò quali sono le impostazioni che utilizzo attualmente su Parallels per far girare correttamente Windows e in realtà Visual Studio 2017 al top delle perfomance.
Come ho detto prima, la mia macchina principale è quella OSx, quindi alcune delle impostazioni che vi dirò di mettere su Windows è perchè oggettivamente non mi servono, ma andiamo per gradi. :)

Impostazioni macchina virtuale di Parallels

Seguendo alcune delle indicazioni che Parallels fornisce sul proprio sito, ho impostato così la mia macchina virtuale con Windows 10.

  • 2 CPU Virtuali (la metà di quelle che avete sul Mac)
  • 4096MB di RAM (anche se loro dicono che si può mettere fino a metà della RAM del Mac)
  • 256MB di memoria grafica (anche in questo caso loro indicano 512MB, ma se non fate lavori di grafica, bastano e avanzano)
  • Disabilitata l'opzione di ottimizzazione del disco in tempo reale
  • Ho abilitato la condivisione dei volumi del Mac con Windows e disabilitato la condivisione delle cartelle utente
  • Nella sezione dello schermo non ho messo l'impostazione per display retina, ma quella ridimensionata.

Ovviamente utilizzo la modalità Full Screen e non quella Coherence perchè alcune applicazioni Windows non si vedono bene sul Mac e soprattutto non seguono lo stesso flusso di lavoro (es. le gesture del trackpad).
In questa modalità inoltre posso mettere in un secondo monitor la macchina con Windows e tenere il resto sullo schermo principale del Mac.

Impostazioni Windows

Una volta installato Windows 10 sulla macchina virtuale, ho disabilitato alcune impostazioni riguardanti effetti grafici, con ovviamente guadagno sulle perfomance.
Dal pannello di controllo dove andare su System and Security -> Advanced System Settings -> Advanced -> Performace e impostare l'option button.
Potete disabilitare tutto e lasciare solo "Smooth edges of screen fonts" perchè ne avrete un guadagno in chiarezza dei fonts su Windows.

Impostazioni Visual Studio 2017

Visual Studio funziona bene anche con le impostazioni di default che vi trovate dopo l'installazione, ma con alcuni accorgimenti vedrete dei netti miglioramenti.
Queste impostazioni comunque le tengo anche sulla mia macchina con solo Windows (che adesso non ho più).

  • Da Options -> Environment -> General ho disabilitato i tre checkbox per il rendering grafico (Automatically adjust visual experience based on client performance)
  • Da Options -> Debugging -> General ho disabilitato alcune opzioni di debug che non utilizzo 
  • Ho disabilitato la Navigation Bar, tanto ho visto che utilizzavo pochissimo per non dire mai: Options -> Text Editors -> All Languages
  • Scatenando sicuramente l'ira di qualcuno ho disabilitato CodeLens: Options -> Text Editor -> All Languages -> CodeLens
  • Inoltre da Options -> Text Editor -> General ho disabilitato Track Changes
    E' quella opzione che ti fa vedere i punti del file che avete modificato da quando lo avete salvato l'ultima volta
  • Ultima cosa ho tolto la selezione dell'elemento attualmente aperto in Solution Explorer: Options -> Projects and Solutions -> General -> Track active item in Solution Explorer

Queste erano tutte cose che comunque non usavo nemmeno sulla macchina Windows.

Se invece avete la possibilità di lavorare con ASP.NET Core 2.0 o comunque sia con progetti .NET potete sempre fare a meno di utilizzare una macchina virtuale e utilizzare Visual Studio For Mac e Visual Studio Code.

Perché tanti sviluppatori preferiscono un Mac?

Sempre più spesso (nonostante le ultime vendite non siano andate come previsto), ci sono tanti sviluppatori che utilizzano un Mac invece di un PC con Windows.
Io stesso, anni fa ormai, ho fatto questa scelta.
Al di là dell'aspetto puramente estetico, ci sono secondo me, alcuni aspetti che per ora non mi faranno tornare indietro e così anche altre persone con cui ho parlato riguardo a questo argomento.
Ho provato a raccogliere qua alcuni delle risposte che ci siamo dati e che spesso do quando mi viene chiesto il motivo per cui l'ho fatto.

Qualità dell'hardware

Indiscutibilmente a livello qualitativo l'hardware del Mac è superiore a qualsiasi altro laptop della stessa fascia di prezzo.
E quando si parla di prezzo, sappiamo tutti che Apple non li vende proprio a sconto i propri MBP.
Il trackpad non è nemmeno paragonabile a quello di un PC e ogni volta che ho provato a usarne un altro, ne ho sentito la mancanza.
Per questo motivo tante persone (me compreso) ha smesso di usare il mouse.
Per la qualità dello schermo vale lo stesso discorso. Proprio in questo periodo ho avuto per lavoro un pc con schermo 4k e la qualità non era paragonabile rispetto a quello dello mio MAC.
Altro punto di forza è lo chassis in alluminio. Oltre a dare solidità dà anche efficienza nel raffreddamento.

Durata della batteria

Credo si tratti solo di un discorso di efficienza del sistema operativo. OSx è molto più attento alla risorse utilizzate e di conseguenza la batteria dura molto più a lungo.
Ovviamente dipende dalle attività svolte durante il giorno, ma sviluppando con Visual Studio Code e Safari a volte ci ho tirato una giornata intera di sviluppo.
Basta pensare che utilizzando la macchina virtuale con Parallels in cui ho Windows 10, la batteria riesce a durarmi anche 3-4 ore, quindi come un portatile normale con Windows.

Supporto per le versione più vecchie

Un altro elemento di forza sicuramente da valutare è il supporto che fornisce Apple a hardware anche più vecchi.
Ad esempio io ho un MBP del 2014 e in questi anni ho sempre aggiornato il sistema operativo all'ultima versione disponibile e tutto è sempre filato liscio.
Oltre a questo non ho mai avuto problemi di driver nè durante gli aggiornamenti principali nè durante gli aggiornamenti minori.
Non mi sono mai dovuto preoccupare di driver di terze parti o cose del genere.
Questo per me è molto importante perchè permette di concentrarsi solo sull'uso quotidiano del proprio computer, senza dover perdere tempo con problemi relativi ad agenti che c'entrano poco con il proprio lavoro.
Oltre a tutto questo, nonostante i 3 anni di vita abbondanti, la macchina risulta ancora performante e oserei dire che ad ogni aggiornamento la reattività delle applicazioni è migliorata.

Usato garantito

In caso vogliate cambiare un Mac dpo qualche anno di utilizzo, la cosa di cui potete stare certi, è che il suo prezzo scende, ma non si svaluta mai quanto un pc normale.
Per farvi un esempio il mio MBP del 2014 lo posso rivendere tranquillamente a quasi il 60% del prezzo rispetto al prezzo di acquisto di tre anni fa.
Direi che non è per niente male, visti i prezzi di quelli nuovi. :)

E Windows?

Nonostante Visual Studio Code, Visual Studio for Mac e tanti altri strumenti disponibili sia per Windows che per OSx ho bisogno spesso di lavorare su Windows.
Questo non è un grosso problema perchè anche in questo caso ci sono diverse alternative.
La prima è quella di usare Parallels e l'altra è quella di fare una partizione su Mac con Bootcamp.
Io fra le due preferisco la macchina virtuale, per diversi motivi.
Primo fra tutti è che essendo una macchina virtuale, posso clonarla, salvare lo stato, rifarla da zero, ogni volta che voglio.
La seconda è che comunque Parallels è molto più ottimizzato rispetto a Bootcamp perchè usa hardware virtualizzato ad hoc.
Il Mac invece non ha hardware disegnato per Windows, anche se Windows 10 ci gira molto bene.
Oltre a questo sulla macchina virtuale comunque tengo solo l'ambiente di sviluppo installato e tutto il resto lo tengo su OSx.
In questo modo ho un netto risparmio di risorse quando non mi serve Windows e quindi tutto si ricollega ai punti precedenti di risparmio di batteria e guadagno di produttività con desktop virtuali e tutto il resto.
Parlerò della configurazione ottimale di Parallels per sviluppare nel prossimo post.

That's all folks.

p.s. ah... dimenticavo il motivo principale... il mac con gli adesivi attaccati fa molto figo, hipster e nerd!

Visual Studio 2017: aggiornate tutti i pacchetti NuGet alla versione corrente

Ci sono diverse casistiche in cui abbiamo la necessità di reinstallare la stessa versione dei pacchetti di NuGet di una solution.
Prima fra tutti è il caso in cui scarichiamo per la prima volta il progetto da Visual Studio Team Service e in cui i pacchetti NuGet (ovviamente) non siano stati caricati insieme al progetto.
Altre volte invece può capitare che sia siano rotte le reference oppure, come succede a me ultimamente, dobbiamo copiare il file packages.config da un progetto a un altro.
Questo io lo sto facendo, ad esempio, perchè sto realizzando progetti molti simili in cui è richiesta una certa versione specifica per alcune librerie per far funzionare la solution.
Se in questi casi, lanciamo il seguente comando:

Update-Package

oppure con i comandi da interfaccia, i pacchetti vengono aggiornati all'ultima versione disponibile.

Se invece dal menu Tools - NuGet Package Manager - Package Manager Console apriamo la console di NuGet e scriviamo il comando:

Update-Package  –reinstall

i pacchetti verrano aggiornati alla versione specificata all'interno del file package.config.

Rilasciato un aggiornamento di ReSharper con supporto a .NET 2.0

Buone notizie per chi usa il tool di JetBrains ReSharper.
Da poco infatti è stato rilasciato un aggiornamento che supporta a pieno la nuova release di .NET Core.
Prima di installare comunque l'aggiornamento di ReSharper, dovete aver installato l'aggiornamento di Visual Studio e quindi avere la versione 15.3.
Con questo aggiornamento, ReSharper, aggiunge il completo supporto a .NET Core 2.0 e di conseguenza tutti gli strumenti a cui eravamo già abituati negli altri progetti e cioè il code inspection, la navigations e il refactoring.
Completo supporto anche per le nuove ASP.NET Core Razor Pages.

Per gli amanti del frontend, sono state anche migliorate le performance e il supporto per quanto riguarda TypeScript, JavaScript, Json e sopratutto Angular.

Visual Studio: lanciare diversi browser contemporaneamente

Quando si lavora sul web, per forza di cose, dobbiamo testare la nostra applicazione su almeno tre o quattro browser diversi.
Visual Studio anche in questo caso ci viene incontro e ci semplifica la vita, già difficile per noi "sviluppatori di pagine HTML".

Una volta aperto un progetto Web in Visual Studio, nella barra in alto potete selezionare la voce "Browse With" cliccando sulla freccia accanto al menu di debug con scritto il nome del vostro browser predefinito (di norma Internet Explorer).
A questo punto nella schermata nuova che vi apparirà, tenendo premuto il pulsante Ctrl, potete andare a selezionare con il mouse i diversi browser che volete lanciare di default.
Fatto questo, dovete cliccare su "Set as Default" che si trova sulla destra della schermata.

Chiusa questa finestra, il menu sulla barra a questo punto cambierà e al posto del nome del browser, troverete la scritta "Multiple Browsers".

 

Adesso, premendo Ctrl + F5, la vostra applicazione verrà lanciata simultaneamente in tutti i vostri browser contemporaneamente.
Purtroppo non è possibile lanciare una sessione di debug con più di un browser aperto, ma intanto accontentiamoci di questa opzione.
Il risultato ottenuto, comunque, sarà simile a quello dello screenshot qua sotto.

Buon degug.

Visual Studio 2017 Succinctly

Qualche giorno fa il mitico Alessandro Del Sole ha pubblicato un nuovo libro per Syncfusion: Visual Studio 2017 Succinctly

In questa introduzione a Visual Studio 2017 vengono descritte le principali novità dell'ambiente di sviluppo a partire dalla nuova installazione fatta a "moduli", alle novità dell'IDE vero e proprio, una panoramica su Roslyn fino alla parte riguardante lo sviluppo per il cloud e Web.
Come tutti gli altri libri di questa serie, lo potete scaricare gratuitamente dal link che vi ho lasciato sopra.

Buona lettura. :)