LOB WPF applications style (2)

Avevo postato qualche tempo fa qui su degli esempi di user interface diversi dal solito.

Il buon Karl Shifflett, ispirato anche lui da Billy Hollis  e dal video che ho segnalato nel post, ha realizzato BBQ Shack, un'applicazione basata sul suo framework Ocean e che riproduce quanto fatto da Billy Hollis, lo trovate qui.

LOB WPF applications style

Stamattina cercavo degli esempi di User Experience per creare una LOB application che avesse un look diverso dal solito e mi sono imbattuto in questo video.

Che dire, semplicemente straordinario.

[OT] Tanto sono tutti uguali ...

Stamattina sono venuti i tecnici di Fastweb a installarmi il modem per l'ADSL.

Avevo ricevuto una telefonata da un promotore di Fastweb che era venuto a trovarmi e mi aveva promesso ADSL 20 Mb, Fastweb TV, telefonate nazionali gratuite per la modica cifra di € 57,40 a bimestre per un anno per poi passare a € 54,8 al MESE. Per quanto riguarda l'ADSL, avevo chiesto quale fosse la banda minima garantita, forte dell'esperienza del passaggio da Tele2 con cui navigavo a 2,4Mb, ad Alice 7Mb, con cui riuscivo ad andare al massimo a 1,3Mb. Mi ha risposto che grantiva nella mia zona 7Mb, anche se nelle clausole contrattuali non c'è specificato nulla a tal riguardo.

Mi sono fidato e ho firmato il contratto.

Guardando le offerte sul sito di Fastweb, quella da me sottoscitta (Parla & Naviga casa), veniva proposta a € 22,40 al mese per il primo anno per poi passare a € 44,80, senza l'opzione Fastweb TV. La cosa cominciava a puzzare e simulando la registrazione online, l'offerta mi veniva proposta per 6 mesi anzichè un anno, uhmmm....

Chiamo il servizio clienti e mi confermano che purtroppo nella mia zona non è possibile avere la promozione per un anno, in aggiunta Fastweb TV non è disponibile, caz...

Mi sono talmente alterato al telefono (glie ne ho detto di tutti colori) che mi hanno passato un responsabile commerciale, che mi ha esteso l'offerta a un anno (in realtà mi ha fatto uno sconto tale per cui mi da sei mesi gratis), beh almeno è già qualcosa

Stamane dopo l'installazione del modem, con i tecnici ancora in casa faccio le mie prove di navigazione, e udite udite... navigo a 1,46Mb

I tecnici mi dicono che loro non possono fare nulla e di provare a sentire il servizio clienti. Mi attacco al telefono e altra sfuriata, sia con il call centre che con i tecnici dell'attivazione, i quali mi confermano che più di così non posso navigare, che probabilmente sono troppo distante dalla centrale (3 km) o che i cavi che raggiungono la mia abitazione non sono buoni. Riesco a parlare con la signora dell'altra volta che mi aveva esteso la promozione e mi dice che lei dal punto di vista tecnico non può fare nulla, se la velocità è quella, è quella  . Chiedo se posso esercitare il diritto di recesso, mi dice di si che devo fare una raccomandata, oppure approfittare dell'offerta dei 6 mesi gratis e poi uscire da Fastweb pagando € 49,00 perchè termino il contrattto entro il primo anno.

Considerato che sono stato una settimana senza internet e devo ammettere, al giorno d'oggi ci si sente tagliati fuori (ieri sera dovevo assolutamente scaricare la posta  e ho fatto una connessione dial-up a 56K), ho deciso di scroccare questi 6 mesi e vedere nel frattempo cosa fare.

Purtroppo vivendo nei paesi non è facile passare da un operatore all'altro, anche perchè non ci si guadagna niente in termini di prestazioni, mi sarei accontentato di poter navigare almeno a 4-5 Mb contro un'offerta di 20, invece nisba...

Ricordo la storia di Gian Maria con Telecom, io adesso ne ho provato 3 di operatori, ma alla fine... SONO TUTTI UGUALI.

Se riesco a trovare un operatore che mi dia una connessione a internet wireless decente, tolgo i cavi telefonici, uso solo il cellulare, così consumerò quando avrò voglia, senza pagare canoni e balzelli vari (non che sulla telefonia mobile non ce ne siano...)

Sono veramente disgustato.

P.S. Il promotore che venne a trovarmi mi diede il suo cellulare (prima della firma del contratto, in modo che se decidevo di aderire l'avrei potuto chiamare), dicendomi che a quel numero era disponibile solo al mattino, in quanto alla sera girando per fare i contratti lo teneva spento. Purtroppo dopo la firma è diventato irrintracciabile, al mattino non risponde e alla sera il telefono è spendo, muah... sono dei BANDITI

CompactFramework DataGridTableStyle - Binding to IBindingList collection

Ho passato un bel pò di tempo a cercare di capire perché definendo la DataGridTableStyle con le relative DataGridTextBoxColumn e aggiungendola alla DataGrid.TableStyles collection, le mie impostazioni non venivano mai applicate.

La DataGrid ha la proprietà DataSource impostata su una mia collection di oggetti di tipo BindingList<T> come segue:

BindingList<StorageUnit> storageUnits = new BindingList<StorageUnit>();

A parte il tempo perso perche avevo omesso di valorizzare la proprietà dataGridTableStyle.MappingName, poi scoperto l'arcano ho scritto così:

dataGridTableStyle.MappingName = "storageUnits";

ma purtroppo non funziona.

Girando girando ho trovato la soluzione, basta ricavare il nome dalla proprietà DataSource della DataGrid con il seguente codice:

DataGridTableStyle dataGridTableStyle = new DataGridTableStyle();
dataGridTableStyle.MappingName = this.dataGrid.DataSource.GetType().Name;

Andando di debugging, sapete cosa contiene la proprietà MappingName? Contiene il valore "BindingList`1".

Come dice qualcuno delle mie parti, "Che c'azzecca BindingList`1 con storageUnits?", muah.

WCF e CompactFramework - Primi passi

Questa settimana ho iniziato a lavorare con WCF per realizzare una SmartDevice application che deve connettersi a una applicazione esistente.

Naturalmente sto usando il CompactFramework 3.5 e ho scaricato il NETCFv35PowerToys.

Dopo aver creato un primo servizio WCF ospitato in una console application, ho utilizzato il NetCFSvcUtil per generare le classi proxy da utilizzare nell'applicazione Smart Client. Qui c'è da ricordarsi di aggiornare i file generati ogni qualvolta si modifica il servizio o il DTO, se ci fosse qualcosa di automatico sarebbe una manna.

Le classi proxy dei servizi contengono anche i DTO generati ma contengono le proprietà non nello stesso ordine in cui si presentavano nella classe di partenza, bensì in ordine alfabetico.

Per ovviare a questo, si può usare il parametro Order dell'attributo [DataMember] in modo da generare il DTO come l'originale.

Esempio: 

[DataContract]
public class StorageUnit
{
    [DataMember(Order = 0)] 
    public string Id { get; set; } 

    [DataMember(Order = 1)] 
    public string Description { get; set; } 

    [DataMember(Order = 2)] 
    public string MaterialId { get; set; } 

Fare attenzione alle proprietà che contengono valori nullabili che non vengono serializzati dal palmare, prima di usarle fare il test se il valore della proprietà è stato specificato, come riportato in questo post.

Per adesso tengo i servizi ospitati in una console application che mi aiuta in fase di debugging, poi li dovrò mettere su IIS, ho fatto qualche prova seguendo quanto riportato sul libro WCF Unleashed ma non riesco a farli funzionare, farò altri tentativi più avanti, chi avesse lumi sarebbe il benvenuto.

Ovviamente ho perso qualche giornata per capire perché non riuscivo ad accedere al servizio ospitato sul mio portatile dall'emulatore, causa ferie brevissime , poi ho trovato questo post e quest'altro che mi hanno aiutato. 

[OT] Voglio impare anch'io la programmazione!

L'altro ieri mio figlio Daniele di 9 anni, vedendomi passare molto tempo al computer a scrivere programmi, mi ha detto:

"Papà, voglio imparare anch'io la programmazione, mi insegni?"

Attimo di panico... dopodiché abbiamo fatto insieme il primo programmino "Hello Daniele" con WinForms. Adesso non so più come continuare, non posso certo mettermi a spiegargli il framework e i libri che ho sono tutti in inglese.

Qualcuno sa dove poter reperire del materiale semplice e in italiano per insegnare a mio figlio a muovere i primi passi in questo mondo?

Chissa che non stia facendo la cosa sbagliata !

[OT] La corsia del peccato

Mi domando perché si ostinano a voler costruire la terza, la quarta, la n-esima corsia in autostrada se poi tutti viaggiano nelle ultime due di sinistra lasciando la prima, quella del peccato, completamente libera.

Oggi sono rientrato dalle vacanze, ho fatto 710Km di autostrada dal Piemonte fino in Abruzzo, nei tratti dove ci sono 4 corsie (Piacenza-Bologna) e 3 corsie (Bologna-Rimini nord) la prima corsia era pressoché libera. Io non ho potuto che essere contento perché era riservata a me e mi ha consentito di viaggiare agevolmente. Naturalmente ho sorpassato stando in prima corsia.

Ma perché si mettono al centro e vanno piano? E' così peccaminoso stare in prima corsia? Oggi non c'erano neanche i camion!

WPF e il pattern Model-View-ViewModel

Dopo quasi un anno dall'acquisto del libro "Windows Presentation Foundation Unleashed", ho ripreso a studiare questo nuovo mondo che, per impegni diversi, avevo tralasciato.

La difficoltà maggiore che ho trovato e che sto cercando di superare, è quella di approcciare la programmazione WPF come se si stesse programmando Windows Forms, sono mondi divesi e bisogna cambiare mentalità.

Tra l'altro, ero alla ricerca di esempi su come mettere in pratica il pattern Model-View-ViewModel che mi sembra sia molto valido per WPF e apprezzato dagli sviluppatori.

Ho trovato questo video di Jason Dolinger, lo considero veramente chiaro ed esplicativo di come applicare questo pattern, partendo dal vecchio approccio "Windows Forms Style" nell'uso del code behind fino ad arrivare all'uso di solo xaml.

Peccato che mi sia perso verso la fine quando ha introdotto Unity per gestire la Dependency Injection del ViewModel, troppi concetti in una volta sola .

Ad ogni modo ho scaricato il video sul desktop e me lo rivedrò diverse volte fino a che imparerò. Perseverare!

Che delusione!

Venerdì scorso avevo portato a casa il nuovo portataile, Lenovo T61 http://www5.pc.ibm.com/it/products.nsf/$wwwPartNumLookup/_NC911IX?OpenDocument ho iniziato a configurarlo ma purtroppo con soli 1GB di RAM Vista non cammina neanche a calci :(.

Il computer non è un'eccellenza, purtroppo per standard aziendali è quello che viene acquistato, mi devo accontentare.

Ho ordinato 2 moduli da 2GB in modo da portare la memoria a 4GB, vediamo se almeno così si riesce a lavorare decentemente.

Il nuovo portatile

Oggi è arrivato il nuovo portatile con Windows Vista Business.

Adesso bisogna configurarlo e installare tutti i programmi necessari.

Il dubbio e:

Reinstallo Visual Studio 2005 per continuare i miei progetti o installo solo Visual Studio 2008 Professional che ho scaricato da MSDN?

Ogni consiglio è ben accetto.