Creare degli snippet di codice personalizzati all'interno di Visual Studio può essere molto utile soprattutto se si hanno parti di codice che si ripetono spesso ma che non si possono "astrarre" in alcun modo. Durante lo sviluppo di web form quando definiamo delle proprietà su una pagina, di default il loro valore non viene mantenuto tra i vari postback. Un modo per ovviare a ...

Oggi costruiamo una classe che permette di produrre tutti i numeri di fibonacci (più piccoli di Int32.MaxValue). Per farlo implementiamo l'interfaccia IEnumerable<int> e quindi per ottenere i numeri in successione dovremo eseguire una foreach su una istanza della classe. L'implementazione non comporta particolari difficoltà, l'unica attenzione va fatta alla necessità di ...

Molto spesso può essere utile avere un modo rapido per ottenere un'istanza di default di una classe. Il valore  default(T) per una classe (non struct!) è sempre null e quindi non ci torna molto utile. Vediamo quindi come produrre un'istanza default un'unica volta e recuperarla ogni volta che ne abbiamo bisogno. public class Dummy { public static Dummy Default { ...

Ogni volta che nello sviluppo di una pagina Web Form dobbiamo effettuare il databind di una DropDownList, vanno settate diverse proprietà e chiamato il metodo Databind() e se poi vogliamo aggiungere servono altre righe di codice. Se in una pagina abbiamo numerose DropDownList questo porta ad una notevole ripetizione di codice. Un extension method sulla classe DropDownList ris ...

I delegati sono dei tipi che incapsulano uno o più metodi, nel framework .NET sono usati in abbondanza e sono assolutamente essenziali nella gestione degli eventi. Nella gestione degli eventi di una web form ASP.NET il framework rende molto facile e intuitivo utilizzarli anche senza capire come funzionano effettivamente. Anche LINQ fa un utilizzo massivo dei Per facilitare il ...

Oggi utilizzeremo la libreria SignalR per creare una semplice pagina web (html!) che permetterà di "scambiare messaggi" tra due utenti diversi utilizzando un semplice input. SignalR è una libreria fornita da Microsoft, composta sia da codice da eseguire lato server sia codice da eseguire lato client. La libreria aggiunge delle funzionalità "real-time" alle pagine web e ci perme ...

Utilizzando una classe LinqToSql per interagire con un database è estremamente utile avere la possibilità di richiamare un'entità per il suo id. Di base l'unico modo per farlo è chiamare il metodo SingleOrDefault o FirstOrDefault sulla tabella con un'opportuna lambda expression, ad esempio: table.FirstOrDefault(p => p.id == idEntita); Per quanto il codice sia breve e sem ...

Continuiamo la nostra serie di extension methods da utilizzare per facilitarci il lavoro nello sviluppo web con il framework asp.net webforms. Oggi vediamo il codice, peraltro molto semplice, per selezionare diversi valori di una checkboxlist: public static void SetSelectedValues(this CheckBoxList ckl, IEnumerable<string> selectedValues) { if (ckl == null) ...

Il null coalescing operator è un utile strumento quando si è in presenza di valori nullable tuttavia è bene fare attenzione alla precedenza degli operatori. Recentemente abbiamo trovato un bug nel nostro codice dovuto proprio ad un comportamento inaspettato (per noi!) della precedenza degli operatori, il codice era qualcosa del tipo int? primoIntero = 100; int? secondoIntero ...

Una piccola mancanza del framework .Net è un overload di String.Contains con parametri string e StringComparision. Il problema si risolve rapidamente con un semplice extension method: public static bool Contains(this string source, string toCheck, StringComparison comparer) { return source.IndexOf(toCheck, comparer) >= 0; } Grazie a questo accorgimento, potremo ...