Una funzionalità interessante e forse poco utilizzata nello sviluppo di applicazioni web .NET sono le Action (o callback). Per chi ha sviluppato applicazioni desktop o javascript conosce la loro utilità, soprattutto quando si ha la necessità di gestire degli eventi. In un sito web C# diventano molto utili nel momento in cui pagine o controlli diversi interagiscono tra loro: Ma ...
React Development Blog
Come estendere classi pre-esistenti
In alcune situazioni vorremmo poter estendere classi esistenti nel framework o il altre dll oppure potrebbe essere necessario estendere ad esempio le classi autogenerate ad esempio da Linq to Sql. Per farlo abbiamo a disposizione due diverse strade (oltre all'ereditarietà). Se una classe è dichiarata con la keywork "partial" è possibile estenderla aggiungendo metodi e propri ...
Primi passi con F# - La successione di Fibonacci
Oggi vediamo un esempio di funzione ricorsiva e di pattern matching con F#. Per farlo presenteremo una semplice implementazione della notissima funzione di Fibonacci. La funzione che implementeremo riceverà in input un intero n e restituirà l'n-esimo numero della successione di Fibonacci. Per maggiori dettagli sulla matematica consigliamo wikipedia. Il codice consisterà esse ...
Thread Safety in practice
Vediamo innanzitutto come instanziare ed avviare due thread. Nel nostro esempio, i due thread simulano del lavoro intensivo da eseguire in background e ritornano. static bool done = false; ... Thread a = new Thread(task); a.Start(); Thread b = new Thread(task); b.Start(); ..... static void task() { if (!done) { ...
Windows Authentication in ASP.NET, risolvere l'errore di accesso negato.
Se avete mai avuto a che fare con l'autenticazione windows su ASP.NET avrete sicuramente visto numerose guide che suggeriscono di aggiungere al web.config le seguenti righe et voilà! Non proprio in effetti. Potrebbe capitare di ricevere un errore di accesso negato del tipo: Errore server nell'applicazione '/'. Accesso negato. Descrizione: Errore durante l'a ...
Windows Phone Tombstoning
Facendo seguito all'articolo sulla navigazione, oggi spiegheremo come preservare lo stato di una pagina. Dopo la disattivazione di una App (l'utente preme il tasto super) può capitare che Windows Phone, per liberare memoria, metta l'applicazione nello stato chiamato "Tombstoned". In questo stato la nostra app non viene preservata, quindi il resume andrà fatto manualmente.La pa ...
Trovare i K numeri piu grandi tra N
Oggi vediamo come affrontare in maniera efficiente la ricerca dei K numeri più grandi tra N elementi. Per semplicità affronteremo il caso di K=100 e N=1000000 quindi il nostro problema è trovare i 100 numeri più grandi tra 1000000 dati. Per farlo faremo uso di un binary heap (info su wikipedia). Un binary heap è un albero in cui i nodi rispettano sempre la relazione p ...
Parallel Linq, un semplice esempio
Oggi vi proponiamo una semplice console application che vi permetterà di testare rapidamente la libreria Parallel Linq (documentazione). Ovviamente scalfiremo solo la superficie delle potenzialità di Parallel Linq e sicuramente per utilizzarlo in un ambiente di produzione saranno necessarie attente riflessioni sull'effettiva utilità dipendente molto dalla potenza di calcolo del ...
SharePoint 2013 Auto-Hosted Apps
SharePoint 2013 ha introdotto le App. Le app SharePoint sono slegate dal sito parent, quindi interagire con il suo contenuto non è un'operazione banale. In questo articolo esporremo i passi da effettuare per fare il deploy di una lista nel parent site al momento dell'installazione della app. Per fare ciò, la app necessita di un web service hostato in una web application differ ...
Primi passi con F# - l'esempio della funzione Totiente
Oggi abbiamo voluto esplorare brevemente il linguaggio di programmazione F# (documentazione) perfettamente supportato da visual studio. Per imparare ad utilizzarlo abbiamo pensato di implementare nuovamente la funzione totiente di Eulero. L'algoritmo è leggermente differente ma fa utilizzo delle prime e più semplici "caratteristiche funzionali" di F#. Essenzialmente defin ...