Workshop “Microsoft .NET - Architecting Applications for the Enterprise (2nd Edition)”

Se vi interessano le architetture software e argomenti come DDD e CQRS, non potete perdervi questo :)

Workshop "Microsoft .NET - Architecting Applications for the Enterprise (2nd Edition)" ad Ancona - giovedì' 17 luglio
In occasione dell'uscita della seconda edizione dell'omonimo libro, avremo il piacere di ospitare uno degli autori, Andrea Saltarello.
Insieme a Mauro Servienti ci illustreranno gli argomenti alla base di questo lavoro, la cui prima edizione è diventata uno dei testi di riferimento per quanto riguarda le architetture software nel mondo del .NET Framework.

Se date uno sguardo all'agenda, potete vedere che si parlerà molto di DDD / CQRS / Event Sourcing, temi che valgono anche al di fuori di .NET, perciò siete i benvenuti qualsiasi tecnologia amiate usare!

Per agenda ed iscrizione (gratuita): https://naae2-marche.eventbrite.com

Workshop “Accessibilità del web e delle applicazioni per i disabili visivi”

Segnalo un interessante workshop gratuito che si svolgerà nel prossimo fine settimana (sabato 8 e domenica 9 marzo) a Loreto (AN), su un tema non trattato così di frequente e soprattutto condotto da persone che vivono personalmente delle condizioni di disabilità, perciò che possono portare la loro esperienza diretta. 

L’incontro è organizzato da alcuni ragazzi dell’Unione Italiana dei Ciechi e degli Ipovedenti e dal Rotary Club Marche, con il supporto di DevMarche.

Questo è il programma:

In questo percorso  composto da 2 giornate si  cercherà di fare chiarezza sui molteplici aspetti legati al mondo dell'accessibilità, partendo dagli strumenti utilizzati dai disabili visivi, per poi fornire i principi necessari per la creazione di tecnologie accessibili.

Sabato 8 marzo

09:00: Introduzione del Rotary Club.
09:15: Introduzione alle tecnologie assistive di supporto alla disabilità visiva (Cristian Bernareggi "Università degli studi di Milano", in collaborazione con Sauro Cesaretti).
11:30: Break.
11:45: Interazione uomo - macchina e tecnologie assistive (Nicholas Caporusso).
13:00: Pranzo offerto dal Rotary Club (da prenotare a parte, modalità descritte di seguito).
14:30: Introduzione all'accessibilità del web
Le linee guida del W3C/WAI: come utilizzarle per una migliore accessibilità e fruibilità del web (Cristian Bernareggi "Università degli studi di Milano", in collaborazione con Sauro Cesaretti).
16:00: Break.
16:15: Le applicazioni web ed il supporto agli screen reader attraverso ARIA (Cristian Bernareggi "Università degli studi di Milano", in collaborazione con Sauro Cesaretti).
18:00: Conclusione della prima giornata.


Domenica 9 marzo

09:00: I dispositivi iOS e Android come supporto alle disabilità visive (Cristian Bernareggi "Università degli studi di Milano").
10:00: Accessibilità delle applicazioni mobile (Cristian Bernareggi "Università degli studi di Milano").
11:00: Break.
11:15: Spazio di condivisione e confronto: presentazione di alcune soluzioni sperimentali di supporto ai disabili visivi.
13:00: Conclusione del workshop e pranzo offerto dal Rotary Club (da prenotare a parte, modalità descritte di seguito).


L’iscrizione (gratuita) può essere effettuata da questa pagina: http://accessibleweb.eventbrite.com

E’ possibile usufruire anche del pranzo gratuitamente, ma deve essere prenotato a parte seguendo la procedura descritta nella pagina di iscrizione.

Pubblicazione della tesina su DDD e CQRS

Diversi di voi sanno che in questo periodo ho scritto una tesina su DDD/CQRS, dal titolo "Gestire la complessità del software con Domain Driven Design e CQRS".
Finalmente ho trovato il tempo di pubblicarla, ed ho deciso di farlo gratuitamente così da dare indietro un piccolo contributo, dato che molte delle cose trattate le ho imparate grazie alla community DDD/CQRS.

Non si tratta di un’introduzione a DDD e CQRS, dato che esistono già molte risorse adeguate a riguardo. Piuttosto, si tratta di un excursus attraverso alcuni aspetti su cui ho voluto porre particolare enfasi, perciò il target più indicato è chi ha avuto già un’infarinatura su DDD e CQRS e vuole approfondirli.

Sarebbe impossibile ringraziare tutte le persone che mi hanno aiutato negli anni a crescere su questi argomenti. Ma un ringraziamento in particolare lo voglio fare al "solito" ziobrando, citato non so quante volte :) , e ad altre due persone che mi hanno "supportato" davvero molto in questo periodo, e non solo dal punto di vista tecnico: Andrea Balducci e Alessandro Giorgetti. Grazie!

Potete scaricare la tesina da qui: http://www.ste8.net/tesi-ddd-cqrs/

Se avete feedback o cose da segnalare, fate pure sapere!
Nei prossimi giorni potrei avere delle difficoltà a rispondere a causa di un piccolo intervento, al massimo lo farò appena mi rimetto in carreggiata :)

Magari in futuro ci saranno degli aggiornamenti al documento, visto che i sistemi descritti nei case study sono in continua evoluzione... già Andrea mi ha cambiato (di nuovo) il motore con cui esegue le projections!

Buona lettura :)

Video e materiale dell’“Asynchronous Programming Lab”

Lo scorso ottobre, grazie ai ragazzi di DotNetToscana ed in particolare a Matteo Baglini, abbiamo riproposto in DotNetMarche il lab sulla programmazione asincrona, tenuto completamente dallo stesso Matteo che, nell’occasione, ha sicuramente dimostrato competenza e direi proprio passione per l’argomento :)

Visto che credo sia sfuggito a suo tempo di “pubblicizzarlo”, segnalo che il materiale dell’evento, compresi i video, sono stati pubblicati: li potete trovare a partire da questo album e dalla pagina dell’evento stesso.

Sicuramente si tratta di materiale da non perdere, visto che, grazie alla disponibilità di Matteo, si ha praticamente a disposizione un corso che affronta le tematiche sia della programmazione asincrona in generale, sia ripercorrendo le varie tecniche che ci hanno accompagnato dalle prime versioni del .NET Framework fino alla versione 4.5.

Grazie Mattè :)

Video e materiale del workshop “CQRS ed Event Sourcing su Windows Azure”

Il 29 marzo grazie ad Alessandro e Mauro abbiamo tenuto con DotNetMarche il workshop “CQRS ed Event Sourcing su Windows Azure: Applicazioni Distribuite, Scalabilità e Security”, la cui ricchezza di contenuti la potete già intuire dal solo titolo :)

Segnalo che il materiale, comprensivo dei video, è stato pubblicato nel canale Vimeo di DotNetMarche, in questo album.

Buona visione :)

Workshop "SQL Start!" ad Ancona (seconda edizione)

Luogo: Università Politecnica delle Marche - Sede di Ancona
Data:  venerdì 28 settembre, intera giornata

SQL Start! è un evento community di una giornata, gratuito, il cui obiettivo è quello di erogare contenuti tecnici a supporto di chi utilizza Microsoft SQL Server.

A SQL Start! potrete incontrare esperti del settore, autori di libri su SQL Server, Microsoft MVPs e colleghi che, come voi, utilizzano SQL Server, per apprendere le best practices e le tecniche utilizzate per risolvere o prevenire problemi, sfruttando al meglio SQL Server.

L’evento è organizzato in collaborazione con UGISS, lo User Group Italiano di SQL Server, e DotNetMarche, la community di sviluppatori .NET marchigiana.

In questa seconda edizione SQL Start! si arricchisce del percorso sulla Business Intelligence, portando a ben 15 ore i contenuti tecnici erogati e beneficiando della presenza degli unici tre esperti italiani certificati SSAS Maestro, la certificazione più completa su SQL Server Analysis Services.

Agenda completa ed iscrizione
La partecipazione all'evento è gratuita, ma la registrazione è richiesta per poter organizzare al meglio la logistica dell'evento. 
L'agenda completa ed il modulo di iscrizione sono disponibili a
questo link.

DDD-Day: pubblicato il materiale (video, slide e codice)

Ci è voluto un po’ più del solito, ma finalmente il materiale del DDD-Day è stato pubblicato, video compresi!

In attesa che vengano fatti i link dal sito del DDD-Day, potete accedere al materiale da questo album di Vimeo: http://vimeo.com/album/1721725 
Associato ad ogni video troverete il materiale della relativa sessione.

Buon divertimento :)

PS: esiste anche un video dell’ultima sessione di Greg Young, per ora lo potete vedere da qui: http://dl.dropbox.com/u/16632432/ddd-day/greg-ddd.m4v

Un pomeriggio con DomusDotNet a parlare di MVVM e Caliburn.Micro

Venerdì ho partecipato all’evento organizzato dai ragazzi di DomusDotNet su Caliburn.Micro (CM), un framework per l’implementazione del pattern MVVM su WPF, Silverlight e Windows Phone 7.

CM è il “fratellino” di Caliburn, un noto framework esistente da anni per gestire sia MVVM che UI Composition, spesso confrontato con Prism per la sua completezza (e purtroppo complessità).
Caliburn.Micro, invece, implementa solo le principali e più comuni caratteristiche che servono alle applicazioni in questo contesto, e grazie ad un sistema basato su convenzioni (convention over configuration) risulta piuttosto semplice da utilizzare, permettendo così di eliminare molto codice infrastrutturale (o meglio… ripetitivo codice di plumbing), che altrimenti il povero sviluppatore dovrebbe scrivere e manutenere per ogni “form”.

Già da quando Rob Eisenberg presentò al MIX 2010 un progettino per costruirsi un framework MVVM in casa, che sarebbe poi diventato proprio Caliburn.Micro, rimasi piuttosto colpito dalle sue potenzialità (trovate qui il video), perciò dopo averlo anche utilizzato in alcuni progetti, ho approfittato dell’occasione per partecipare al workshop romano, dove tra gli speaker c’era anche Marco, che oltre ad essere uno dei fondatori di DomusDotNet, fa anche parte del team di sviluppo di Caliburn e CM.

Inutile dire che le sessioni sono state molto interessanti, unico rammarico avere solamente un pomeriggio per parlarne :)
Dopo una introduzione al pattern MVVM, ed una sua applicazione “manuale” ad un progettino di esempio, entrambe fatte da Massimo, è entrato in scena Marco che ci ha mostrato come sfruttare Caliburn.Micro per semplificarci di molto la vita nello sviluppo.
Interessanti sono stati pure i “trucchetti” mostrati per semplificare lo sviluppo di un paio di situazioni su WP7, in particolare quelle legate a tombstoning e launchers: anche in questo caso CM ci viene in aiuto con soluzioni che definieri “smart”.

Purtroppo Marco ha dovuto tagliare, per mancanza di tempo, su un paio di importanti argomenti gestiti da Caliburn.Micro: quello dell’EventAggregator, un’implementazione del Message Broker, e sopratutto sulle coroutine, un meccanismo che permette di fare da molto tempo, in Caliburn, ciò che sarà possibile con la nota istruzione async di c# 5!
Fortunatamente il video di Rob già segnalato spiega questi argomenti, perciò diciamo che si completa molto bene com quanto ci ha fatto vedere Marco durante le sue sessioni.

Non sono mancante domande, in particolare quella “scontata” che chiede come Caliburn.Micro si posiziona nei confronti del (forse più noto) MVVM Light: da quanto è emerso, probabilmente MVVM Light ha un supporto migliore per il design-time (quindi realizzazione della UI tramite Blend), ma Caliburn.Micro semplifica molto di più lo sviluppo grazie alle sue convenzioni e a strumenti come le coroutine. Se poi qualcuno vuole aggiungere qualche informazioni in più su questo confronto, tramite i commenti, è il benvenuto :)

Progetto di esempio: Shared Bookshelf Manager (http://sbm.codeplex.com/)

Un’altra cosa interessante che ho scoperto durante il workshop è stata l’esistenza di un progetto opensource che i ragazzi di DomusDotNet hanno realizzato per “giocare” con le tecnologie (che presenteranno poi presumibilmente ai workshop).
Mi ha fatto piacere questa cosa anche perchè con DotNetMarche abbiamo parlato per molto tempo di una cosa del genere e non siamo mai riusciti a concretizzarla fino in fondo, principalmente per mancanza di tempo… almeno qualcuno ce l’ha fatta :)

Video dell’evento

Come diceva qualcuno, “two è meglio che one”, così avevamo ben due telecamere… e di conseguenza il doppio dei video.
Potete trovarli, con formati e risoluzioni diverse, sia su http://vimeo.com/25364908 (video ufficiale) che su http://vimeo.com/album/1625563 (bootleg :), che segnalo solo perchè il codice degli esempi potrebbe essere più leggibile.. in attesa di spostare eventualmente anche questi video sull’account di DomusDotNet).

ETGF

Per il capitolo ETGF (http://etgf.org/), si segnalano degli spaghetti alle cozze e pecorino, presi alla mensa Microsoft, che per quanto possono sembrare un abbinamento strano, erano piuttosto buoni :)

Meglio non citare poi il nome del bar in cui il barista dalla mano pesante ci ha praticamente stesi con un solo aperitivo!!

Frase della giornata

“La view fa la guardona […] sul model” (cit. Massimo per spiegare MVC)

Perchè i sistemi di controllo di versione distribuito gestiscono meglio branch e merge?

Uno dei principali vantaggi dei DCVS indicati da molti articoli è quello di gestire meglio il processo di branch, ma spesso, specialmente in discussioni “introduttive”, non viene indicato perché ciò avviene.

In poche righe, riesce a farlo Joel Spolsky in questo tutorial di “rieducazione” degli utenti SVN al mondo dei DCVS, in particolare a Mercurial: http://hginit.com/00.html

Nel paragrafo “One more big conceptual difference” viene spiegato come ciò dipenda dal diverso comportamento tra SVN, che esegue durante la merge un confronto tra revisioni, e i DCVS (o perlomeno Mercurial), che invece confrontano dei changeset…. leggete poi l’articolo per ulteriori dettagli :)

[ITPRO] Materiale dell’evento Incontri Tecnologici: soluzioni per la virtualizzazione

La mattina del giorno in cui abbiamo fatto con DotNetMarche il workshop “Community Tour CMS Edition”, di cui il buon Michele ha già segnalato il materiale, dei nostri amici, Giuliano e Marco, hanno tenuto un evento sulla virtualizzazione, parlando in particolare di come utilizzare Virtual Box e Microsoft Hyper-V rispettivamente in scenari che potremmo semplificare in “personal” ed “enterprise”.

Anche se il taglio è orientato più ai sistemisti che ai dev, sicuramente a qualcuno potrà interessare :)

Trovate i video qui, a breve ci saranno anche le slide: http://vimeo.com/album/1617629