Completata l'agenda della sessione ASP.Net 4 e IE9

11. novembre 2010
Il 16 novembre si terrà un nuovo evento gratuito organizzato da DotDotNet e la SharePointCommunity. Ho finito l'agenda della sessione ASP.Net 4 e Internet Explorer 9 [Prosegue]

.net Framework, ASP.net, C# e VB.net, Visual Studio , , ,

log4net, il Framework .Net 4.0 e il Client Profile

10. novembre 2010
log4net per funzionare correttamente con il Framework 4.0 richiede la versione full e non il Client Profile [Prosegue]

.net Framework, C# e VB.net, Visual Studio , , ,

Community Tour Autunno 2010 a Bologna

13. ottobre 2010
Evento di community DotDotNet. Stefano Benedetti terrà la sessione Powerful ASP.NET 4.0 [Prosegue]

.net Framework, C# e VB.net, Visual Studio , , , ,

Visual Studio 2010 Community Tour @ Cesena

15. maggio 2010
Evento DotDotNet a Cesena sul Visual Studio 2010 e Framework 4.0 [Prosegue]

.net Framework, C# e VB.net, Visual Studio

Programmazione parallela: pensieri sparsi

13. aprile 2010
L'esecuzione di processi in multithreading è sempre più necessaria per sfruttare tutti i core delle moderne CPU. Le librerie PLINQ e F# semplificano l'esecuzione in multithreading. [Prosegue]

.net Framework, C# e VB.net

DevCon 2009 - Giorno 1

27. maggio 2009
Dopo il corso TDD seguito presso Overnet qualche mese fa, l'annata formativa prosegue con le 3 giornate di DevCon che ogni anno il gruppo di Devleap propone con tutte le novità più recenti o di prossima diffusione di Microsoft nel settore sviluppo ed a seguire una giornata del Basta! Italia on tour. La prima giornata della DevCon 2009 non si è focalizzata su di un singolo aspetto tecnologico ma sugli aspetti architetturali di una applicazione completa a partire dal database su su fino alla UI. Molto fluida la sessione a 4 mani di Rob e Paolo, che in maniera molto affiatata hanno affrontato una intera giornata alternandosi ogni 2-3 minuti circa senza soluzione di continuità. Allo stesso modo hanno mostrato tutta la loro esperienza di speaker passando continuamente da slide a codice e viceversa (peccato per le bizze del proiettore...) La giornata ha avuto come base l'applicazione Estate Management che DevLeap utilizza come strumento formativo fino dalla versione 1 di .Net e ne ha ripercorso l'evoluzione fino ad oggi per poi mostrare le novità applicabili a partire dal Framework 3.5 in poi. Ho trovato molto interessante tutta la parte incentrata sul DAL che ha mostrato come evolvere il data access layer a partire dai recordset arrivando fino a Entity Framework passando attraverso LinqTo2SQL. Questa evoluzione sul DAL è la stessa che ho percorso negli ultimi 5 anni. Tutti temi noti per me quindi ma, dato che la giornata voleva essere di tipo architetturale, è stato interessante vedere dove vengono messe le classi e come vengono strutturati i progetti da chi sviluppa quotidianamente applicazioni enterprise. Ma soprattutto vedere tanti piccoli e grandi accorgimenti utilizzati dal gruppo che sicuramente fanno la qualità di una applicazione. Particolare attenzione è stata posta su come mantenere astratto, isolato e pluggable il DAL per poterlo sostituire semplicemente modificando il file config. Molto belle ed eleganti anche le soluzioni proposte negli ambiti di autenticazione, autorizzazione e validazione dei dati. In questo ambito lo spunto fornito di utilizzare le regole di WF senza utilizzare tutto WF sarà di sicuro oggetto di un mio approfondimento. Meno profiquo è stato il pomeriggio soprattutto nella parte incentrata su SOA e WCF su cui mi sono decisamente perso, probabilmente a causa del mix di stanchezza mia da un lato, di accelerazione degli speaker e di proliferazione esponenziale dei progetti della soluzione (85...) Di sicuro l'applicazione vista oggi rappresenta ad un elevatissimo livello il concetto fondamentale di DISACCOPPIAMENTO ed è una base architetturale che affronta tutti gli aspetti di un applicazione con tutte le tecnologie disponibili fino ad oggi: datareader, linq, linq to sql, entity framework, WF, WCF, Asp.net, MVC, SOA, Ado.Net Data Services...

.net Framework, ASP.net, C# e VB.net, Visual Studio

Listview, Entity framework e navigation property

11. novembre 2008
Stavo creando una semplice ListView utilizzando Entity Framework sulla tabella Clienti. Premetto che la tabella Clienti è in relazione con la tabella Agenti e quindi EF crea correttamente la Navigation Property tra l'entity clienti e l'entity agenti. Creo la ListView, aggiungo il LinqDataSource e faccio il binding tra listview e datasource. Fin qui tutto ok, anche il designer funziona correttamente e mi mostra tutte le colonne. A runtime ricevo invece l'errore: DataBinding: '[Agenti' is not a valid indexed expression. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.ArgumentException: DataBinding: '[Agenti' is not a valid indexed expression. Source Error: Line 230: </td> Line 231: <td> Line 232: <asp:Label ID="Agenti_IDAgenteLabel" runat="server" Line 233: Text='<%# Eval("[Agenti.IDAgente]") %>' /> Line 234: </td> Tramite la navigation il designer ha generato una colonna per mostrarmi l'ID dell'agente collegato al cliente. Il problema è nelle parentesi quadre che sono state aggiunte all'interno del metodo Eval. Modificato il tag rimuovendo le parentesi quadrate Text='<%# Eval("Agenti.IDAgente") %>' /> tutto funziona correttamente

ASP.net, C# e VB.net, Visual Studio , ,

CausesValidation e TableLayoutPanel: viene sempre eseguita la validazione della form

1. marzo 2008
Nelle Windows Form normalmente imposto la property CauseValidation a False per il pulsante annulla. In un progetto mi sono accorto che non funzionava correttamente: cioè anche impostando CauseValidation a False la validazione dei controlli veniva comunque eseguita. Ho notato che il problema è legato al fatto che i pulsanti sono inseriti in un TableLayoutPanel e quindi è come se fosse prioritaria la proprietà CausesValidation del TableLayoutPanel. Per far si che il pulsante Annulla non scateni la validazione è quindi necessario impostare a False anche la property CausesValidation del TableLayoutPanel. 

.net Framework, C# e VB.net