Visual Studio http://blogs.ugidotnet.org/rucka/category/Visual Studio.aspx Visual Studio it-IT Gianluca Carucci Subtext Version 2.6.0.0 Frontend life with or without Visual Studio? http://blogs.ugidotnet.org/rucka/archive/2015/03/19/frontend-life-with-or-without-visual-studio.aspx <p>Un anno fa scrissi sul <a href="http://reboot.carucci.org">mio blog inglese</a> una serie di post dal titolo <em><a href="http://reboot.carucci.org/tag/vsfree/#blog">"the road to Visual Studio free frontend development"</a></em>, nei quali spiegavo - partendo da un caso reale - il perchè e il per come avessi abbandonato Visual Studio come strumento per lo sviluppo del frontend, in favore di un editor di codice e strumenti Open Source come Npm, Bower e Grunt.</p> <p>A Redmond non hanno sicuramente letto i miei post, ma probabilmente hanno fatto alcune riflessioni analoghe poichè Visual Studio 2015 (<a href="http://www.hanselman.com/blog/IntroducingGulpGruntBowerAndNpmSupportForVisualStudio.aspx">in parte già Visual Studio 2013</a>) <a href="http://www.asp.net/vnext/overview/aspnet-vnext/grunt-and-bower-in-visual-studio-2015"> ha cambiato rotta</a> integrando e supportando nell'ide questi tool.</p> <p>Se fino ad un anno fa la domanda del titolo - per me - sarebbe stata retorica, adesso la risposta non è più così scontata; la settimana prossima ci saranno i <a href="http://www.communitydays.it/">Community Days 2015</a> in cui avremo lo <a href="http://www.communitydays.it/events/2015/asp05/">spazio</a> per provare a trattare questi temi e darne una risposta.</p> <p> </p><img src="http://blogs.ugidotnet.org/rucka/aggbug/101962.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2015/03/19/frontend-life-with-or-without-visual-studio.aspx Thu, 19 Mar 2015 15:41:44 GMT http://blogs.ugidotnet.org/rucka/archive/2015/03/19/frontend-life-with-or-without-visual-studio.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/101962.aspx Visual Studio 2015 ASP.NET 5, project name e l'errore "install Couldn't read dependencies" http://blogs.ugidotnet.org/rucka/archive/2015/02/06/visual-studio-2015-asp.net-5-project-name-e-install-couldnt.aspx <div>Visual Studio 2015 ha introdotto una nuova modalità di gestione delle librerie e degli asset client side (javascript, typescript, coffescript, css, less...) di un progetto ASP.NET: infatti da questa versione, l'ide si affida ad un tool molto diffuso e apprezzato tra le community open source: <a href="http://bower.io/">Bower</a>.</div> <p>Bower è un package manager scritto in <a href="http://nodejs.org/">nodejs</a>, che ha il compito di scaricare e gestire le librerie client side (per quelle server side rimane valido NuGet). Come tutte le librerie basate su nodejs, la modalità di default d'installazione è tramite il package manger di nodejs: <a href="https://www.npmjs.com">npm</a>. </p> <p><strong>Qual'è il problema?</strong></p> <p> Quando creiamo un nuovo progetto Visual Studio 2015, dal template 'ASP.NET 5 Starter Web' e diamo un nome contenente un carattere accentato, scopriremo che:</p> <ul> <li>la build fallisce e apparentemente non si trova l'errore</li> <li>da solution explorer il nodo "Bower" sotto le "dependencies" (che dovrebbe contenere le librerie client del template come jquery, bootstrap...) è vuoto e non è abilitata l'opzione "Restore Packages"</li> <li>da solution explorer il nodo "NPM" sotto le "dependencies" indica che i packages: grunt, grunt-bower-task non sono stati scaricati</li> </ul> <p>Mettendo insieme questi indizi, e soprattutto aprendo la finestra "Package Manager Log", si trova un errore simile a questo:</p> <script src="https://gist.github.com/rucka/6b63ec76f2e7d3d122d0.js"></script> <p>Visual Studio infatti scarica le dipendenze dei tools (tra cui bower) usando il comando npm install. Quest'ultimo per funzionare ha bisogno che nella directory corrente ci sia il file package.json (file aggiunto automaticamente dal template di Visual Studio) il quale contiene alcune informazioni tra cui l'elenco delle dipendenze (un po' come il file packages.config di NuGet) e il nome del progetto; ecco il problema: npm esegue una validazione del nome (notare l'errore: <em>6 error Error: Invalid name: "ragù"</em>) e se questo non super la validazione, il comando <em>install </em>fallisce senza scaricare i tool (tra cui bower), e gli asset client del progetto (tramite bower). </p> <p>Indagando un po' ci imbattiamo nella funzione <a href="https://github.com/npm/normalize-package-data/blob/master/lib/fixer.js"><em>ensureValidName</em></a><em> </em>che fallisce poichè i caratteri accentati non sono ammessi. Il codice del metodo è il seguente:</p> <script src="https://gist.github.com/rucka/8b8629adcb5ebfa5c174.js"></script> <p><span class="pun">In definitiva, fate attenzione al nome del progetto che scegliete o in alternativa, modificate il nome all'interno del file <em>package.json</em>. </span></p> <p><span class="pun">Concludendo: perchè dobbiamo cambiare modo di gestire i progetti web rischiando di ricevere errori anche da tool fino ad ora non utilizzati? </span></p> <p><span class="pun">Di questo e di tutto ciò che riguarda  <a href="http://goo.gl/qDaU4v">Npm, Grunt, Bower e il nuovo package manager di Visual Studio 2015</a>, parleremo il 26 marzo ai <a href="http://goo.gl/1AqlZm">CommunityDays</a> di quest'anno. </span></p> <p><span class="pun">Ci vediamo là?</span></p><img src="http://blogs.ugidotnet.org/rucka/aggbug/101939.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2015/02/06/visual-studio-2015-asp.net-5-project-name-e-install-couldnt.aspx Fri, 06 Feb 2015 10:56:57 GMT http://blogs.ugidotnet.org/rucka/archive/2015/02/06/visual-studio-2015-asp.net-5-project-name-e-install-couldnt.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/101939.aspx