Il buon programmatore - consigli pratici per una vita felice

by Andrea 07 October 2013 11:21

Venerdì 11 Ottobre 2013 si terrà il XeDotNet community meeting "Best Practices", dove io terrò una sessione dal titolo "Il buon programmatore - consigli pratici per una vita felice".
Ecco qui l'abstract:

Lavorando come consulente mi sono trovato spesso di fronte a problematiche (a volte banali), ma che erano la causa di gravi problemi di performance dell'appliccazione realizzata, oppure più banali, ma che rendevano il codice meno manutenibile e gestibile, specialmente lavorando in team. Vedere che nel tempo, persone/realtà diverse, commettono gli stessi errori mi ha fatto pensare a questa sessione...dove intendo elencare i problemi più comuni, che per causa di tempo o scarsa conoscenza, vengono commessi, e proporre delle soluzioni semplici da poter applicare fin da subito. (ASP.NET, ma non solo)

La sessione è frutto di esperienze/problematiche che ho affrontato nel corso della mia attività di consulente (www.dottor.net). Non vi presenterò soluzioni a problemi complessi, o montagne di codice, ma bensì cercherò di darvi dei suggerimenti pratici che vi faciliteranno la vita.

 

Prima della mia sessione, Davide Vernole ci parlerà di ALM con la sessione "ALM Assessment: a che livello siete?"

Misurare la nostra capacità di gestione del ciclo di vita di un'applicazione non è sempre un'operazione semplice. In questa sessione impareremo a conoscere i livelli di maturità dell'ALM e le discipline a cui si applicano e vedremo come sia possibile misurare la maturità ALM del nostro team.

 

Per partecipare al meeting, registratevi a questo link: http://www.xedotnet.org/Home/Meeting/20131011

Tags: , , ,

.NET | ASP .NET | XeDotNet

Conoscere se un Type è di tipo Nullable<T>

by Andrea 30 September 2013 14:14

Oggi sono re-incappato nel caso di dover verificare su un tipo T all'interno di una funzione generica fosse di tipo Nullable<> o no.

Ed ecco una possibile soluzione:

Type type = typeof(T);
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof (Nullable<>))
{
 
}

Fonte MSDN: How to: Identify a Nullable Type (C# Programming Guide)

Ci sono operazioni che non si fanno tutti i giorni, dove per ritrovare quella riga di codice necessario basterebbe riaprire del vecchio codice, oppure cercare un pò in rete...ma visto che potrebbe essere utile non solo a me, ho deciso di riportarla qui nel blog.
;-)

Tags: ,

.NET

Migliora il tuo codice con Knockout.js

by Andrea 30 March 2013 11:52

Venerdì 5 Aprile 2013 terrò un meeting dal titolo "Migliora il tuo codice con Knockout.js"

Abstract:
In questa sessione vedremo come Knockout.js permetta di scrivere codice JavaScript in modo pulito e organizzato, semplificando la scrittura del codice e la sua manutenzione. Come lo si utilizza KO? Quali vantaggi ci offre? Quali librerie ci vengono in aiuto? Quali sarebbe meglio evitare?

Ci troviamo a scrivere sempre più codice client-side, e utilizzare strumenti/librerie che ci permettano di aiutarci in questo compito è sicuramente un valore aggiunto, sia per i tempi di sviluppo, ma anche per la manutenzione del codice. Rendere il codice più leggibile, strutturare meglio l'applicazione, utilizzare strumenti validi sono solo alcune delle cose di cui vi parlerò.

Se non conoscete Knockout (http://knockoutjs.com/), questo meeting fa proprio al caso vostro. Vedrete le potenzialità di questa libreria, e scoprirete un paio di framework che combinati con KO vi aiuteranno davvero molto nello sviluppo JavaScript.

Per registrarvi: http://www.xedotnet.org/Home/Meeting/20130405

Tags: , , ,

.NET | JavaScript | jQuery | XeDotNet

Spostare i file temporanei di ASP.NET

by Andrea 30 March 2013 11:19

Quando eseguite una qualsiasi applicazione ASP.NET, il runtime genera alcuni file temporanei all'interno della cartella %FrameworkInstallLocation%\Temporary ASP.NET Files\ , e la dimensione che questa cartella può raggiungere non è da sottovalutare quando l'applicazione fa un forte uso di codice compilato a runtime oppure è composta da un'enormità di controlli e pagine.

Mi è capitato più volte di dover procere alla cancellazione manuale di questi file, ma in alcuni hosting non si ha accesso alla cartella Windows e suo sottocartelle per restrizioni date all'utente con cui ci si collega al server.

In queste casistiche si può risolvere la cosa spostando la cartella dei file temporanei dell'applicazione agendo direttamente nel web.config, andando a settare nel parametro compilation -> tempDirectory il percorso della cartella da utilizzare, rendendola così raggiungibile.
Prestate attenzione, in quanto dovete assegnare alla nuova cartella i permessi di scrittura e lettura all'utente con cui viene eseguita l'applicazione (solitamente specificato nell'application pool).

Esempio:

<compilation ... tempDirectory="C:\temp\mia_app_temp\"> ... </compilation>

Link documentazione MSDN:http://msdn.microsoft.com/en-us/library/s10awwz0(v=vs.85).aspx

Tags:

.NET | ASP .NET

La mia prima esperienza da DEV con Windows Phone

by Andrea 18 April 2012 00:49

Tempo fa vi ho scritto della mia prima esperienza di sviluppo con Android (link), ed all'epoca ne ero anche entusiasta....ma perchè ancora non avevo provato a sviluppare per Windows Phone.
In termini di diffusione dei dispositivi purtroppo non si può dire lo stesso...ma in questo post voglio concentrarmi solo in quel che riguarda la parte di sviluppo.

Emulatore

La cosa che adoro in assoluto è la velocità e la leggerezza dell'emulatore Windows Phone, e chi ha provato a sviluppare per android sa bene la differenza abissale che c'è rispetto all'emulatore di android (lento e molto molto pesante). Già solo questo aspetto permette di velocizzare e non di poco la fase di sviluppo di un'applicazione.

Metro Style

Per chi mi conosce sa che con xaml non sono espertissimo, ma ad aiutarmi nello sviluppo per Windows Phone è stato proprio lo stile metro del telefono. Ebbene si, l'utilizzo dei controlli panorama e pivot, uniti alla semplicità dello stile metro fanno si che un'applicazione possa essere accativante ed usabile, senza necessariamente dover essere dei guru di xaml. 

Ovvio che conoscere xaml come si deve permette di fare la differenza, non solo in termini di tempo, ma anche nel feedback che l'app può dare. Animazioni, effetti grafici, ... sono aspetti che sicuramente catturano l'attenzione dell'utente finale.

Le mie app

Ed ecco qui il risultato delle prime notti spese per imparare questa piattaforma:

- Date Calculator

http://windowsphone.com/s?appid=3aee2367-41d5-448e-b21b-1f9ed5e7de79

Si tratta di un'app per eseguire calcoli con le date. Poter aggiungere e sottrarre giorni, mesi e anni da una precisa data, oppure calcolare la differenza tra due date inserite.
Un'applicazione semplice che mi ha dato modo di conoscere il controllo panorama, ed iniziare a conoscere il toolkit (controlli aggiuntivi per Windows Phone) che ho utilizzato nel selettore delle date.

- Baby Calculator

http://windowsphone.com/s?appid=707ef9e0-6fe0-44cf-92b2-4e8b66a86a9b

In questo caso la calcolatrice è solo una "scusa" per far usare l'app. Nella realtà è nata per aiutare l'associazione tra numero scritto e la relativa pronuncia per i bambini...infatti alla pressione dei tasti numerici, il numero premuto viene anche "letto" da una voce.
Nell'ultima versione ho aggiunto la possibilità di far registrare l'audio che verrà riprodotto alla pressione dei tasti numerici, in modo di dare la possibilità ai genitori di utilizzare la loro voce oppure per far divertire i bambini registrandoci dei suoni e rumori.
Con quest'app ho approfondito così tutto l'aspetto che riguarda la registrazione e riproduzione audio, per non parlare anche dell'IsolatedStorage utilizzato per il salvataggio dell'audio registrato.

Se avete modo di provarle (specialmente Baby Calculator) ogni feedback è sempre ben accolto ;-)

Conclusioni

Sviluppare per Windows Phone è proprio piacevole. I tool di sviluppo fanno poi l'enorme differenza (rispetto le altre piaforme tipo android e iphone) e permettono di realizzare applicazioni con (quasi) estrema facilità. Microsoft, con Visual Studio ci stà proprio viziando per bene.

Ed ora una nota da utente finale: da quando stò utilizzando il nokia lumia 800 come telefono principale, ammetto di non aver sentito proprio la mancanza di android (se non per un paio di funzionalità devvero minori). 

Speriamo veramente che Windows Phone prenda piede il più possibile!

 

Start Something! Tour – Windows 8 e WP7.5 

Per chi voglia provare questa esperienza, ricordo che ci sarà un lab  a Mestre (Start Something! Tour – Windows 8 e WP7.5 ) il 3 maggio 2012 ed è sufficiente registrarsi qui http://www.xedotnet.org/Home/Meeting/201205031

Buon sviluppo a tutti

Tags:

.NET | Generale | Tempo libero

Non sono sparito

by Andrea 11 April 2012 02:52

E' da parecchio che non scrivo in questo blog, o meglio, è da parecchio che non scrivo post che non riguardino solo le mie sessioni.
Da parecchio tempo mi ripeto di ricominciare a scrivere, perchè di cose da scrivere ce ne sarebbero molte...ma twitter e facebook sono molto più rapidi, e spesso prediligo una frase li piuttosto che un post in questo blog...ma vediamo di cambiare queste cose.

Iniziamo

Sono passati parecchi mesi da quando ho lasciato definitivamente il lavoro da dipendente, e le cose sono cambiate davvero parecchio.

Lavorare come un mulo

Continuo a lavorare come un mulo, forse addirittura più di prima....ma ora lo faccio per me e non per gli altri. So che portare la pagnotta a casa dipende solo da me, quindi spetta a me compiere le scelte giuste, e portarle avanti nel modo che ritengo giusto. Almeno so che pagherò per errori miei, e non (come successo in passato) per errori di altri.

Nuove tecnologie

Ho iniziato ad affrontare/utilizzare tecnologie di cui avevo solo letto articoli o seguito sessioni, ed è qui che le community sono state di primaria importanza...aver seguito meeting su ogni tecnologia, o aver letto articoli a riguardo, mi stà tornando proprio utile, e mi ha permesso di accettare lavori che hanno portato a molte altre opportunità.
Ero sempre riuscito a mantenermi al passo per quello che riguardava ASP.NET (che è sempre la mia tecnologia principale), ma ora finalmente affronto anche progetti WPF, Windows Phone, ed altri...con maggiore sicurezza.

A volte son soddisfazioni

Parlare direttamente con i clienti e vedere in loro la soddisfazione per ciò che gli hai consegnato, è impagabile...era difficile da dipendete avere un responsabile/capo che ti facesse capire quanto il tuo lavoro fosse importante (o che si complimentasse per il risultato raggiunto). Ora invece i complimenti arrivano a me, come anche le eventuali rogne...ma questo è il nostro mestiere. Non sono sempre soddisfazioni, ma quando arrivano ti fanno (quasi) dimenticare i momenti bui.

Prof

Ho anche iniziato a fare il docente per alcuni moduli web per http://www.tecnicosuperiorekennedy.it/ e devo ammettere che anche dopo parecchi mesi ancora non mi sono abituato a sentirmi chiamare "prof". Ma che soddisfazione vederli crescere...

Tirando le somme

Sono ancora pienamente convinto della scelta che ho fatto, e se tornassi indietro, la rifarei con ancora maggiore sicurezza.
Non ho smesso di lavorare le sere o i fine settimana....ma sono certo (e datemi pure dell'illuso) che prima o poi ci riuscirò :-P

Tags:

+1 | Generale

Inizia un nuovo anno per XeDotNet

by Andrea 11 January 2012 00:10

E' stato pubblicato il calendario degli eventi XeDotNet per il primo semestre del 2012.

10/02/2012 - HTML5 e lo sviluppo mobile

  • Andrea Dottor - ASP.NET e lo sviluppo mobile
  • Davide Senatore - Packaging HTML5 application with PhoneGap

09/03/2012 - Sviluppo client side

  • Andrea Boschin - What's new in Silverlight 5.0
  • Andrea Dottor - Il mondo è sempre più client. ASP.NET e lo sviluppo Client Side

06/04/2012 - Real world experience

  • Cristiano Simionato - Ma quanto costa Windows Azure?
  • Mirco Vanini - REST & .NET Micro FW - A Real Case

04/05/2012 - Uno sguardo a futuro

  • Davide Vernole - Visual Studio vNext - Application Lifecycle Management
  • Andrea Boschin - Sviluppare applicazioni Metro con Windows 8 e WinRT.

01/06/2012 - Playing with gadgets

  • Mirco Vanini - Are you a Gadgeteer?
  • Davide Vernole - Playing with Team Foundation Server
Per quanto mi riguarda, avrò il piacere di tenere due sessioni, basate su alcune esperienze lavorative che ho affrontato in quest'ultimo periodo.
Le sessioni si completano a vicenda, la prima basata sullo sviluppo verso il mondo mobile grazie all'utilizzo di HTML5, jquery mobile, ASP.NET MVC e WCF...mentre la seconda si propone di presentare alcune interessanti librerie javascript e la loro integrazione con ASP.NET, e alcuni suggerimenti di come sviluppare al meglio client-side.

Quindi non vi rimane che registrarvi ;-)

Tags: , , , ,

.NET | ASP .NET | ASP.NET AJAX | XeDotNet

Codice e slide della sessione ASP.NET MVC in a real world

by Andrea 28 September 2011 13:04

Sono disponibili al download le slide ed il codice della sessione ASP.NET MVC in a real world che ho tenuto al XeDotNet Community Meeting Web & Natural Interfaces del 13 settembre 2011.

Abstract: ASP.NET MVC stà prendendo sempre più piede, e le ultime release hanno portato importanti nuove funzionalità. Sempre più applicazioni vengono realizzate utilizzando questa tecnologia, e lo sviluppatore si trova ad affrontare nuove problematiche, che spesso differiscono da quelle di ASP.NET WebForm. Questa sessione non sarà una carellata sulle nuove funzionalità, ma bensì affronteremo problematiche reali in cui spesso lo sviluppatore incappa durante lo sviluppo di un'applicazione web, dimostrando quanto questa tecnologia sia flessibile e al tempo stesso potente e performante.

Un ringraziamento particolare ad Andrea Agnoletto per aver contribuito con la sua presentazione.

Tags: , , ,

ASP .NET | XeDotNet

Libero professionista a tempo pieno

by Andrea 10 September 2011 04:05

logoEbbene si, da quasi un mese, sono libero professionista a tempo pieno. Una nuova sfida da affrontare.

Sono più di 3 anni che ho la partita iva, ma fino al mese scorso ho sempre lavorato come dipendete. Questo mi ha permesso di aver le spalle sempre coperte e riuscire al tempo stesso a confrontarmi con sempre nuove prove.
L’essere dipendete ha sicurametne molti vantaggi, ma al tempo stesso può essere (a volte) limitante. (per poter tenere un corso (come speaker) dovevo prendermi ferie…per clienti che mi richiedevano la presenza da loro, avevo principalmente solo il sabato…)

Ho scelto di fare un passo importante, di lanciarmi in una nuova sfida, e mettermi totalmente in gioco decidendo di intraprendere questa nuova strada.
Alcune persone mi hanno spinto in questa decisione, altre mi hanno fatto riflettere, specialmente a riguardo del periodo non proprio positivo, e ho tirato le somme.
Per me (e per mia moglie) questo era il momento giusto, ed ora non mi rimane altro che impegnarmi a pieno in questo nuovo obbiettivo e continuare a crederci fino in fondo.

Il tutto sembra esser iniziato proprio nel migliore dei modi Open-mouthed smile

Tags:

+1 | ASP .NET | Pensieri | Generale

Codice e slide della sessione Sviluppare con DotNetNuke. Un framework sul framework

by Andrea 01 June 2011 05:56
Ecco pronti al download le slide ed il codice della sessione Sviluppare con DotNetNuke. Un framework sul framework che ho tenuto al XeDotNet community meeting del 20 Maggio 2011.

Abstract: Sviluppare applicazioni, occupandosi delle sole funzionalità che vuole il cliente, senza doversi occupare anche del codice di infrastruttura può sembrare un'utopia, ma non è così. In questa sessione vedremo come DotNetNuke, che è un CMS (content management system) open source, permetta allo sviluppatore tutto ciò. DotNetNuke può essere visto come un framework sul framework, in grado di fornire allo sviluppatore funzionalità avanzate che permettono di aumentare la produttiva e al contempo di ridurne i tempi di sviluppo.

PS: Nello zip contenente il codice non è presente DotNetNuke. Per il suo donwload rimando al sito di riferimento www.dotnetnuke.com.

PPS: E aggiungo che Speaker Timer ha funzionato alla perfezione! Testato sia con la mia sessione, che con quella di Davide… Android rulez!

Tags: , , ,

ASP .NET | .NET | XeDotNet