Technology Experience

Senza categoria

Senza categoria

Accoppiamento tra un’applicazione Silverlight e l’accesso ai dati tramite WCF RIA Services

Devo essere onesto: quando per anni ed anni si parla di tutto tranne che di Web, e poi tutto ad un tratto si vuole cominciare, un po’ di imbarazzo lo si prova. Parliamo di Silverlight 4 e dei WCF RIA Services, disponibili con l’ultima versione del .NET Framework, Entity Framework e Visual Studio 2010. In giro per il web si trovano un sacco di tutorial e di video su come cominciare a realizzare un’applicazione Silverlight, che faccia accesso ai dati sfruttando le tecnologie citate nella frase precedente. Il mio dubbio – che cercherò di esporre nel modo più chiaro possibile – è quello di disaccoppiare ancora di più l’applicazione Silverlight vera e propria dalla sua parte Web, quella che “contiene” tutto ciò che serve per accedere ai dati. Vediamo di introdurre il discorso: lo screenshot qui sotto riporta il Solution Explorer di Visual Studio 2010, con una soluzione minimale (ed iniziale) di un’applicazione Silverlight 4. SolutionExplorer01 Nulla di particolare: l’assembly ApplicazioneCatalogo è l’applicazione Silverlight, mentre ApplicazioneCatalogo.Web contiene l’applicazione ASP.Net che si occupa di deployare la soluzione e di mostrare la pagina ApplicazioneCatalogoTestPage.aspx, che contiene al suo interno il plug-in di Silverlight. Nulla di nuovo. In questo momento non c’è alcun accesso ai dati. Per iniziare, dobbiamo fare essenzialmente tre cose:

  1. aggiungere il data model di Entity Framework nel progetto ApplicazioneCatalogo.Web
  2. compilare tutto quanto 😉
  3. aggiungere una classe domain service nel progetto ApplicazioneCatalogo.Web

Per far ciò – o almeno per farle in pochi secondi – dovete avere un database a cui collegarvi. Compiuti i tre passi descritti qui sopra, avete una situazione simile a questa: SolutionExplorer02 Ho evidenziato in rosso i nuovi files aggiunti. A questo punto, se compilate tutto, accade una cosa strana: all’interno del progetto ApplicazioneCatalogo viene auto-generata una classe UtentiDomainContext. Dove? E’ semplice: per vedere questa classe basta andare su Project –> Show all files. Ecco che magicamente compare il file: SolutionExplorer03 Dentro quel ApplicazioneCatalogo.Web.g.cs è definita la classe UtentiDomainContext, che possiamo utilizzare ovunque noi vogliamo all’interno dell’applicazione Silverlight per accedere a tutte le entità di dominio definite nel data model DataModel.edmx. Ditemi quello che volete, ma a me questa soluzione non è che piaccia tanto. Funziona, è rapida, fa vedere come funzionano i WCF RIA Services, ma se devo sviluppare un’applicazione reale, non si può non osservare che c’è un forte accoppiamento tra l’applicazione e il provider di accesso ai dati. Per favore, se questo accoppiamento non c’è, trovate il modo giusto di farmelo capire! 🙂 Se fosse una classica applicazione client WPF, aggiungerei una banale class library – ApplicazioneCatalogo.DataProvider – che contiene tutta la logica di accesso ai dati. E magari in questo assembly farei un provider generico, che tramite factory o qualche IoC va ad istanziare il provider vero, contenuto magari in ApplicazioneCatalogo.DataProvider.EntityFramework, o ApplicazioneCatalogo.DataProvider.NHibernate, e così via. Invece c’è questo accoppiamento che – tra l’altro – non è realizzato tramite riferimento come accade di solito, ma tramite un’opzione raggiungibile nelle proprietà del progetto ApplicazioneCatalogo: SolutionExplorer04 La ComboBox che ho evidenziato non fa altro che puntare al progetto Web contenente il data model ed il domain service: impostazione che – dietro le quinte – genera la classe indicata prima. Con Silverlight questa cosa non è possibile: se aggiungo una class library, a questa giustamente non posso mettere nei riferimenti il progetto Web, e quindi siamo punto e a capo. L’unico modo che ho trovato in questo momento è quello di aggiungere una seconda applicazione Silverlight che funge da data provider. SolutionExplorer05 Osservazioni importanti:

  1. WCF RIA Services link del progetto ApplicazioneCatalogo: <No Project Set>
  2. WCF RIA Services link del progetto ApplicazioneCatalogo.DataProvider: ApplicazioneCatalogo.Web
  3. L’assembly ApplicazioneCatalogo non sa che l’accesso ai dati avviene tramite Entity Framework: lui utilizza le classi esposta da ApplicazioneCatalogo.DataProvider, e nulla di più
  4. All’interno dell’assembly ApplicazioneCatalogo non viene più generata la classe “nascosta” UtentiDomainContext, a riprova del punto (3)
  5. A questo punto, non mi resta che scrivere il mio data provider dentro ApplicazioneCatalogo.DataProvider, che può utilizzare EF oppure no, e qualsiasi cosa faccia, lo faccia tramite factory, IoC e compagnia bella

L’unica cosa che non mi piace è che sono abituato ad avere riferimenti tramite assembly dll, mentre con tutto il discorso qui sopra l’applicazione principale (ApplicazioneCatalogo) ha un riferimento al data provider (ApplicazioneCatalogo.DataProvider): quest’ultima tecnicamente parlando è un’altra applicazione, un file XAP insomma. Che ne dite, mi sono spiegato?

Send to Kindle
Senza categoria

L’autonomia dei notebook comincia a soddisfarmi

E questo da circa un anno. A giugno dell’anno scorso ho preso un Acer Timeline Aspire 5810T, un’ottima macchina con davvero un’autonomia che mi permette di definirlo davvero “portatile”. In una normale giornata di lavoro lo accendo alle 9 del mattino e dura tranquillamente fino a sera, specialmente se sono in trasferta e quindi magari mi tocca qualche telefonata, qualche riunione, una chiaccherata per chiarire questo o quel punto, etc. etc. Certo che se mi sedessi davanti e lo utilizzassi continuamente, compilando con Visual Studio o editando immagini, la batteria dura un pochino meno, e questo è ovvio.

Ma posso affermare che mi rimane acceso senza alcun problema per 7-8 ore.

Ecco: questa è il livello minimo che attendo da anni. Secondo me, un professionista serio deve poter avere un notebook utilizzabile per un’intera giornata, senza risparmiarsi troppo. Non è che devo star lì a chiudere il display per risparmiare energia, oppure impostare il profilo su Massimo risparmio energetico: un buon notebook deve essere utilizzabile per un’intera giornata senza particolari accorgimenti. Siamo ancora lontani dai livelli che – un po’ provocando – dicevo anni fa.

Eppure i margini di miglioramenti ci sono: fra un po’ sarà normale avere hard disk a stato solido (era ora, finalmente!!!), con evidenti risparmi in termini di energia e di calore (che genera a sua volta altri risparmi energetici per quanto riguarda ventole ed altri dissipatori).

Insomma, ci siamo. Forse i miei figli – semmai ne avrò – potranno caricare un notebook una sola volta alla settimana, magari potranno ricaricarlo con la luce solare mentre sono in giro, e via dicendo.

Leggevo qualche minuto fa sull’ultimo numero di PC World di un netbook – non ricordo bene la marca – che dichiarava quasi 15 ore di autonomia. All’atto pratico non si è rivelato troppo vera ‘sta cosa, comunque siamo sulla buona strada.

Efficienza energetica è un tema che penso debba essere preso sempre più in considerazione, perchè la Terra proprio non ce la fa più.

Send to Kindle
Senza categoria

Roma, durante le giornate libere di Basta! Italia

Più precisamente, sono stato a spasso giovedì 15 aprile e – causa famosa nube causata dal vulcano islandese – anche sabato 17 aprile.

Questa volta vi offro qui nel post una selezione di fotografie particolari, non i classici monumenti o paesaggi, un po’ inflazionati: se proprio volete vederli, seguite il link più sotto per raggiungere l’album completo di tutte le fotografie che ho scattato.


Un bicchiere di vino rosso, pane, salumi, formaggi e verdure da un’enoteca romana.


Massima estensione dell’impero romano (dai Fori Imperiali).


Posa finale di un ballo hip-hop (c’è una bella sequenza nell’album completo).


Bellezza a Piazza di Spagna / Trinità dei Monti (presa con il teleobiettivo).

Link all’album : http://www.flickr.com/photos/igordamiani/sets/72157623894920550/

Buona visione!

Send to Kindle
Senza categoria

Ma non tutti i mali vengono per nuocere

E’ vero – questa eruzione vulcanica ha causato molti disagi – ma almeno mi ha permesso di:

  • rimanere un po’ di più a Roma, che non guasta mai
  • visitare una mostra fotografica del National Geographic (veramente splendida!!)
  • di assistere ad un concerto in Piazza del Popolo a Roma, con Noemi, Marco Mengoni e qualcun’altro, cosa che di sicuro non avrei mai fatto in condizioni normali
  • il giorno di vacanza in più mi ha permesso di poter entrare a Castel Sant’Angelo in modo gratuito, raggiungendo la terrazza esterna e quindi poter fotografare Roma dall’alto (tra l’altro ieri era una bella giornata e quindi è stato eccezionale)
  • mi ha permesso di capire che per certi versi essere in giro da soli dà una marcia in più…puoi chiaccherare con chi vuoi, puoi fermarti dove vuoi non appena lo desideri, etc. etc., senza doversi preoccupare di “mediare” tra chi la pensa diversamente da te 🙂
  • attaccar bottone è più semplice: quando sei già in compagnia non ce n’è bisogno, ma se sei da solo tutto è diverso. Saluto quindi i due olandesi che mi hanno accolto al loro tavolo durante i primi giorni, ringrazio la coppia marito & moglie di Cesenatico coi quali ho chiaccherato, spero che la ragazza bionda del pub abbia ragione riguardo al derby, e mi scuso col tipo che ha il ristorante in zona Piazza Navona per non essere più ripassato
  • fotografare liberamente, rimanendo fermi nello stesso posto alla ricerca del momento e della condizioni migliore
  • e tante altre cose che adesso non mi vengono in mente
Send to Kindle
Senza categoria

L’Odissea per il ritorno a casa dopo il Basta! Italia

E così, la mia settimana romana si sta concludendo. Son partito lunedì 12 Aprile, volo EasyJet delle 17:30 con arrivo a Roma alle ore 18:45 circa. E’ stata una settimana intensa, ricca di incontri, di sessioni, di workshop e di molta teoria su .NET che mi ha fatto riflettere. Quando mi sono organizzato la trasferta, la prima cosa che avevo pensato era di fissare il ritorno sabato 17, così da poter passare una notte tranquilla al termine di Basta! Italia (che si è concluso venerdì). Così – mi dicevo – finisco il Basta! Italia, passo una sera in più per le vie di Roma e poi tranquillamente torno a casa il giorno dopo.

Chi andava ad immaginare che un vulcano islandese rovinasse non solo i miei piani, ma i piani di centinaia di migliaia di persone e di turisti in tutta Europa? Ecco in breve il riassunto dei miei problemi:

  1. fino a venerdì sera, il mio volo del giorno successivo era confermato: Malpensa era aperto, funzionava regolarmente. Monitoravo la situazione via Web, ed il volo era confermato e senza alcun problema
  2. mi sveglio sabato mattina (ieri) e patatrac: Malpensa aperto, ma volo annullato. Avviso subito l’hotel in cui alloggiavo, chiedendo di poter trascorrere una notte in più: c’è un problema – però – bisogna liberare la stanza, per cui mi spostano ad un hotel proprio dietro l’angolo. Vabbè, pazienza, ma per uno che non è abituato a viaggiare molto (almeno fino a poco tempo fa) il disagio c’è, anche se lo risolvo nel giro di un’oretta spostandomi dall’altra parte
  3. Nel frattempo, deciso di farmi spostare di volo al giorno successivo, domenica 18. Cioè oggi. Volo delle 16:20 da Fiumicino, con arrivo ovviamente a Malpensa. Già ieri sera però la storia la sappiamo tutti: Malpensa chiuso insieme a tutto il Nord Italia, e quindi volo annullato.
  4. Senza aspettare tempo, decido di abortire la possibilità del ritorno via aerea, e prenoto un biglietto Frecciarossa da Roma Termini a Milano Centrale. Treno delle ore 15, arrivo a Milano alle 18. Ed è esattamente il treno su cui sono seduto in questo momento.
  5. C’è ancora un piccolo problema: all’andata ho lasciato la mia auto presso il ParkingGo di Malpensa – pensando di tornare ovviamente in aereo – mentre adesso torno in treno. Quindi, Omar mi viene a prendere alla Stazione Centrale di Milano, poi insieme andiamo a Malpensa a ritirare la mia povera Astra. Insomma, anche quando sarò arrivato, la missione è ancora lungi dal finire.

Insomma, un po’ di casini: poi mi chiedono perchè non mi piace troppo viaggiare ed andarmene in giro per il mondo. Sapete qual’è la cosa buffa? Che in fase di organizzazione del viaggio, avevo addirittura preso in considerazione l’idea di andare proprio in auto, così sarei stato più libero ed indipendente. Avrei evitato tutti questi problemi e me ne sarei tranquillamente tornato per le autostrade. Un’altra cosa buffa? Che se fossi tornato venerdì sera, adesso sarei a casa e mi metterei le mani nei capelli pensando a tutta la gente bloccata: cioè dove sono io in questo momento. Vabbè.

A parte questi disguidi, comunque, i giorni di ferie che mi sono ritagliato sono stati bellissimi: chi mi ha seguito su Facebook e su Twitter lo sa benissimo, per cui non sto qui a ripetermi.

Beh, insomma, diciamo che non è ancora il momento di cantare vittoria: d’altronde il Frecciarossa è ancora qui fermo e tutto potrebbe succedere, ma stavolta sono fiducioso: forse torno davvero a casa. Mi manca la mia famiglia, il mio nuovo ufficio e forse mi manca anche la puzza di sterco dei campi lodigiani!

Send to Kindle
Senza categoria

E domani…giornata di ferie a Roma

Dopo due giorni di Basta! Italia, domani per me è giornata di ferie, giornata che dedicherò ovviamente a passeggiare tranquillo per le vie della capitale. Il tempo ieri ed oggi è stato eccezionale, per cui non vedo il motivo per cui domani le cose debbano essere diverse.

Sul Basta! Italia vi posso per ora solo dire una cosa: dal mio punto di vista, la giornata di oggi batte nettamente quella di ieri. I contenuti di oggi erano molto più interessanti ed in-topic considerando il mio lavoro: Silverlight 4, WCF RIA Services. Splendida la keynote di Dino Esposito intitolata – se ricordo bene – .NET : 10 anni dopo, un vero e proprio racconto del perchè e del percome è nata la piattaforma .NET, a che punto siamo, dove andremo, cosa viene richiesto a noi sviluppatori, etc. etc. E’ davvero difficile riassumere in poche parole il contenuto di questa keynote – e molto probabilmente non ne ho nemmeno le capacità. 🙂 Molto, molto bella la sessione di Corrado su Silverlight 4, Blend 4 e sul M-V-VM: avevo già seguito diverse sessioni su questo pattern, ma oggi effettivamente siamo andati un po’ più in là, soprattutto grazie alla nuova release di Blend che – ricordiamolo – è ancora in beta.

Altrettanto belle le sessioni di Andrea sugli ORM, analizzando NHibernate vs. Entity Framework 4 ed il codice sorgente del Northwind Starter Kit soprattutto dal punto di vista architetturale. Insomma, molta carne al fuoco e nulla da buttar via. Si ritorna venerdì per l’ultima giornata.

Ma arriviamo al sodo: come dice il titolo del post, domani per me è giornata di ferie. Penso proprio di uscire dal mio hotel alle 8 del mattino e cominciare sin da subito a scattare fotografie. Roma è la più bella città del mondo: punto. Soltanto camminare per le sue vie mi rende felice. Ed il tutto ha un sapore ancora più bello se penso che l’anno scorso, proprio il 14 aprile, entrai in ospedale per l’ennesimo piccolo intervento chirurgico che mi ha lasciato a casa circa 20 giorni in convalescenza. Insomma, oggi sono qui in salute, libero e felice, con un lavoro che mi piace per cui mi chiedo davvero cosa si possa volere di più. Oddio, se ci penso qualcosa c’è, ma chi si accontenta gode, ed il resto verrà da sè. Ragazzi, ovunque voi siate, divertitevi.

Send to Kindle
Senza categoria

La settimana prossima al Basta! Italia

Tornando al discorso di ieri, negli anni passati non mi è mai capitato che un’azienda per la quale lavorassi mi pagasse la partecipazione a qualche conferenza IT, come le solite TechEd e WPC. Ok – dirà qualcuno – ero solo un consulente e teoricamente bisogna dare priorità ai dipendenti, alle persone interne. Quindi, la morale è che in tutti questi anni ho sempre sentito l’esigenza di partecipare a questi eventi, ma non ho mai avuto per certi versi la “voglia” di investire quattrini per andarci.

Manco a farlo apposta, Brain-Sys mi dà questa possibilità, partecipando al Basta! Italia, quindi la settimana prossima sarò a Roma, da lunedì fino a venerdì sera. Sarò all’evento martedì, mercoledì e venerdì. Giovedì – tempo permettendo – per me è giornata di ferie, e quindi me ne starò per le strade di roma dal tramonto all’alba dall’alba al tramonto. Ringrazio quindi pubblicamente Gabriele per questa opportunità: cercherò di contraccambiarlo nei mesi a venire con bachi sempre più grandi nel codice. A parte scherzi, l’investimento nella mia persona c’è, ed è quindi ovvio che l’impegno anche da parte nostra deve esserci. Sarà interessante ascoltare un po’ di cose interessanti su Visual Studio 2010, .NET Framework 4 e ovviamente tutte le nuove tecnologie pronte per essere rilasciate. Senza escludere le cene e la vita da community che ho proprio voglia di vivere.

Quindi, se ci conosciamo, se ci siamo visti in qualche evento community, se avete un qualsiasi motivo (anche per insultarmi, è ovvio!), cercatemi e faremo due chiacchere.

Ultima precisazione: se parlo di Brain-Sys in questo modo (e mi riferisco specialmente al mio post precedente), non è per fare il ruffiano, o per fare pubblicità spicciola, ma perchè la considero davvero una piccola e vera famiglia, nella quale ciascuno fa la sua parte e si cerca di portare una mission coraggiosa. Insomma, credo in tutto quello che scrivo, come al solito. D’altronde, lo sapete bene, quando qualcosa non mi piace, o non mi va, sono il primo che protesta e brontola, no?

Send to Kindle
Senza categoria

La Brain-sys siamo noi, e siamo qui!!

Chi di voi ha seguito le mie vicissitudini lavorative degli ultimi anni, sa che sono passato attraverso diverse (e grosse) società di consulenza, lavorando soprattutto a Milano città, o comunque nel suo stretto hinterland. Società grosse, dicevo, che facevano la loro bella figura in Rete con i loro siti Internet pieni di informazioni, links, loghi dei loro clienti, bla bla bla.

Precisamente dall’11 Gennaio di quest’anno sono entrato orgogliosamente a far parte di Brain-Sys, una piccola software-house. Piccola certamente in termini numerici come numero di dipendenti, forse, ma certamente non in termini di passione e di impegno che ci mettiamo nel nostro lavoro.

Da circa un paio di settimane il nostro sito Web è on-line: http://www.brain-sys.it. Un sito Web pulito, elegante, efficiente. Un sito Web che per certi versi oggi è solamente “istituzionale” (passatemi il termine), ma che a breve disporrà anche di un nostro blog personale, dove renderemo pubbliche le nostre attività, parlando in modo tecnico oppure no, a seconda delle circostanze.

Un sito semplice e comunicativo, con tutto quello che vi serve per sapere cosa facciamo, chi siamo e come potete contattarci. Per riassumere, quindi:

Website : http://www.brain-sys.it
Facebook : http://www.facebook.com/pages/Brain-Sys/90772946609
Twitter : http://www.twitter.com/BrainSys

Insomma, per farla breve, Brain-Sys c’è, siamo noi e siamo qui. Sapete dove trovarci!

Send to Kindle
Senza categoria

Silverlight 4 out-of-browser application

Ecco un video di circa nove minuti che illustra come creare un’applicazione con Silverlight 4 in modalità OOB (out-of-browser).

Da neofita di Silverlight, pensavo bastasse andare nelle proprietà dell’applicazione Silverlight ed abilitare le opzioni giuste e premere F5, ma non è proprio così. Il video illustra chiaramente che un’applicazione OOB gira di default comunque in un browser, ma può essere installata in locale, e quindi accessibile da un link sul desktop o dal menù Start. Solo in questo modo appare in una finestra indipendente come un’applicazione stand-alone. Oh, che ci volete fare, per un principiante di Silverlight questa cosa non riuscivo a capirla, ma è sufficiente fare qualcosa ricerca per sapere tutto-di-tutto.

Video : http://windowspresentationfoundation.com/Tutorials/OOBTemplate/

Send to Kindle