[DotNetMarche] Pubblicato il materiale del 13° workshop ‘WPF + M-V-VM’


Abbiamo pubblicato il materiale del workshop "Tra presente e futuro delle interfacce utente con WPF e MVVM", e questa volta oltre a codice e slide siamo riusciti a fare anche i video!

Probabilmente a livello di qualità delle riprese si può fare di meglio… ma direi non male come prima volta da cameraman :)!

Trovate tutto il materiale qui!

PS: anche se in futuro cercheremo di fare le riprese, purtroppo non possiamo garantire di avere sempre a disposizione gli strumenti, come tra l’altro già successo per il workshop precedente :(, per cui se potete vi consigliamo sempre di partecipare di persona per non rischiare di perdervi i contenuti… e soprattutto per avere delle possibilità di “fare networking” che con i video sicuramente vi perdereste (vedi il ragazzo che durante l’ultima sessione è stato sempre a parlare con Mauro per chiedergli approfondimenti)!

PS2: purtroppo non ci sono i video della “cena”… che come ha detto qualcuno, più che una cena è stata “un’esperienza”, con un personaggio unico a fare da cuoco/intrattenitore!

author: Stefano Ottaviani | posted @ venerdì 5 febbraio 2010 10.39 | Feedback (3)

WCF su Compact Framework: xxxSpecified vs IsRequired


Oggi si discuteva riguardo alla questione ben descritta in questo articolo (con relative possibili gestioni).

In breve, quando si crea un riferimento ad un servizio WCF da un progetto mobile, tramite NetCFSvcUtil, se ci sono delle classi usate come DataContract con proprietà di tipo value type definite come DataMember, per ognuna di esse verrà generata anche una proprietà booleana avente nome xxxSpecified (dove xxx è il nome della proprietà), con valore di default false.
Quando si inviano i dati dal palmare al server tramite un’istanza di questa classe, per far si che i valori delle proprietà di tipo value type arrivino a destinazione occorre impostare i valori delle relative proprietà xxxSpecified a true, altrimenti la proprietà dell’oggetto che viene deserializzato nel server avrà il valore di default.
La presenza di queste proprietà xxxSpecified permette di gestire il versioning delle entità, in modo tale da non generare degli errori alla ricezione del messaggio da parte del server se il client non invia tutte le proprietà attualmente gestite dal servizio.

Se non si ha l’esigenza di gestire il versioning (es. perchè si realizzano sia il server ed il client, e si fa in modo che siano sempre allineati), si può gestire la situazione in un altro modo, utilizzando la proprietà IsRequired dell’attributo DataMember (un esempio del suo funzionamento è riportato qui).
Impostandola al valore true, quindi marcando le proprietà della classe usata come DataContract con DataMember(IsRequired = true), al momento della generazione dei proxy NetCFSvcUtil non genera più le proprietà xxxSpecified, con il vantaggio di evitare di dimenticarsi di valorizzarle a true prima di trasmettere i dati al server.

Queste due possibili gestioni alternative possono far nascere dubbi sugli effetti che si possono avere nella gestione dei dati, in particolare per le properità dichiarate come nullable type.
In realtà entrambi gli approcci non influiscono sui nullable, e ne permettono tranquillamente la gestione anche tramite un binding limitato come può essere il basicHttpBinding, quello disponibile da Compact Framework.

In conclusione, utilizzando le proprietà xxxSpecified bisogna ricordarsi di impostare a true le proprietà da trasmettere (una soluzione può essere utilizzando un costruttore definito in una partial class), viene “sporcata” la definizione della classe con queste proprietà (in certi contesti potrebbe anche dar fastidio), ma si ha il vantaggio di poter gestire il versioning; usando IsRequired, invece, è sufficiente impostarne il valore associato agli attributi DataMember.

Se avete altre considerazioni da aggiungere, i commenti sono aperti ;)

author: Stefano Ottaviani | posted @ mercoledì 7 ottobre 2009 19.06 | Feedback (0)

Studiare con un e-book reader


La mia esperienza con lo studio tramite e-book reader. Clicca per leggere...

author: Stefano Ottaviani | posted @ martedì 6 ottobre 2009 23.59 | Feedback (8)

[DotNetMarche] 11° Workshop "Refactoring 2TheMax (con ReSharper)"


Venerdì prossimo (9 ottobre) terremo un workshop nella solita sala di Fano (PU) sulla pratica del refactoring, utilizzando nello specifico ReSharper, uno strumento realizzato da JetBrains, alla quale abbiamo voluto riconoscere il nostro apprezzamento tramite questo evento sia per il supporto che ci ha dato in questi anni, fornendoci delle licenze da regalare a speaker e partecipanti, sia per l’effettiva validità del tool in sé, diventato ormai indispensabile per molti di noi dello staff… “toglieteci tutto, ma non il R#” (cit. :)

Qui potete trovare l’agenda e la pagina per l’iscrizione all’evento (gratuito, as usual): http://dotnetmarche.org/eventi/Default.aspx?IDevento=30

PS: dopo il workshop ci sarà la consueta cena, che questa volta si preannuncia particolarmente spumeggiante per festeggiare i successi di due dei nostri amici… non ve la vorrete mica far mancare, no :P?

author: Stefano Ottaviani | posted @ domenica 4 ottobre 2009 10.56 | Feedback (0)

Domanda sui possibili speaker INETA e community


Dopo l’entusiasmo e la felicità condivisa per gli MPV (sia nuovi che riconfermati), a cui vanno i miei complimenti ;), ho fatto un post nel forum per chiedere una questione riguardo ai possibili speaker INETA, di cui si discuteva qualche giorno fa con Alk…. oltre agli speaker, può interessare anche alle community, soprattutto quelle locali!

Se volete contribuire, trovate qui il post.

author: Stefano Ottaviani | posted @ giovedì 1 ottobre 2009 19.01 | Feedback (0)

NetCFSvcUtil può dare problemi con Windows Vista SP2 e Windows 7


Finalmente ho trovato una risposta “ufficiale” ad un errore che mi veniva fuori sui miei pc quando provavo ad usare NetCFSvcUtil su delle macchine casualmente proprio con Vista Sp2 o Windows 7. Il messaggio di errore in sé non è che aiutasse poi molto, essendo qualcosa tipo

Error: An error occurred in the tool.
Error: Error in the application.

La risposta è riportata qui, e la soluzione è semplicemente di usare un sistema precedente in attesa di aggiornamenti dell’utility… quindi vai di virtual machine!

PS: se non altro, unica consolazione dopo ore perse a cercare di capire e risolvere il problema (tempo fa, prima che fosse pubblicato quel post), non ero io che sbagliavo qualcosa!

PS2: è in casi come questi che si apprezza l’opensource, almeno (ammesso che si riesce a mettere le mani sul codice, e su piccole utility come questa potrebbe non essere impossibile) ci si può arrangiare invece di perdere ore brancolando nel buio.

author: Stefano Ottaviani | posted @ sabato 11 luglio 2009 11.47 | Feedback (2)

Amplificare il segnale ricevuto dai telefoni cellulari


Se ne parlava l’altra sera con Lorenzo, quando siamo andati a cena, dopo il workshop su VSTS, in un ristorante che faceva delle ottime fiorentine (indimenticabile quella di bisonte!) ma aveva un problemino: all’interno del locale, a causa delle mura spesse, il cellulare non prendeva neanche una tacca di segnale, mentre all’esterno la ricezione era piuttosto buona.

Abbiamo avuto lo stesso problema lo scorso anno nel nostro nuovo ufficio e fortunatamente siamo riusciti a trovare una soluzione che ci evitasse in particolar modo di fare i salti mortali quando bisogna parlare al cellulare stando contemporaneamente davanti al pc. Visto che Lorenzo mi chiedeva info a riguardo, le riporto direttamente qui.

Esistono in commercio degli amplificatori dei vari segnali (gsm, umts, …) che, a condizione che la ricezione all’esterno dell’edificio sia buona, permettono di portare anche all’interno il segnale, usando un meccanismo molto semplice: si monta all’esterno (es. sul tetto) un’antenna simile a quella della tv e, tramite un cavo coassiale, si porta il segnale all’interno della stanza, dove si porrà un’altra antennina (ovviamente collegata all’altra estremità del cavo coassiale) necessaria per diffondere il segnale all’interno del locale.

Se ho capito bene, esistono principalmente due tipi di sistemi, che si differenziano in base al tipo di antenna usato all’interno del locale:

  • quello passivo, imho di fatto inutilizzabile, consistente in una semplice antenna riportata all’interno del locale, che ha un raggio di azione molto limitato, per cui con il cellulare si può arrivare a distanze di max 1 metro dall’antenna (addirittura alcuni sistemi prevedono che il cellulare venga collegato proprio con un filo all’antenna!)
  • quello attivo, costituito da un antenna che amplifica il segnale all’interno del locale (si tratta di una specie di scatoletta alimentata con antenne tipo router) e permette di muoversi tranquillamente con il cellulare nella stanza.


Nel nostro caso, quasi da un anno, stiamo utilizzando senza problemi (anzi, ci ha praticamente evitato di considerare quasi inutilizzabile il nuovo ufficio) un amplificatore di segnale attivo. Abbiamo preso un modello che offre solo banda GSM (ci era cmq sufficiente, avendo l’adsl) e lo utilizziamo in una stanza da 50-60 mq (secondo le specifiche può coprire 150mq).

Trattandosi di prodotti un po’ particolari, segnalo pure il sito (con il quale non ho alcun legame) dal quale abbiamo effettuato l’acquisto (e credo che un po’ di sano passaparola se lo meritino tutto): http://www.eurweb.it/

Nel dettaglio, il modello che stiamo utilizzando è il Kit EU-900/50Y mostrato in questa pagina.

HTH

author: Stefano Ottaviani | posted @ lunedì 18 maggio 2009 23.11 | Feedback (2)

[DotNetMarche] Microsoft Days Community After Hour - 'Silverlight in Action'


Anche DotNetMarche, alfine, si aggrega ai Community After Hour del tour dei Microsoft Days, con un evento programmato per giovedì 11 dicembre.

Dopo averci introdotto a Silverlight 2 (all'epoca in stato di beta) in una sessione del tour di lancio di Visual Studio 2008, Alessandro Giorgetti torna a parlarcene con un intero evento dedicato alla versione finale.
Durante l'incontro, di taglio pratico, con tanto codice e poche slide come piace a noi programmatori, Alessandro ci illustrerà come utilizzare Silverlight per costruire applicazioni business (LOB - Line Of Business applications) e come poter riutilizzare il codice sviluppato in soluzioni basate su WPF.

L'evento, di livello medio / avanzato (per l'introduzione a Silverlight è disponibile il materiale della precedente sessione di Alessandro con codice aggiornato alla versione finale di Silverlight qui), si concentrerà quindi più sulle caratteristiche che permettono a Silverlight di essere una tecnologia adatta per realizzare applicazioni LOB, grazie anche all'integrazione con le altre componenti del framework come WCF e LINQ, rispetto alle sue potenzialità a livello multimediale.

Ci focalizzeremo su questioni come:

  • architettura del progetto
  • realizzazione di interfacce utente
  • interazione con il Data Layer e servizi in generale
  • multitargetting Silverlight / WPF
  • integrazione dell'applicazione principale con moduli / plugin, tramite pattern MVP e MVC (per semplificare il porting su WPF)
  • modularità ed inversione di controllo


L'iscrizione all' evento è gratuita! Qui Agenda e Registrazione.

author: Stefano Ottaviani | posted @ martedì 18 novembre 2008 14.54 | Feedback (0)

Human Network Live Effect


Da lunedì è partita un'iniziativa, che durerà per 5 giorni, interessante per diversi motivi: 5 ragazzi vivranno all'interno di una particolare casa parlando di tecnologie, social network e molte altre cose, facendo anche collegamenti all'esterno con personaggi interessanti. Il tutto è trasmesso in diretta dal sito dell'iniziativa.

La casa stessa, la "Leaf House", fa parte di un interessante progetto avviato qualche mese fa dal Gruppo Loccioni (noto a noi di DotNetMarche perchè ha ospitato un paio di nostre eventi): si tratta di una casa in cui si stanno sperimentando soluzioni per la domotica, integrandole alle tecniche per il risparmio energetico ed il rispetto per l'ambiente.

Dal sito:

L'iniziativa

5 giorni di diretta in streaming dove potremo seguire via web la vita quotidiana di 5 ragazzi che hanno passioni diverse e vivono in contesti e aree geografiche differenti, che faranno cose divertenti e serie, che ci sveleranno i trucchi della rete, che discuteranno con il mondo degli internauti di argomenti sociali e personali con ospiti importanti.
Un'avventura da seguire come e quando vogliamo, scegliendo i contenuti e potendoli rivedere quando desideriamo, in libertà e democrazia come ci consente di vivere la rete e quindi Cisco.

La location

La Leaf House (Angeli di Rosola, Ancona) è un edificio ecologico perfettamente integrato nell’ambiente e si basa sui principi della bio-architettura. È una casa a zero emissioni di anidride carbonica, e alimentata da fonti di energia rinnovabili. I pannelli solari termici e fotovoltaici istallati vengono sfruttati grazie all’esposizione a sud della struttura. L’energia prodotta non utilizzata viene immagazzinata grazie ad un sistema di accumulo basato su idrogeno e successiva produzione di elettricità per l’immagazzinamento dell’energia. La casa è dotata, inoltre, di un set di elettromedistici "green", composto dai prodotti che dialogo direttamente con il contatore elettrico. Viene sfruttata anche l’energia geotermica, utilizzata per la climatizzazione dell’edificio, mentre le acque piovane vengono recuperate per l’irrigazione e gli scarichi.

La Leaf House è dotata delle più avanzate tecnologie di comunicazione e di rete fornite dalla società Cisco. In particolare la struttura possiede un’infrastruttura Vlan che prevede la separazione virtuale fra le reti dei differenti appartamenti ed è sviluppata per le funzioni di controllo, gestione e monitoraggio degli ambienti. Presente anche una rete di copertura WiFi gestita da un controller che permette agli utenti della casa di utilizzare la connessione o meno. Nella casa sono presenti cinque Access Point Aironet 2100.

La casa è dotata di strumenti per la comunicazione unificata che dà agli utenti la possibilità di lavorare in mobilità. In particolare sono applicate soluzioni per la gestione, monitoraggio e controllo a distanza dei consumi elettrici, del riscaldamento, dei consumi telefonici, e della domotica.

 

HNLE: http://www.humannetworkliveeffect.it/

Leaf House: http://www.leafcommunity.com/

author: Stefano Ottaviani | posted @ mercoledì 24 settembre 2008 14.21 | Feedback (1)

[DotNetMarche] Pubblicate le registrazioni audio del workshop sul Testing


Sono state pubblicate qui le registrazioni audio del workshop "Testing & Asp.NET MVC", tenuto il 27 Giugno da Gian Maria Ricci e Simone Chiaretta!

Grazie a Sauro e Ste per l'editing dei file!

author: Stefano Ottaviani | posted @ venerdì 8 agosto 2008 10.08 | Feedback (6)