Non c'è niente di più semplice e veloce di compilare il sorgente bootstrap sass dentro un progetto ASP.NET di Visual Studio! Come prima cosa installatevi questa estensione gratuita di Visual Studio: https://marketplace.visualstudio.com/items?itemName=MadsKristensen.WebCompiler Se vi state chiedendo chi è Mads Kristensen, sappiate che è l'uomo dietro alle ultime versioni ...
React Development Blog
X.PagedList e Knockout JS
Oggi utilizziamo il pacchetto NuGet X.PagedList e Knockout js per crare una griglia con paginazione caricata completamente in ajax per un progetto ASP.NET MVC. Cominciamo con creare un progetto ASP.NET MVC e installiamo i seguenti pacchetti NuGet e tutte le loro dipendenze: X.PagedList.MVC v. 5.3.0.5300 knockoutjs v. 3.4.2 jQuery v. 3.1.1 Per caricare una griglia ed ef ...
Forzare la localizzazione dei ToString()
La localizzazione è uno dei problemi che un qualunque sviluppatore si troverà prima o poi ad affrontare. Sviluppando sul proprio pc o server è molto semplice dare per scontato che metodi come il ToString() facciano esattamente quello che ci aspettiamo convertendo i valori nel formato del nostro pc o server. Chiaramente questo potrebbe creare problemi non appena spostiamo il no ...
Selectize.js e Web API
Oggi mostriamo come utilizzare il componente Selectize.js all'interno di un progetto ASP.NET con l'utilizzo delle Web API per caricare i valori nel menù a tendina. Per iniziare: Creare un nuovo progetto ASP.NET di tipo Web API. Aggiornare tutti i pacchetti NuGet della soluzione. Aggiungere alla soluzione il pacchetto "selectize" alla versione più aggiornata, 0.12.1 al mom ...
Web Forms e dependency injection
La dependency injection è una funzionalità che non è supportata nativamente dalle web form. Tuttavia utilizzando la libreria Autofac è possibile in modo molto semplice e veloce utilizzare la dependency injection nei progetti web di tipo web form. Iniziamo con l'installare i due pacchetti nuget: Autofac Autofac.Web Registriamo i moduli necessari per il corretto funzionam ...
Caricare un file sul blob storage azure
Caricare un file del blob storage è molto semplice e si può fare il tutto con poche righe di codice. Preliminare all'esecuzione del codice è un account azure su cui abbiamo già attivato il servizio di storage, per intenderci quello dello screenshot sotto. Creato un progetto di qualunque tipo, ad esempio web o console application, è innanzitutto necessario installare i seg ...
Validazione degli argomenti e yield return
In un articolo precedente abbiamo spiegato l'utilizzo del costrutto "yield return", oggi vediamo come validare in maniera efficace gli argomenti di un metodo che utilizza al suo interno lo yield return, in particolare mostreremo la strategia che viene utilizzata nell'implementazione di LINQ. Molti metodi di LINQ hanno un'esecuzione differita: le query non vengono eseguite nel ...
Currying e applicazione parziale di funzioni
In C# siamo abituati a definire ed utilizzare funzioni che hanno parametri multipli in ingresso, ad esempio l'addizione. Se per qualche motivo volessimo o avessimo solamente funzioni che prendono in input un unico parametro potremmo comunque rappresentare ed utilizzare le funzioni che oggi definiamo con più parametri? La risposta è sì e questo procedimento di riduzione delle f ...
Closure e variabili catturate
In C# è possibile definire delle funzioni in linea e utilizzarle come tutte le altre variabili ovvero passarle come parametri ai metodi, restituirle come risultato di un metodo e in più, essendo funzioni, possiamo invocarle. Uno scenario ricorrente in questi casi, sicuramente familiare a chi ha utilizzato LINQ in una delle sue tante forme, è quella di utilizzare all'interno di ...
Approfondimento su Linq - Metodo Select pt 1
Cominciamo ad analizzare oggi il metodo LinqToObjects Select. Vediamo i due overload presenti public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector) public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<T ...