Gli shortcut di Resharper

Per chi non lo conoscesse Resharper è un’estensione per Visual Studio per aumentare la produttività nella scritture del codice, effettuare refactoring, avere una naming convention uniforme, muoversi agilmente all’interno della soluzione ed eseguire i test unitari direttamente nell’IDE (solo per citare alcune delle feature).

Resharper

Un amico mi ha chiesto quali sono secondo me gli shortcut principali da utilizzare con Resharper.

I principali che uso sono:

  • ctrl+t per cercare un tipo
  • ctrl+shift+t per cercare un file
  • shift+alt+l quando ho un file aperto per trovarlo all’interno della solution
  • alt+enter un po’ ovunque sull’editor per accettare i suggerimenti/refactoring di default
  • ctrl+tasto sx del mouse su un tipo per andare alla sua definizione
  • ctrl+shift+r per attivare il menù di refactoring
  • ctrl+e+u per “circondare” un pezzo di codice con parentesi o try-catch

L’elenco di tutti i gli shortcut si trova qui:

http://www.jetbrains.com/resharper/webhelp/Reference__Keyboard_Shortcuts.html

Share

Unit testing e coverage con Visual Studio 2012

Dopo aver provato i principali framework di unit testing su .Net (MSTest, MbUnit, NUnit e xUnit) ho scelto NUnit come framework di riferimento.

Il problema degli ambienti di terze parti è che fino a Visual Studio 2010 non era possibile eseguire i test direttamente dall’IDE e la soluzione era quella di utilizzare plugin quali Resharper o TestDriven.Net

Finalmente in Visual Studio 2012 è stato aggiunto il supporto per i framework di test di terze parti!

L’utilizzo è reso semplicissimo in quanto è sufficiente installare l’adapter tramite l’Extension Manager.

Ad esempio per NUnit è disponibile ”Unit Test Adapter“:nunit-test-adapter-vs2012

Gli adapter disponibili attualmente sono:

  • NUnit
  • xUnit.net
  • MbUnit
  • QUnit
  • Jasmine

A questo punto è possibile utilizzare il test runner integrato in Visual Studio:

vs2012-test-explorer-with-nunit

L’integrazione tra Visual Studio 2012 e i framework di test di terze parti ha anche il vantaggio collaterale che diventa disponibile il code coverage!

Basta selezionare “Analyze Code Coverage” per il test selezionato o per tutti i test per avere le statistiche di coverage e per avere un riscontro visivo del coverage direttamente sul codice sorgente.

code-coverage-vs2012-nunit

Share

Nuove “piccole” feature di Visual Studio 2012

Tra le tante novità che sono state introdotte in Visual Studio 2012 ce ne sono alcune molto comode legate allo sviluppo di Web Application.

Quelle che ho apprezzato di più nell’uso quotidiano sono:

  • la visualizzazione Page Inspector
  • il supporto multi browser
  • l’estrazione di User Control
  • retrocompatibilità con Visual Studio 2010
  • anteprima delle immagini

Page inspector

Attivando il page inspector su una pagina aspx è possibile visualizzare all’interno di Visual Studio 2012 un’anteprima della pagina con l’inspector HTML simile a quello di Firebug.

view-in-page-inspector-VS-2012

page-inspector-VS-2012

Lo strumento è comodo perchè non è necessario passare al browser ma soprattutto si rivela molto efficace nel caso delle View in un progetto Asp.Net MVC.

Supporto multi browser

Gli shortcut F5 e CTRL-F5 sono da sempre serviti per avviare la web application in locale sul browser predefinito, rispettivamente con e senza debugger.

Un comodo menù visualizza adesso tutti i browser disponibili sulla macchina locale e consente di passare rapidamente da uno all’altro.

Multiple-browser

Estrazione di uno user control

Per creare uno user control partendo da una web form era necessario creare prima un nuovo user control, fare copia incolla dalla web form e inserire i tag register e uc nella web form.

Con Visual Studio 2012 tutte queste attività sono automatizzate tramite un singolo click:

estrazione user control in Visual Studio 2012

La funzione “Extract to User Control”:

  • richiede il nome e la posizione del nuovo user control
  • crea il nuovo oggetto con l’Html selezionato
  • inserisce nella web form i tag Register e uc

Extract-to-user-control-VS-2012-web-form

Anteprima delle immagini

Passando col mouse su un’immagine nella solution ne viene visualizzata un’anteprima:

anteprima immagini in Visual Studio 2012

Compatibilità della solution con Visual Studio 2010

Questo comportamento non riguarda solamente le Web Application ma la migrazione di una qualsiasi soluzione da Visual Studio 2010 a Visual Studio 2012.

Per la prima volta è possibile convertire la solution alla nuova release di Visual Studio mantenendo la compatibilità con la vecchia versione.

Importante: la compatibilità è garantita solo con Visual Studio 2010 con il Service Pack 1

Share

Che c’azzecca TFS con i metodi Agili? Ve lo racconto al Microsoft Dev Camp – Bologna

Giovedì 8 Novembre la community DotDotNet vi invita al Microsoft Dev Camp a Bologna.

L’evento è completamente gratuito e suddiviso in due parti.

Durante la mattina sarà possibile confrontarsi sui temi quali lo sviluppo su Windows 8, Windows Phone e Azure in un Lab pratico e interattivo.

Il pomeriggio invece seguirà un formato classico con alcune sessioni relative a Windows Azure, allo sviluppo di giochi, a TFS e ASP.Net.

Se non vi ho ancora annoiato abbastanza parlando di metodi Agili, SCRUM, TDD o Continuous Integration o se invece non ne avete ancora sentito parlare nel pomeriggio terrò una sessione su come sfruttare Team Foundation Server 2012 a supporto di un team Agile.

Come al solito al termine ci fermeremo a cena assieme.

Ci vediamo lì.

Agenda

Riporto il calendario completo dell’evento

ore 9.00

 


Registrazione

ore 9.30

 

Laboratorio Windows 8, Windows Phone e Azure

 

ore 13.30

Pranzo libero

ore 14.30

Anteprima Windows 8 e Windows Azure 

ore 15.00

Lorenzo Barbieri – Sviluppo giochi per Windows 8

C++ e DirectX/XAML, XAML e .NET, HTML 5 e JavaScript, MonoGame, Unity, altri framework open e closed. Ci sono moltissimi modi per realizzare giochi per il Windows Store che sfruttano appieno le caratteristiche di Windows 8 come il touch, la tastiera e il mouse, il supporto ai controller XBOX….

 

ore 16.00

Pausa

ore 16.15

Stefano Benedetti – Tecniche agili su TFS 2012: un esempio pratico

 

Test driven development, continuous integration, release often and early, visibility: sono alcuni dei principi e delle pratiche cardine del mondo Agile.
In questa sessione vedremo come concretizzarli con Visual Studio, il nuovo Team Foundation Server 2012 ed i suoi template Agili al fine di migliorare il processo di sviluppo ed il project management.

ore 17.15

Luca Milan e Igor Antonacci – Novità di ASP.NET 4.5 

In questa sessione, verranno illustrate le principalinovità di ASP.NET 4.5 attraverso lo sviluppo, passo passo, di un’applicazione Web moderna e responsiva. Con l’uso di Visual Studio 2012, vederemo com’è semplice introdurre le principali tecniche di ottimizzazione.

ore 18.15

Fine lavori

Location e data

Hotel Amadeus

Via M.E.Lepido 39
40132  Bologna 

Giovedì 8 novembre 2012 ore 9.00

Registrazione

L’evento è gratuito ma è richiesta la registrazione

Registrami al Microsoft Dev Camp a Bologna

Share

Installazione di Visual Studio 2012

Dato che la prossima settimana (il 12 settembre per la precisione) ci sarà l’evento di lancio di Visual Studio 2012 presso la sede di Microsoft (a cui partecipa anche DotDotNet) ho pensato che fosse l’ora di installarlo per cominciare ad utilizzarlo.

Intanto le prime considerazioni sull’installazione side-by-side.

Ogni release di Visual Studio è sempre accompagnata da una release del framework ed in particolare Visual Studio 2012 installa anche il .NET Framework 4.5.
Sia VS 2012 che il Framework 4.5 funzionano perfettamente side-by-side con tutte le precedenti versioni.

Normalmente quando si apre una soluzione creata con una vecchia versione di VS con una versione più recente viene aggiornato il file sln. Questo resta vero anche in questo caso con un solo distinguo: se la soluzione è stata creata con VS 2010 SP1 allora la soluzione resta accessibile anche da VS 2010 SP1. In particolare viene solo modificato il file format:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

Questo resta valido finché non si utilizzano le feature specifiche di VS 2012 come ad esempio targettizzare un progetto al Framework 4.5 il che rende inaccessibile il file sln da Visual Studio 2010 SP1.

Alcuni tipi di progetto non sono più supportati in Visual Studio 2012. In questa pagina si possono vedere quali progetti sono completamente gestiti e quali no: Visual Studio 2012 compatibility.

Dopo un breve download dall’MSDN della versione Premium, circa 15 minuti per una ISO di 1,5GB, lancio l’installazione che richiede solo due interventi: l’accettazione della licenza e la selezione delle feature da installare:

Visual Studio 2012 setup - license agreement02 - Feature selection

A questo punto l’installazione richiede alcuni minuti, un riavvio e la conferma finale:

03 - Installing04 - Restart required05 - Visual Studio 2012 Setup complete

Alla prima esecuzione è possibile importare le impostazioni di una precedente versione di Visual Studio, selezionare come al solito la configurazione di sviluppo preferita (per me come sempre Web Development) e la quantità di documentazione da installare localmente:

06 - Visual Studio 2012 first run

Fine. Nel giro di 30’ minuti è possibile vedere il nuovo layout di Visual Studio 2012:

08 - Visual Studio 2012 layout09 - Visual Studio 2010 layout

Devo dire che il primo colpo d’occhio è notevolmente piacevole e pratico. Rispetto alla versione 2010 ci sono pochi colori, poche distrazioni, una grafica lineare e molto pulita.

Share

Differenze tra web application e web site in Visual Studio

Ancora oggi mi capita spesso di trovare clienti che non conoscono la differenza tra un progetto di tipo Web Site ed uno di tipo Web Application in Visual Studio.

new-web-site

new-web-application

Web site project (WSP)

I progetti di tipo web site sono compilati dinamicamente. Sul web server vengono pubblicate tutte le pagine e i controlli con il markup ma anche tutti i sorgenti C#/VB.Net.

Ogni pagina è compilata la prima volta che viene richiesta e viene generata un’assembly per ogni file.

L’unico aspetto comodo dei web site è che è possibile seguire un ciclo di modifica tipico di un sito ASP classic in cui si modifica la pagina e la si pubblica senza dover ricompilare l’intero progetto.

Ovviamente in scenari anche minimamente complessi non è certamente questo il motivo per scegliere di sviluppare un progetto web site.

Tra l’altro la proliferazione di queste DLL combinata con l’eventuale frequente modifica dei namespace potrebbe causare errori di runtime.

I web site project hanno una cartella particolare App_Code in cui è possibile inserire direttamente delle classi C#/VB.Net. Anche queste devono essere copiate sul web server e vengono compilate dinamicamente.

Continuous integration e deploy

I web site non si integrano facilmente nei processi di Continuous Integration. Ad esempio un web site non consente di gestire gli eventi di pre e post build.

Il deploy viene effettuato tramite un normale XCopy oppure da Visual Studio sfruttando il tool Copy Web Site.

Copy-web-site

Web application project (WAP)

I progetti di tipo web application sono precompilati in un’unica DLL.

In questo caso il deploy riguarda le pagine ed i controlli con il markup ma non i file di code behind che vengono sostituiti dall’unica DLL nella cartella Bin.

Al contrario di un web site per pubblicare una modifica è necessario ricompilare l’intero progetto.

Continuous integration e deploy

La web application genera una normalissima assembly .Net semplificando il deploy ed il testing.

Anche il versioning risulta facilitato in quanto come ogni assembly contiene tra le altre le informazioni di Assembly Version e File Version.web-application-publish

Per effettuare il deploy si può usare lo strumento Publish di Visual Studio oppure creare un Deployment Package che può essere direttamente installato in IIS.

In entrambi i casi gli artefatti da mettere sul web server contengono esclusivamente pagine e controlli e le DLL delle cartella bin.

Tutti i file esclusi a livello di soluzione ed i sorgenti non vengono copiati/impacchettati.

Riassunto delle principali differenze

Web site Web application
Compilazione Dinamica, un’assembly per ogni singola pagina.
Effettuata la prima volta che viene richiesta la pagina o ad ogni modifica
Compilazione dell’intera web application e generazione di un’unica assembly
Deploy Deploy di pagine e controlli.
Deploy di tutti i file sorgenti di code behind
Deploy di pagine e controlli.
Deploy dell’assembly generata nella cartella bin
Strumenti di deploy Copy web site Publish
Build deployment package
Continuous Integration Non dispone di eventi di pre/post build Gestisce gli eventi di pre/post build
L’assembly contiene le informazioni di versione
Gestione file Tutti i file su file system sono obbligatoriamente compresi nel web site project Granulare:
– è possibile escludere dei file a livello di progetto in Visual Studio
– è possibile specificare quali file compilare/copiare/embeddare

Concludendo non esistono dubbi per me che la soluzione per ogni progetto che sia minimante più grande della gestione dei DVD di casa debba essere sviluppata tramite una web application.

Tra l’altro la compilazione in Visual Studio di un Web Site di una certa dimensione risulta molto più lenta di quella di una Web Application.

Può capitare di avere ancora dei vecchi progetti web site. Consiglio la lettura dell’articolo di Scott Guthrie che elenca gli step necessari per fare l’upgrade e le modifiche necessarie.

Riferimenti

ASP.NET: Web Site or Web Application?

Upgrading VS 2005 Web Site Projects to be VS 2005 Web Application Projects

Share

NuGet semplifica le gestione delle librerie nei progetti .Net

Il processo di integrazione di una libreria di terze parti (in particolare open source) in un progetto .Net richiede normalmente i seguenti passi:

  • download della libreria
  • copia dei file nella cartella della soluzione
  • aggiunta delle Reference all’interno del/dei progetti che la utilizzano
  • eventuale modifica del file web.config e app.config

Inoltre eventuali aggiornamenti di versione o rimozione di una libreria devono essere effettuati manualmente dallo sviluppatore con la solita perdita di tempo e la possibilità di commettere errori.

NuGet è la risposta per automatizzare la gestione delle librerie di terze parti all’interno di Visual Studio.

Cos’è NuGet

logo-nuget

NuGet è una libreria open source indirizzata agli sviluppatori .Net.

NuGet semplifica l’integrazione di librerie di terze parti nei progetti Visual Studio scaricando tutte le librerie necessarie, aggiungendo le reference al progetto e modificando i file web.config o app.config.

Tramite NuGet è inoltre possibile modificare e rimuovere i pacchetti installati: il processo di disinstallazione provvede a cancellare i file, rimuovere le reference e ripulire i file app.config e web.config.

NuGet si basa su package che contengono le librerie necessarie ed un file di manifest  che guida NuGet nell’installazione e manutenzione del package. I package hanno estensione .nupkg e l’elenco dei package è aggiornato tramite un feed che viene letto da Visual Studio.

I file .nupkg sono dei normali file zip.

Requisiti di sistema

NuGet richiede uno dei seguenti sistemi operativi:

  • Windows 7
  • Windows Vista SP1
  • Windows Server 2008 o R2
  • Windows Server 2003 SP2
  • Windows XP SP3

NuGet si integra con Visual Studio 2010 e Visual Web Developer 2010.

Installare NuGet

NuGet può essere installato in due modi:

  • Scaricandolo da CodePlex
  • Utilizzando l’Extension Manager di Visual Studio 2010

Download di NuGet da CodePlex

Alla pagina http://nuget.codeplex.com/releases è possibile scaricare l’estensione per Visual Studio in formato vsix.

Installazione tramite extension manager di Visual Studio 2010

Il modo sicuramente più semplice per installare e mantenere aggiornato NuGet è quello di utilizzare l’extension manager.

L’extension manager si trova nel menù Tools:

Visual-Studio-Extension-Manager-menu

L’extension manager consente di gestire tutte le estensioni di Visual Studio 2010 e di installarne di nuove.

Visual-Studio-Extension-Manager

E’ sufficiente cercare NuGet e premere Download.

Al termine dell’installazione è necessario riavviare Visual Studio.

L’integrazione con Visual Studio

L’utilizzo di NuGet può avvenire in due modi:

  • dalla finestra “Add Library Package Reference
  • sfruttando PowerShell in una finestra dedicata

L’installazione aggiunge nel menù Tools una nuova voce “Library Package Manager”.

Library-Package-Manager-menu

Package Manager Settings

Selezionando la voce “Package Manager Settings” si accede direttamente a una nuova sezione di opzioni.

Package-Sources

In Package sources si gestisce l’elenco dei feed che contengono i package in formato .nupkg.

Di default è utilizzato il feed ufficiale Microsoft.

Package Manager Console

Selezionando la voce Package Manager Console si lancia un processo PowerShell ospitato in una finestra Visual Studio.

Package-manager-console

La prima tendina consente di selezionare il feed da cui scaricare l’elenco dei package disponibili.

La seconda tendina consente invece di selezionare il progetto della soluzione corrente su cui si vogliono gestire i package.

 

Nel prossimo post vedremo come gestire i package sia dalla Library Reference sia dalla Package Console.

 

Riferimenti

Share

Guida ad IIS Express in formato PDF

Adesso che è stato rilasciato assieme a WebMatrix e che a breve l’integrazione con Visual Studio 2010 sarà completa con il rilascio del Service Pack 1 ho scritto una piccola guida ad IIS Express.

La guida copre un po’ tutti gli aspetti del nuovo web server.

Si parte da una introduzione su cos’è IIS Express e sulle sue differenze rispetto a Cassini e a IIS.

La guida poi esamina l’installazione, configurazione ed esecuzione e comprende in dettaglio l’integrazione con Visual Studio 2010 e 2008.

SOMMARIO

  1. Cos’è IIS express
  2. Confronto tra IIS, Cassini e IIS Express
  3. Installazione
  4. Piattaforme supportate
  5. Esecuzione di IIS Express
    1. Esecuzione di IIS Express dalla command line
    2. Esecuzione tramite WebMatrix
  6. Gestire siti con IIS Express
  7. IIS Express dietro le quinte
    1. Il file applicationHost.config
    2. La sezione <applicationPools>
    3. La sezione <sites>
  8. Windows Process Activation Service
  9. Integrazione con Visual Studio 2010
    1. Configurazione di IIS Express da Visual Studio
    2. Impostare IIS Express come web server di default
  10. Configurare IIS Express con Visual Studio 2008

DOWNLOAD

La guida è in formato PDF (392,11 kb).

Per riceverla gratuitamente nella tua casella di posta elettronica puoi fare una richiesta dalla pagina contatti.

In questo vecchio post potete sinteticamente vedere le differenze tra i tre web server:

Cassini e IIS hanno partorito un figlio: IIS Express

Share

Cassini e IIS hanno partorito un figlio: IIS Express

E’ notizia di oggi sul blog di ScottGu che a breve verrà rilasciato IIS Express in versione beta.

IIS express è LA soluzione definitiva per lo sviluppo ed il testing in locale di siti web e web application.

Lo sviluppo ASP.Net si è sempre basato su due soluzioni:

  • ASP.Net Development Server (meglio noto come Cassini)
  • IIS locale (quindi nelle varie declinazioni 5, 6 o 7 a seconda del sistema operativo client installato)

Entrambe le soluzioni hanno vantaggi e svantaggi e IIS Express raccoglie il meglio dei due prodotti.

Ho provato a raccogliere in una tabella tutte le differenze indicate da ScottGu:
 

Cassini

 IIS

IIS Express

Leggero e veloce green-check-mark

(meno di 10mb di download)

Porte remote Non si mette in ascolto su nessuna porta remota (il che lo fa vedere di buon occhio dai reparti IT)
Non richiede diritti amministrativi Alcuni dipartimenti IT potrebbero non consentire l’installazione di un web server locale
(nè per il setup e tantomeno per il debug)
Richiede setup Non richiede setup  Si riporto testualmente Scott:”…super quick install…”
Funzionalità da web server (SSL, URL Rewriting, Custom Security Settings)
Platform support La versione di IIS dipende dal sistema operativo (quindi 5.1 su XP…) Si installa su tutte le versioni di Windows a partire da XP fornendo quindi a tutti un web server IIS 7.x
Esecuzione Il suo punto di forza è proprio stato il fatto che basta premere F5 da Visual Studio ed è funzionante Si lancia semplicemente tramite il tasto destro sulla cartella che contiene la web application.

E’ già prevista l’integrazione con Visual Studio per poterlo lanciare tramite F5

Installazione side-by-side Si installa side-by-side con Cassini e con IIS
Pipeline Classic e integrated Classic e integrated
Supporto Classic ASP (per gli sfortunati che ancora lo usano…)
Supporto PHP
tramite il modulo FastCGI

tramite il modulo FastCGI
  Note L’ambiente è praticamente uguale a quello di produzione

Se queste sono le premesse, ScottGu dov’è il link per il download???? Lo voglio!!

Tutte le info sul post originale:
http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx

 

Share

Evento DotDotNet – Visual Studio Community Tour @ Trentino – Vi parlo di Asp.Net 4.0

 

DotDotNet in collaborazione con la neonata Umbraco Italia ha organizzato un nuovo evento per Venerdì 2 luglio.

Sarò al fresco in trentino per 3 motivi:

  1. un notevole interesse personale per Umbraco che da un po’ di tempo ho scelto come piattaforma CMS di riferimento, quindi guardo con interesse alla neonata community
  2. tra le varie sessioni vi parlerò delle novità introdotte in ASP.NET 4.0 ed in Visual Studio 2010 per quanto riguardo lo sviluppo Web quindi (non) accorrete numerosi!!!
  3. scoprire qualche nuovo piatto tipico…

 

 

L’agenda è la seguente:

Ora Sessione Speakers
14.00 – 14.20 Registrazione
14.20 – 14.30 Keynote Introduttiva  Microsoft Italia
Umbraco Italia
14.30 – 15.30 Introduzione alla famiglia Visual Studio 2010
In questa sessione vedremo le principali novità di Visual Studio 2010, come il nuovo editor, i nuovi designer, l’integrazione sempre più spinta con i test, l’IntelliTrace, il multi-targeting avanzato, etc…
Lorenzo Barbieri
Microsoft Italia
15.30 – 15.45 Break
15.45 – 16.45 Introduzione ad Umbraco
Umbraco CMS non è solamente un’altro Content Management System: l’integrazione perfetta con tutti i controlli di .NET e la sua estrema flessibilità lo rendono anche un framework potente con cui creare soluzioni complesse. In questa breve introduzione al CMS danese, vedremo come è possibile utilizzare Visual Studio per estenderne le funzionalità.
Umbraco Italia
Alessandro Ghizzardi e Eric Lefèbvre
16.45 – 17.45 Le novità di ASP.NET 4.0
NET Framework versione 4 include miglioramenti per ASP.NET 4 in aree mirate. Anche Visual Studio 2010 include miglioramenti e nuove funzionalità per ottimizzare lo sviluppo di risorse Web. In questa sessione verrà fornita una panoramica di numerose delle nuove funzionalità incluse nella nuova versione.

DotDotNet
Stefano Benedetti

17.45 – 18.00 Q&A e chiusura lavori

Per tutti i dettagli e per iscriversi all’evento:

http://dotdotnet.org/content/TourVS2010TN.aspx

Ci vediamo là!

Share