VISUAL STUDIO
My adventures in the VISUAL STUDIO world
Come sapete non è possibile, salvo configurazioni un pò macchinose, accedere a siti ospitati su IIS Express dall'esterno (altri PC\VM\dispositivi).
Esiste tuttavia un modo molto più semplice, che richiede l’installazione di un proxy via NPM npm install -g iisexpress-proxy Una volta installato, basta eseguire il comando iisexpress-proxy 51123 to 3000
Dove
51123 è la porta IIS a cui il sito è raggiungibile (che è dinamica)
3000 è la porta al quale il sito risponderà all’esterno, usando l’ip della scheda di rete primaria.
Se l’ip del mio PC è 192.168.230.126, Il sito sarà ora raggiungibile dall’esterno all’indirizzo: http://192.168.230.126:3000
Su GitHub trovate i dettagli del...
Da un pò di tempo, quando devo creare un Windows Service, utilizzo la libreria Topshelf, che permette di sviluppare una normale applicazione console e, una volta impostate le opportune configurazioni mediante sintassi fluent, installarla facilmente come windows service, senza tool esterni quali installutil. Un’applicazione console, oltre ad essere più facile da debuggare, è anche eseguibile direttamente (a differenza di un windows service). Vediamo quindi come creare un servizio. 1) Apriamo Visual Studio e selezionamo il progetto di tipo “Applicazione console”
2) Creiamo una nuova classe che esponga 2 metodi che verranno chiamati allo start...
A volte potrebbe tornare utile avere la rappresentazione visuale del modello CodeFirst che stiamo utilizzando, ovvero datto il DbContext CodeFirst, ottenere il file EDMX corrispondente:
Il tutto è facilmente ottenibile con poche righe di codice:
Il code coverage è un'indice importante per avere un'idea della percentuale di codice coperto da unit-test.
Se utilizzate il framework di unit-test Microsoft (MSTest), Visual Studio è in grado di calcolare tale indice automaticamente (maggiori dettagli qui).
Tempo fa avevo instrumentato questo tool su un mio progetto ed oggi, dopo aver fatto refactoring ed aggiunto alcune funzionalità, volevo visualizzare i dati di code coverage.
Lanciando il tool, ottenevo tuttavia questo messaggio:
"Cannot find any coverage data (.coverage or .coveragexml) files. Check test run details for possible errors."
Dopo un pò di verifiche ho scoperto l'inghippo: per qualche motivo il file di impostazioni dei test corrente era...
Dalla versione 4.5 del .NET framework è finalmente supportata out-of-the-box la manipolazione di file zip senza l'utilizzo di librerie di terze parti.
Sono ora disponibili infatti 2 assembly System.IO.Compression e System.IO.Compression.FileSystem che permettono, ad esempio, di enumerare i file presenti in uno zip, estrarli, creare nuovi file zip, etc.
Ad esempio, ecco come si ottiene l'elenco dei file contenuti in uno zip:
const string zipFilePath = @"C:\temp\files.zip";
using (FileStream zipFileToOpen = new FileStream(zipFilePath, FileMode.Open)){
using (ZipArchive archive = new ZipArchive(zipFileToOpen, ZipArchiveMode.Read)) {
foreach (var zipArchiveEntry in archive.Entries) {
Console.WriteLine("File name: {0}", zipArchiveEntry.FullName);}
}}
E come si estraggono in una directory:
const string zipFilePath = @"C:\temp\files.zip";
const...
Recentemente ho dovuto creare un’applicazione WPF che fosse facilmente distribuibile (leggi: distribuire solo l’exe). Purtroppo il tool ILMerge non funziona per applicazioni WPF, a causa di problemi con le risorse contenute in esse (esistono comunque tool funzionanti di terze parti, a pagamento). Seguendo questo post, ho creato un esempio che qui illustro e che potete scaricare qui. L’applicazione visualizza semplicemente il fullname di due classi presenti in 2 assembly referenziati: Per prima cosa è necessario modificare il file di progetto dell’applicazione WPF aggiungendo, dopo “Microsoft.CSharp.targets” , il seguente snippet: ...
Come tutti sapete all’interno di Visual Studio (pannello “Solution Explorer”) è possibile creare cartelle in cui andremo inserire le nostre classi. Per impostazione predefinita, la struttura di queste cartelle andrà a definire quello che viene chiamato Fully qualified name (FQN), ovvero il nome che identifica in modo univoco la nostra classe: Namespace.NomeClasse. Pertanto, se la nostra solution è organizzata in questo modo il FQN di customer sarà Sample.Domain.Customer. Mano a mano che il progetto cresce potremmo trovarci in situazioni in cui la cartelle contengono raggruppamenti logici di file che tuttavia non vogliamo...
Come tutti sapete, la fruizione di un sito web non è più esclusiva di dispositivi Desktop, affiancati oramai da device quali smartphone e tablet di vario tipo. Offrire una User Experience degna di tale nome anche per gli utenti che accedono ai nostri siti con questi dispositivi è diventata quindi una priorità. Il team di ASP.NET fornirà con MVC 4 pieno supporto al mobile, e sono già disponibili esempi che illustrano le funzionalità della prossima versione: ASP.NET MVC 4 Mobile Features. In MVC3 è possibile generare pagine ottimizzate seguendo i seguenti passaggi. Create...
Che il vostro progetto sia sviluppato in WPF, Silverlight o Silverlight per WP7 un aspetto fondamentale (direi quasi un requisito non funzionale) da soddisfare è il supporto ai designer di Visual Studio/Blend, identificato con il termine “Blendability”. Anche se può sembrare banale, in realtà la faccenda si complica man mano che i nostri ViewModel prendono forma e utilizziamo IoC. In soldoni il Designer non è in grado di rappresentare graficamente una View collegata ad un ViewModel di questo tipo: public MainViewModel(IPersonService personService) { People = new ObservableCollection<Person>(personService.GetAll()); ShowPersonDetailCommand = new RelayCommand(PerformShowPersonDetail, CanShowPersonDetail);...
Installando Visual Studio 2010 per sbaglio ho selezionato Visual Basic come linguaggio predefinito..ovviamente, sviluppando prevalentemente in C#, sarebbe cosa buona e giusta avere C# come linguaggio di default..come fare ad impostarlo?
Navigando nei menù ho trovato che è possibile resettare i settings cliccando su Tools-> Import and Export Settings-> Reset all settings. Si aprirà un wizard che vi darà modo di salvare i settings attuali e scegliere quali nuovi settings impostare..
C# rulez!
Full VISUAL STUDIO Archive