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 effettu ...

Un aspetto abbastanza scomodo della CheckBoxList ASP.NET è la mancanza di un metodo o una proprietà che restituisca la lista degli item correntemente selezionati. Non è difficile scrivere un metodo statico in una classe di utilità che faccia esattamente questo lavoro. Tuttavia preferiamo utilizzare un extension method per avere "a portata di mano" il nostro codice e per un util ...

Sfruttando gli extension methods (già incontrati nel nostro blog) vediamo come pulire un pannello di ricerca di una pagina ASP.NET Web Forms. Questa è una situazione che può capitare numerose volte e rappresenta una lavoro noioso e ripetitivo e quindi particolarmente soggetto ad errori. Supponiamo di aver racchiuso tutti i nostri controlli all'interno di un pannello <asp:P ...

Durante lo sviluppo ASP.NET può essere utile o necessario accedere a controlli, metodi e/o proprietà della master page di una determinata web form. Ovviamente vorremmo farlo accendendo alla proprietà "Master" della pagina tuttavia questa proprietà è un'istanza della classe "System.Web.UI.MasterPage" che non contiene (ovviamente!) le nostre funzionalità custom. Sembra inoltre im ...

Oggi vediamo come risolvere un problema piuttosto fastidioso che si può verificare sviluppando un sito web con visual studio: il sito è estremamente lento con internet explorer. Nel nostro caso una pagina con una piccola griglia e una qualunque dropdownlist dava enorme problemi di usabilità. In particolare il problema per noi si verificava su IE 11 ma non su Chrome, Firefox non ...

Oggi dimostriamo un semplice utilizzo del ThreadPool di .NET osservando in maniera molto semplice che i Thread vengono riutilizzati. Per accodare una richiesta al ThreadPool utilizzeremo la classe Task, con un semplice contatore terremo traccia dei Task creati e stamperemo a video l'Id del Thread che lo esegue. var tasks = new Task[100]; for (int i = 0; i < 100; i++) { ...

Facendo seguito all'articolo precedente, oggi vedremo come gestire gli errori di un'applicazione AngularJs. Il nostro web service potrebbe infatti ritornare una serie di errori, in base all'hash della URL fornito dall'utente. Nella funzione: myApp.config(function($httpProvider, $routeProvider) { }); Occorrerà aggiungere il seguente interceptor: $httpProvider.interceptors.pus ...

AngularJS è un framework JavaScript che permette di estendere una semplice pagina HTML e renderla dinamica. I componenti principali di un'applicazione AngularJS sono i template ed i controller, un'altra feature importante e che vedremo in questo articolo è il modulo ngRoute.   Registriamo la nostra applicazione con le relative dipendenze. var myApp = angular.module('myApp', [ ...

In un recente progetto abbiamo utilizzato la libreria javascript jQuery Flot per disegnare dei semplici grafici di tipo "stacked bars". I grafici che dovevamo rappresentare avevo dati "sparsi" ovvero non tutte le barre contenevano tutti i dati. Ad esempio Come è ben visibile da grafico la prima colonna ha una piccola linea verde. Il "dato verde" in realtà non contribuisce alla ...

Durante le mie svariate esperienze fatte nello sviluppo sharepoint e in particolare nello sviluppo di web part si è presentata frequentemente la necessitià di dover utilizzare risorse esterne (css custom, file javascript, jquery, bootstrap ...). Magari lo sapete già ma io l'ho scoperto di recente dopo averlo cercato su internet svariate volte e lo voglio condividere spero vi t ...