(a.k.a. Buy one copy!)
Finally I am excited and glad to let you know that my first book: “Building Enterprise Applications with Windows® Presentation Foundation and the Model View ViewModel Pattern” is out and available through the major IT books distributors like: www.amazon.com, kindle, www.oReilly.com and more.
Distributors
Please forgive me if I am missing some of my distributors but I do not have yet the full list. The book is available through the oReilly website at this address: http://oreilly.com/catalog/0790145309686/ in the following formats: PDF, EBOOK, KINDLE and PAPERBACK (hard copy); of course the hard copy costs a little bit more.
You can also order the book using www.amazon.com at this address; unfortunately, Amazon will not start to deliver the book until the 1st week of April 2011 while if you order the book from the oReilly web site, you can get it right away.
Prices
On amazon, the hard copy costs $19.99 and the Kindle version costs $14.99.
On oReilly the hard copy is $19.99, the Ebook is $14.99 and both together cost $21.99
Free Copies
I have assigned some free copies to the participants of the last UGIALT conference, I will send them a free copy of the book as soon as I will get the green light from oReilly. I am planning to distribute other free copies at the next .NET community event and I will let you know when this will be. For now, buy a copy and make me happy!
Thanks
First of all I want to thanks oReilly and Microsoft to let me write this book. I also want to thank Russell Jones, my editor and primary publishing contact for this book. He is the only person who believed in me from the beginning, and he put himself on the line to get this project approved by Microsoft Press. I will be always thankful to him for that. He did also a wonderful job in helping me to complete the job on time, and to organize the whole project. Thanks to Kristen Borg, my production editor that spent a lot of time and effort to finalize and get this project done.
Of course I have to thank my wonderful wife that for the last 6 months she helped me in getting this job done by pushing me every time I was letting go the project for one or another one reason.
Comments
Please, please, please. If you plan to buy a copy of the book ( I hope so) I would really appreciate if you can leave a comment, on Amazon or on OReilly or on both of them and let me know what you really think about it. I love to get constructive criticisms on my work as they always help me to do the next thing better. Please, don’t be shy and don’t be nice if I do not deserve it!
Sono circa due anni, se non mi sbaglio, che non uso piu’ il blog di Ugi.
Non e’ per motivi particolari ma solamente perche’ essendo in un paese dove si parla inglese ho ben pensato di avere il mio blog in inglese: http://blog.raffaeu.com.
Ho questo dominio dal lontano 2003 e dopo Aruba sono passato, circa 4 anni fa a WebHost4Life. Non includo il link perche’ non ho nessuna intenzione di fargli pubblicita’.
Comunque, avevo letto su Ugi che parecchie persone avevano avuto problemi durante la migrazione, ma siccome sapevo che prima o poi avrei cambiato host, per via dei loro prezzi esorbitanti e le performances schifose … ho sempre posticipato la cosa.
Circa due settimane fa mi hanno migrato. Senza avvisarmi e senza fare un bel backup di tutte le mie belle cose che avevo nel mio file system sul loro server.
Settimana scorsa, Domenica, ho visto che la mia mail non esisteva piu’ e li’ mi sono incuriosito e sono andato a vedere il mio pannello di controllo.
Ho aperto circa 10 tickets e non sono mai riusciti a fare nulla.
Il dominio andava e veniva ed ogni volta che riconfiguravo subdomain e emails, dopo qualche ora tutto spariva di nuovo.
A quel punto, settimana scorsa ho bloccato il pagamento che avevo effettuato con Paypal tempo a dietro, e sapete loro cosa hanno fatto?
Hanno chiuso tutti i tickets aperti e cancellato totalmente tutto. Il mio account, il dominio l’ hanno spostato su un altro registrar e tutti i miei files e il db SQL erano andati. Due anni di blog persi … Siccome un mese fa avevo deciso di implementare una nuova skin per subtext, mi ero scaricato tutto il mio blog ed il Db SQL e quindi sono riuscito a ripristinare tutto.
La cosa assurda e’ che per ridarmi i miei files, mi hanno chiesto 143 dollari, che ho prontamente pagato. Non ha prezzo perdere tutte le cosucce carine che con fatica ho scritto in questo periodo …
Beh, sapete come e’ andata? Sul mio blog io uso SubText 2.1 da mooooooolti mesi, dopo il loro backup, il mio blog e’ tornato alla version 1.9 e il db SQL era totalmente sbagliato e corrotto … Li ho chiamati ma niente, fino ad oggi non sono riusciti ne’ a ripristinare i miei files ne’ a far funzionare emails e subdomain.
Oggi mi sono spostato su discountasp.net, quello che viene pubblicizzato su www.asp.net e tutto funziona alla grande. In 3 ore, solamente 3 ore hanno cambiato registrar, spostato il dominio sui loro DNS e attivato tutto, emails, IMAP, blog, e quant’ altro.
Se avete un dominio con loro, fate in fretta, muovetevi da un altro provider perche’ leggendo su internet, non ho trovato nessuno che non abbia avuto i miei stessi problemi! Sono da denuncia!
Ho scoperto anche che l’ help desk che ti forniscono, non e’ un vero help desk ma solamente un call center in bangalor dove aprono i tickets per te sul tuo pannello di controllo. La risposta che ti danno ogni volta e’ “We apologize for the inconvenience” e se siete in chat o al telefono con loro vi smollano in attesa per circa 30 minuti e poi chiudono il tutto …
Maledetti, non potete immaginare come ho passato questo settimana con emails e blog down …
Per fortuna ora tutto funziona alla perfezione anche se ho perso parecchie immagini e dovro’ con calma ricercare nel mio PC.
Mi rifaccio al posto di Matteo.
Per l’ antitrust Microsoft deve togliere IE come browser di default da Windows 7?
Bene allora MAC toglie safari e Linux toglie Firefox da Ubuntu (mi limito a questa distribuzione). La legge e’ uguale per tutti e pensavo che l’ eccezzione fosse fatta solo per qualche politico Italiano …
Sto lavorando con WPF e posso solamente dire quanto mai prima!
Dopo che iniziate a padroneggiare MVVM, WPF ed un buon ORM (ne esiste uno?)[lol] vi accorgerete di quanto tempo avete sprecato dietro Win32.
E’ vero ci sono grossi ostacoli come le dependency property, commands, style e i template ma se in passato avete smanettato con ASP.NET e XML, beh la logica non cambia poi molto.
Non siete ancora convinti? Leggetevi questo: http://www.thejoyofcode.com/10_reasons_you_should_consider_WPF_for_your_next_desktop_application.aspx
E si devo proprio dirlo.
Il 24 Giugno torno a casa 10 giorni e vado alla UGIALT conference.
Tempo impiegato sul sito americanairlines per avere un volo con coincidenze e varie ed eventuali, circa 10 minuti.
Tempo su trenitalia per un treno da Luino (Varese) a Bologna, infinito perche’ quella schifezza di sito (mi dispiace ma devo dirlo) non calcola le conicidenze quindi vi dovete munire di carta e penna e farvi i vostri calcoli prima di prenotare le varie coincidenze.
Qualcuno passa da Milano/Varese per la UGIALT per caso?
In questi giorni sto lavorando, o meglio, sto studiando il VMMV perche’ dovro’ a breve sviluppare una media applicazione in WPF e vorrei proprio farlo usando WPF, L2S e il VMMV.
Sto leggendo un po’ di articoli e ci sono alcune cose che vorrei sottolineare, perche’ ogni qual volta che si parla di un nuovo pattern salta fuori il guru della situazione, e spesso vedo delle vere e proprie fesserie scritte sui blogs.
- Inanzi tutto consiglio a tutti una visita al blog di Martin Fowler, specialmente a questo articolo: presentation model. Dico solamente una cosa, e’ del 2004 …
- Poi parliamo per un secondo del DataModel e del ViewModel. Mi sa che qui qualcuno sta facendo un bel minestrone.
- DataModel is responsible for exposing data in a way that is easily consumable by WPF.
- A ViewModel is a model for a view in the application. It exposes data relevant to the view.
- La view in questo caso e’ il file XAML. Se poi ci piace sprecare tempo possiamo anche creare un contratto (IView) e passarlo alla View (XAML) ma a quel punto stiamo mischiando MVP con MVVM.
Ok, a scuola mi hanno insegnato che 1+1 = 2 e che quindi il ViewModel e il DataModel NON SONO LA STESSA COSA! Ci tengo a precisarlo.
Non ha nemmeno senso implementare un data model (il vecchio dominio con le entities per farla breve) e poi spararlo direttamente alla view tramite il viewmodel … Il viewmodel non e’ la copia del dominio. Lo scopo di VMMV e’ quello di fare una applicazione dove la view non sa niente del dominio, il dominio non sa niente della view, e tramite il viewmodel, possiamo passare da WPF a Silverlight cambiando solo alcune righe di XAML. Se ViewModel e View PARLANO a casa mia e’ MVC, MVP o MDP (minestrone di patterns).
Credo che Josh Smith su MSDN spiega in maniera molto pulita quello che dovrebbe essere il MVVM, anzi direi che e’ proprio chiaro … http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
Dove e’ il punto? Il punto e’ che in giro ci sono un sacco di post schifezza, dove vengono realizzate architeturre (semplici esempi) con 2 layer con la UI fatta a minestrone e il DAL che e’ anche il PRESENTER ma che e’ anche il SERVICE layer. La unit of work e’ andata a farsi benedire … per non parlare dell’ uso improprio di XAML.
Se poi ci mettiamo dentro gli esempi di Silverlight e le RIA dove il per microsoft il DAL (Entitiy Framework) in questo caso, viene piazzato dentro l’ applicazione web vera e propria, beh … io non sono per niente daccordo (d’accordo) [non mi ricordo mai come si scrive!]
Finalmente mi sono deciso, anche perche’ mi devo preparare alle nuove MCPD e quindi ho iniziato a lavorare con WPF. Devo dire che il pattern MVVM e’ davvero interessante anche se io ho gia’ intenzione di metterci dentro una mia deviazione. Ci sono un paio di cose allo stile MVC che non mi gustano molto. Inoltre gli stili, il binding e la gestione fantastica del layout in stile markup mi piace davvero molto. Peccato che sia Kaxaml che VS lasciano ancora a desiderare con l’ intellisense, ma vedremo piu’ avanti.
Anyway, per chi fosse interessato ho trovato in rete una serie di post niente male che posto qui come elenco, o meglio, come MUST per chi vuole fare le cose per bene.
Sicuramente il blog di John Gossman.
- DataModel-View-ViewModel pattern: 1
- DataModel-View-ViewModel pattern: 2
- DM-V-VM part 3: A sample DataModel
- DM-V-VM part 4: Unit testing the DataModel
- DM-V-VM part 5: Commands
- DM-V-VM part 6: Revisiting the data model
- DM-M-VM part 7: Encapsulating commands
- DM-M-VM part 8: View Models
Inoltre una serie di posts e tutorials niente male che nel complesso aiutano a capire meglio il tutto.
- Introduction to Model/View/ViewModel pattern for building WPF apps
- 100 Model/View/ViewModels of Mt. Fuji
- The PresentationModel pattern
- Further reflection on PresentationModel
- Confusion over definition of Controller in MVC
- Whats a controller anyway?
- Model-View-ViewModel pattern example
- Model-View-ViewModel
- First try at a ViewModel for the example
- Advantages and disadvantages of M-V-VM
- UML diagram of Model-View-ViewModel pattern
Infine, come aveva gia’ consigliato Corrado tempo fa, il Toolkit per Visual Studio, che io personalmente non ho ancora usato.
Cheers,
Ho trovato questo simpatico blog dove ci sono una marea di contenuti per Dream Scene.
Lo so molti di voi non lo usano ma a me piace molto e sinceramente non mi rallenta nulla quindi per chi come me e’ appassionato di wallpapers animati ecco il link:
http://www.dreamscenevideo.net/blog/
Ho iniziato a dare uno sguardo a Silverlight 3, a NET RIA Service e chiaramente al blog di Brad Abrams e i suoi tutorials su RIA.
Sul mio blog in inglese potete trovare una serie di tutorial che sto scrivendo per chi vuole sperimentare questa nuova versione di Silverlight.
Consiglio vivamente, la visione di questi due splendidi web cast del MIX 09, e mi mordo ancora le mani per non esserci potuto andare.
Brad Abrams and NET RIA at MIX09
Tutti i video del MIX09
Inoltre insieme a David Silverlight abbiamo iniziato a sviluppare un toolkit per S3 usando EF e le RIA. Io sono ancora restio su EF e continuo ad usare Linq in ufficio per le piccole applicazioni di Data entry, ma staremo a vedere.
Devo dire che da subito quel che mi ha stupito delle RIA e’:
- Gestione automatica delle view presenti nel progetto
- Semplificazione estrema del layer DAL
- Semplice gestione del binding da Silverlight verso il DAL
- Visibilita’ dei contenuti anche dai motori di ricerca, quindi senza supporto di Silverlight
- Semplice installazione LOCALE dell’ applicativo web, solamente della parte client, chiaramente
Credo che se Microsoft continuera’ su questa strada con Silverlight e EF verso la fine dell’ anno riusciremo a metter mano ad un prodotto davvero ben fatto in grado di farci sviluppare quelle che si possono veramente chiamare RIA Business Application.
Mi spiace perche’ ne ero un fan, ma Flex e Flash sono ancora molto lontani da una tecnologia simile!!
NOTA: Silverlight 3 e il multi-targetting funziona con VS2010 ma le NET RIA NO! Brad Abrams cita chiaramente nel suo blog che per ora NON ci sara’ supporto per VS2010 essendo uscito dopo la prima preview di NET RIA.
Quindi usate VS 2008 SP1.
Allora siccome Virtual PC 2007 non consente di emulare un sistema x64 e siccome il mio laptop monta Vista Ultimate 64 con un bel Core Duo 2 T9600 non mi sono accontentato e sono entrato in evaluation. Alla fine mi costera’ 189 USD e mi dispiace dirlo ma VMWare desktop e’ proprio fico eh … :-)
Con VMWare Desktop 6.5 ho installato ed emulato 2 processori e Windows 7 64 e’ salito in un attimo. Poi ho lanciato VS2010 e dopo pochissimo mi arriva una notifica di restart e mi sono detto, che cavolo sto installando VS e’ gia’ iniziano sti updates? Beh era VS che aveva gia’ finito la prima parte dell’ installazione … Non ho capito perche’ a sto giro fa un reboot durante il setup, ma ho notato che molti runtime sono 64-bit nativi adesso, o sbaglio?
Comunque sono sbalordito! Inoltre e’ utile la SP1 di SQL adesso viene installata con la versione epress di SQL08 inclusa nel setup di VS2010. Ve lo chiede proprio per Windows 7.
Ho solo una domanda. Ma ASP.NET MVC che fine ha fatto? Perche’ c’e’ Silverlight 2.0 ma non ASP.NET MVC?
Ecco qui la mia super macchinetta Virtuale.
Adesso mi preparo un bel Windows Server 2008 con tutto il necessario per SQL 2008. Mi sarebbe piaciuto anche testare il nuovo Biztalk e Sharepoint. Ma c’e’ tempo o meglio adesso non ho proprio tempo.
Comunque la RC di Windows e la beta di VS mi hanno lasciato davvero e bocca aperta. E il progetto a cui sto collaborando (SUGSTK) sara’ proprio sviluppato con EF 4, Silverlight 3 e NET RIA. :-)
Ndr (Ma mi sorge un dubbio, con Windows super fast, VS in WPF, nuovo SharePoint e annuncio del nuovo SQL [di cui non vedo l’ora …] cosa aspettano a sopprimere Office 2007? Ci vorrebbe proprio un bel Office 2010 per completare il tutto! Ho letto rumors riguardo Office 14 ma nulla ufficiale ancora.)
Ho appena dato uno sguardo alla nuova release dell’ entity framework 4.0 e devo proprio dire che adesso ci siamo.
Prima di tutto lo sviluppo non e’ piu’ data-driven ma domain first, e molte persone in questa community devono essere contente di cio’. Mi ricordo ancora le discussioni di un paio di anni fa riguardo a DB-First o Model-First. Beh adesso Microsoft ha proprio fatto un passo avanti.
Seconda cosa i complex type. Mi piaciono e mi piace l’ idea di poter creare n complex type da designer e poi fare reverse engineering e creare il complex type come n colonne nella mia tabella.
Le associations adesso si che si possono gestire come dio comanda.
E infine il comando create database from model. God, this is cool!! Inoltre abbiamo ancora la possibilita’ di rivedere il nostro DDL SQL per vedere come verra’ creato il database. Certo l’ uso di nvarchar al posto di varchar mi lascia ancora un pochino perplesso.
Inoltre l’ ID, ogni entity ha in automatico un ID di tipo Int32, e non guid. Come mai? :-)
Se ho ben capito ma non ho modo di testarlo per adesso, sembra che EF 4.0 sia compatibile anche con Oracle e DBII. Ma cavolo questa cosa un paio di anni fa mi avrebbe tolto non pochi problemi di dosso.
Beh che dire, andiamo di Virtual Machine e testiamo il tutto in profondita’.
Vi consiglio vivamente i Video su Channel9 per darvi un’ idea generale del gioeillo che sta per uscire con NET 4.0 e VS2010. Per non parlare dell’ integrazione con MOSS. ;
In questi giorni, avendo ormai virtualizzato tutto, ho ben pensato di installare anche io la RC di Windows 7 sul mio IBM ThinkPad W500.
Siccome pero’ il mio ThinkPad aveva qualche customizzazione di troppo come una PCI express ATI Radeon … il tutto bomba. O meglio: l’ installazione e’ andata benone in circa 20 minuti ma i driver manco a parlarne. Scheda video, wireless e LAN non vanno. Allora ho installato tutto in emulazione Vista ma dopo un paio di updates e restart, mi trovavo sempre con la dannata schermata blu …
Leggendo in giro mi sono accorto di non essere l’ unico ad avere questo problema con ThinkPad. Vorra’ dire che per adesso continuero’ a far girare il mio Vista SP2 aspettando che Windows 7 venga rilasciato e con esso anche i driver. Mi dispiace molto perche’ nel PC di mia moglie, un normalissimo pavillion, Windows 7 x64 gira una meraviglia, pensate che ho fatto direttamente l’ upgrade da Vista Ulimate … E vabbe’ sembra che mi giri intorno un po’ di sfighetta ultimamente.
:-)
E’ davvero parecchio che non scrivo nulla specialmente su Ugi. Tante cose sono successe.
Mi sono operato ad un ernia e purtroppo mi sta tenendo lontano dal PC. (Senza polemiche, le strutture private americane sono imparagonabili a quelle italiane …)
Ho conseguito nuove certificazioni su SQL 2005 e adesso sono passato a SQL 2008.
Faccio parte, per la prima volta, di un bel progetto OpenSource che si chiama Silverlight User Group Starter Kit ovvero un kit completo per un sito in Silverlight usando le piu’ recenti funzionalita’ di silverlight. Mi e’ sembrato l’ unico modo per approfondire XAML e il web che avevo abbandonato da un po’.
Per chi ci sara’, ci vediamo il mese prossimo alla conference Ugi ALT NET.
Ciao
Vado al centro Prometric, do il mio esame 70-431. Penso di averlo passato perche’ le domande erano davvero semplici a mio parere.
Premo end review ed un bel error di run-time mi spunta davanti al naso. L’ applicazione crasha e buona notte al secchio.
La ragazza chiama il centro assistenza e adesso non ho il responso a fino a che non mi mandano loro il responso non posso dare l’ esame di nuovo.
Se non e’ questa sfiga, ditemelo voi.