Qualche tempo fa abbiamo visto qui come costruire la successione di Fibonacci sfruttando gli iteratori e l'interfaccia IEnumerable<T>. Come possiamo generalizzare questo approccio? Quello che abbiamo fatto è stato generare a partire da un seme una successione di valori finché una certa condizione non diventasse falsa. Questo procedimento non è nuovo ed è stato applicato ...
React Development Blog
Snippet Visual Studio personalizzati
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 q ...
Fibonacci Enumerable
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 r ...
Valore di default di una classe
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 { get; pri ...
Bootlint, un aiuto durante lo sviluppo di pagine basate su Bootstrap
Oggi condividiamo con voi un metodo rapido e molto semplice per aiutarvi nella creazione di pagine web basate sul famoso framework html/css/javascript bootstrap. Per verificare che il markup che avete costruito sia corretto rispetto ai requisiti dei componenti di bootstrap vi basta aprire Chrome, gli strumenti per sviluppatori e incollare nella console il seguente codice (fu ...
Extension Method per il databind di DropDownList
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 riso ...
Delegati, una semplice implementazione tramite interfacce
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 l ...
Validazione .Net con stile Bootstrap
Tramite l'override della funzione javascript ValidatorUpdateDisplay(val) è possibile rendere tutti gli errori di validazione con lo stile Bootstrap. La funzione in oggetto è la seguente: function ValidatorUpdateDisplay(val) { if (!val.isvalid) { $(val).parent().data('val-id', $(val).attr('id')); $(val).parent().addClass('has-error'); } else { ...
SignalR, un semplice esempio.
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 ...
Metodo Generico GetById con Expressions Trees
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 sempli ...