Technology Experience
.NET World

Articolo del mio amico Giancarlo su Linq to SQL

E bravo il mio amico Giancarlo, che ha pubblicato un ottimo articolo su Linq to SQL. Prendete questo giudizio con le dovute cautele, perchè conosco poco Linq e dintorni e quindi la mia idea potrebbe essere sfalsata dal fatto che questo Linq mi sembra tutto rose e fiori.

Linq to SQL è l’Object Relational Mapper di Microsoft, capace – detto brutalmente – di persistere su database il proprio domain model, composto da oggetti di business. L’articolo descrive molto bene l’architettura di Linq to SQL, il DataContext, l’Identity Map, il tutto con un linguaggio semplice e chiaro, anche per chi come me non ha mai sentito parlare – o comunque non ha mai visto in modo serio – Linq e/o tutte le sue applicazioni. Se lavorate in ambiente Microsoft, non potete ignorare Linq, che è una delle novità del .NET Framework 3.5. Buona lettura!

Link : http://www.microsoft.com/italy/msdn/risorsemsdn/sql/linq_sql.mspx

Technorati Tags:    

Send to Kindle
My daily work

Utente finale: se lo conosci non ti uccide

  1. Non cercare di capire l’errore che è capitato l’utente finale: te lo spiegherà sempre male.
  2. Non aiutare mai l’utente finale: se gli dai una mano, egli si prenderà il braccio.
  3. Se tu hai sviluppato la parte A di un applicativo, il tuo collega la parte B, l’altro collega la parte C e quello in fondo al corridoio ha sviluppato la parte D, l’utente finale ti dirà che non funziona la parte K, sviluppata da un tuo ex-collega consulente che se ne è andato da 6 mesi.
  4. L’utente finale segnalerà sempre un problema che non è di tua competenza.
  5. L’utente finale non saprà mai aiutarti concretamente nel spiegarti il suo lavoro per redarre l’analisi del software che dovrà aiutarlo.
  6. Nel caso in cui il punto (5) non fosse soddisfatto, non gasarti a vuoto (citazione da Rossella Brescia): la sua spiegazione cambieranno ogni 1d8+2 turni (*), e le tue conclusioni/considerazioni/presupposti lo faranno di conseguenza.

Ottimista, vero?

(*) : 1d8 sta ad indicare un lancio fatto con il dado ad otto facce. Per maggiori informazioni, chiedere a qualsiasi giocatore di Dungeons and Dragon (o sue varianti). Un turno equivale – se non sbaglio – a 10 minuti.

Technorati Tags:  

Send to Kindle
Software

Ma Messenger pinga o viene notificato?

A volte Messenger non lo capisco proprio. Non mi parte nell’avvio automatico del PC, lo devo lanciare manualmente da uno shortcut della mia toolbar, e mi va bene così, perchè ci sono momenti o giorni in cui non voglio o non riesco a chattare.

Quello che non ho mai saputo è la modalità con cui Messenger “capisce” quando un nuovo contatto fra quelli nella mia lista arriva on-line. Non capisco in base a che criterio vengo informato del fatto che “XYZ” si sia connesso: fa polling (no!) o viene notificato in qualche modo (spero di sì).

Supponiamo che non faccia polling – cosa più ovvia. Mi spiegate per favore come mai ci sono momenti in cui vengono rilevati fino a 3 contatti che si connettono istantaneamente? Questo è un tipico comportamento di applicazione che fa polling, perchè aggiorna la situazione ogni n minuti, e se dall’ultima volta (n minuti prima) si sono connesse 3 persone, ecco che la mia notifica riguarda contemporaneamente 3 persone. Non è che si sono connesse tutte in quel momento. Dubito che 3 persone della mia lista si connettanno tutte insieme nell’istante:

DateTime instant = new DateTime(2008, 2, 5, 12, 01, 32, 781);

E’ solo un aggiornamento della situazione, per cui in quegli n minuti può accadere di tutto.

Qualcosa di storto deve esserci.

Technorati Tags:  

Send to Kindle
.NET World

Se il Binding di WPF non funziona…

Le forze vitali mi stanno abbandonando. Detto più terra terra: ho sonno.

Ma ho trovato questo post che potrebbe darmi qualche spunto per debuggare le applicazioni WPF – semplici o meno semplici – che sto scrivendo. Prendiamo un semplice blocco XAML come questo:

<TextBlock FontSize=”12″ Margin=”4″ Text=”{Binding ElementName=tagsListBox, Path=SelectedItems.Count}” />

Lo XAML inserisce una TextBlock che visualizza il numero di elementi selezionati nella ListBox tagsListBox. La proprietà Path che ho specificato esprime la proprietà di cui voglio mostrare il valore; ricordo nel frattempo che WPF supporta le proprietà come dire…annidate…cioè posso separare con il punto fino a navigare le proprietà, esattemente come faremmo nel codice.

Se il binding non funziona – se per esempio specificate una proprietà che non esiste, oppure che non può essere bindata, non avete alcune eccezione. Semplicemente il binding non funziona, e quindi vedreste la TextBlock sopra completamente vuota.

Questo post spiega e mostra come debuggare il binding di WPF. In particolare, dice che se per qualsivoglia motivo avete da qualche parte un binding che non funziona, Visual Studio ve lo segnala nella Output Window, tra l’altro con un bel messaggio che vi spiega il perchè. Non me ne ero mai accorto, giuro. Non che sia una cosa che faccia tutti i giorni – purtroppo WPF non è certamente il mio lavoro quotidiano, però ci sono stati giorni in cui studiavo a tempo pieno WPF, per cui…

Un altro metodo passa attraverso l’uso dei Converter, ma qui la cosa è più intuitiva. Alla fin fine è una classe, per cui basta mettere un breakpoint per capire come un determinato valore in input viene convertito e mandato in output per far funzionare il binding.

Ci sono altri metodi per debuggare i binding in WPF, descritti molto bene nel post a cui darò sicuramente un’occhiata più approfondita.

Technorati Tags:    

Send to Kindle
My personal life

Certe cose non cambiano mai

Da che mondo e mondo, sono sempre stato un grande distratto. Se faccio mente locale, mi rendo conto di aver perso molte cose nel mio passato. Senza andare troppo indietro nel tempo, probabilmente la prima cosa che ho perso è stato un cappellino dei San Francisco 49ers, di pelle nera, a Praga – quando ero in gita in 5° superiore (o era la 4°?). Poi ho perso diverse volte il portafoglio (una volta al mio distributore di benzina di fiducia, un’altra volta a Roma). Altre volte ho dimenticato il cellulare o il palmare in qualche locale, me ne sono accorto in tempo e sono tornato indietro a prendermeli.

Questa abitudine a perdere le cose non accenna a diminuire con il passare del tempo. Pensavo di essere migliorato, ma non è così. Durante la serata che ho passato con i colleghi ho lasciato il mio berretto di lana da rapper sull’Alfa 147 di un mio collega: me l’ha riportato il giorno dopo.

Venerdì sera, insieme a Lorenzo, Janky, Alessandro, Vincenzo, Michele e tanti altri, dopo aver bevuto qualche birra, ho lasciato lì la mia sciarpa. Me ne sono accorto questa mattina, ma fortunatamente quando sono arrivato in ufficio ho saputo che il buon collega Vincenzo me l’ha recuperata, e quindi me la sono ritrovata lì vicina alla mia postazione.

Domanda: dove avrò mai la testa, mannaggia la miseria?

Send to Kindle
.NET World

Da Febbraio rivoluzione negli MSDN Subscriber Download

Come riporta l’home-page di MSDN:

In late February we will launch the biggest update to the MSDN Subscriber Downloads experience. We are making it a lot easier and faster to find your downloads and access your Product Keys, and we’re adding new features to help with exploring available content.

Sarà per questo che in questi giorni ho un po’ di difficoltà a loggarmi alla mia MSDN Subscription. A dir la verità, ho anche diversi problemi semplicemente a navigare, da casa mia, chissà perchè.

Tra l’altro, oggi 1° Febbraio scade l’MSDN Premium che un anno fa UGIdotNET volle regalarmi come premio per aver contribuito attivamente alla community con tutti i miei post che, lo voglio ricordare, hanno permesso a tanti di prendere le certificazioni. Sarà stata pure una banalità rispetto ad altre cose più complesse, ma la soddisfazione è stata davvero tanta.

Grazie ancora di tutto cuore, ragazzi!!!

Technorati Tags:   

Send to Kindle
.NET World

WPF con Expression Blend: ragionamenti e qualche link

E’ da un po’ che avevo installato sul mio Vista l’ultima release di Microsoft Expression Blend 2 – December Preview (EB2), ma non gli avevo mai dato un’occhiata seria. Vorrei provarci, anche se un certo Corrado mi ha detto che a lui non piace molto lo XAML generato da questo tool che però, volente o nolente, serve per essere un po’ più produttivi con Windows Presentation Foundation.

Ho letto l’elenco delle features. Alcune di queste sono quasi ovvie (Synchronized File Changes, Keyboard Shortcuts, Search Text Boxes), mentre altre sono decisamente più interessanti.

Per esempio, con EB2 le soluzioni ed i progetto che create sono a tutti gli effetti soluzioni Visual Studio 2008. Prima di storcere il naso, fermatevi: non è vero che dovete comprare per forza una licenza di Visual Studio 2008: potete usare anche la versione Express, completamente gratuita.

EB2 ha features avanzate che – così sembra – gli permettono di manipolare con più disinvoltura storyboard, animazioni, keyframes, path, oggetti 3D e via dicendo. Magari non è una cosa che utilizzerò tutti i giorni, però è bello saperlo.

Come dicevo all’inizio, mi piacerebbe dedicare un po’ di tempo a questo EB2. Tra l’altro, ho scoperto l’esistenza di Microsoft Expression Blend Bible, disponibile anche fisicamente presso la Hoepli qua a Milano (ad un cambio decisamente sfavorevole!). Ma qualcuno non me l’ha consigliato: effettivamente EB2 è talmente una novità, che scrivere un buon libro è un azzardo e sicuramente impegnativo. Questo Microsoft Expression Blend Unleashed, in uscita il 7 Luglio 2008, mi dicono essere un pochino migliore.

Per ingannare il tempo, sto anche dando un’occhiata a questo sito, che comprende tutorial, blogs e forum su Expression Blend. Aggiornato non molto spesso, vedremo in futuro.

Technorati Tags:     

Send to Kindle
My personal life

Nikon? Mai sentita prima d’ora…

Ieri sera torno a casa da un’altra giornata un po’ intensa, sia per motivi personali (salute), sia per motivi lavorativi. Avevo tutta la voglia di fare qualcosa di rilassante, per svagarmi un po’. Ma qualcosa è andato storto.

Durante la cena, la mia sorellina si avvicina e mi fa: “Igor, ho bisogno di una cosa urgente!“.
Io: “Cosa, Sabri?
Sabri: “Io e le mie amiche abbiamo fatto un video musicale…lo abbiamo ripreso con la fotocamera…mi dovresti tagliare l’inizio e un pezzetto alla fine, poi lo dovresti mettere su questa scheda di memoria, e poi mi dovresti masterizzare un CD/DVD con su il filmato.“.

Il momento di panico è un momento che in realtà dura 4-5 secondi. Penso velocemente a quali software ho installato sul PC per fare ‘sta cosa, e penso anche che la mia serata tranquilla è andata a farsi friggere.

Io, sotto shock: “UUhh, e poi? Nient’altro? Per quando tutta ‘sta roba?
Sabri: “Entro domani mattina!
Io, sudando: “Ma la fotocamera ce l’hai qui? C’è su il filmato?
Sabri: “Sì, è qua, è di una mia amica.
Io: “Di che marca è?” (nel tentativo di capire con che macchina avrò a che fare)
Sabri si rigira fra le mani la macchina digitale, cercando la scritta che le possa dire finalmente la marca. Alla fine la trova, davanti, proprio sotto l’obiettivo.
Sabri: “Trovata è una Nikon. Mai sentita prima!

Non posso competere con Gaia di un certo Andrea Boschin, ma devo dire che anche la mia sorellina 13enne ogni tanto le spara grosse!!!

Technorati Tags:

Send to Kindle