La condivisione nell’era della condivisione

Oggi condividiamo momenti e attività di altri o della nostra vita attraverso video, foto, messaggi, i luoghi in cui siamo e lo facciamo con amici oppure con perfetti sconosciuti che includiamo tra le nostre amicizie per aumentare la nostra popolarità.

In futuro, la condivisione crescerà in modo esponenziale, oltre ai nostri momenti condivideremo le informazioni dei nostri dispositivi, già lo facciamo con bracciali fitness e affini, della nostra macchina e di tutti quei sensori che saranno presente intorno a noi.

La condivisione però non è così presente all’interno delle aziende, certo, parliamo di un altro tipo di condivisione, mi riferisco allo scambio di idee, parlare per avere obiettivi comuni, utilizzare il potere della condivisione per non lasciare indietro nessuno, spiegare perché vengono fatte scelte di un tipo piuttosto che altro.

Sempre di più le aziende avranno la necessità di prendere questa direzione, di condividere gli obiettivi interni, preoccuparsi dello stato di salute del gruppo di lavoro, verificare la produttività e questo può avvenire solo condividendo e deve essere uno sforzo bidirezionale.

Di recente mi è capitato di leggere articoli e libri e seguire qualche seminario online di metodologie Agile in particolare SCRUM. Quello che ho constatato è che questi metodi di lavoro sono molto efficaci se calati dall’alto dell’azienda, utilizzare solo alcune di queste regole o partire dal basso, non porta un reale vantaggio o comunque non è incisivo sulla reale produttività. Una delle pratiche consigliate da molte metodologie Agile, è quella di utilizzare la condivisione per rendere il gruppo di lavoro più coeso, condividere non solo lo stato del progetto e gli obiettivi ma anche condividere la conoscenza per mettere a tutti di essere allo stesso livello o comunque avere un livello di produttività bilanciato rispetto al gruppo e questo di certo è uno dei punti più importanti, gli altri sono la comunicazione, la semplicità e la velocità, ma questi sono discorsi più ampi.

Scrivo questo post perché una delle problematiche maggiori nel mondo del lavoro (mi riferisco al nostro paese in particolare) è che esiste ancora una mentalità dove è predominante l’idea che la gerarchia sia il corretto modo di gestire un’azienda e che tenere le informazioni sia un modo per creare dipendenza e assicurarsi il posto di lavoro o il cliente. Entrambe le cose le ho sempre considerate sbagliate, certo, una gerarchia deve esserci perché è necessario un punto di riferimento, prendere decisioni e gestire il gruppo di lavoro ma deve essere fatto in modo che non ci sia troppo distacco tra il management e il gruppo stesso, per quanto riguarda l’idea non condividere, porta con se’ il problema di restare bloccati se io ho un’idea e non la condivido e vado dritto per la mia strada potrei trovarmi ad avere un risultato di insoddisfazione generale e questo contribuisce alla negatività del gruppo/azienda/cliente.

Il mondo del lavoro sta’ cambiando molto velocemente, c’è la necessità di essere pronti ai cambiamenti ed a reinventarsi con una velocità sempre maggiore e tempi sempre più corti.

Buona lavoro a tutti.

Io sono uno sviluppatore

Purtroppo il mio lavoro è sempre più scontato, più andiamo avanti e più sembra talmente semplice fare le cose che sembra non sia più necessario fare sviluppo o se si decide di farlo, deve essere una cosa veloce, tanto è facile, lo fanno tutti…
Di fatto è vero che abbiamo strumenti più completi, più veloci e che permettono di scrivere meno codice ripetitivo ma comunque è necessario il tempo, è necessaria la conoscenza, è necessario lo studio, è necessaria la passione e la professionalità che va pagata e apprezzata.

Non posso considerare sviluppatore:

  • Chi “scrive” HTML (odio la frase… sono un programmatore HTML)
  • Chi copia incolla senza capire cosa stia realmente facendo
  • Chi pensa che JQuery e javascript siano cose diverse
  • Chi pensa che javascript sia un sottoinsieme di Java
  • Chi prende il codice di altri da Github, si lamenta che non fa quello che vuole e scrive all’autore per chiedere di fargli delle modifiche. La collaborazione???
  • Chi pensa che l’open source sia meglio perché gratis
  • Chi fa domande stupide e non capisce che quella che ha fatto è realmente una domanda stupida
  • Chi da sempre fa solo quella cosa, conosce solo il suo mondo e non è interessato al cambiamento

Il nostro lavoro non è fatto solo da strumenti “prefabbricati” (Worpress o simili), il codice è ancora quello che si scrive ed è necessario, tempo, logica e pazienza che spesso si perde.

Il codice deve ancora essere pensato e scritto a mano se vuoi fare innovazione, se vuoi qualcosa che ancora non c’è, questa deve essere realizzata da qualcuno e questo è lo sviluppatore.

Un’applicazione non è solo slide, colori, grafica, video e bottoni, dietro c’è una logica che fa sì che quell’applicazione faccia qualcosa di diverso dalle altre.

Vorrei buttare su questo post mille altre cose ma chiudo dicendo… E CHE CAZZO!!!

Ho cambiato telefono

Di per se, questa non è una notizia interessante, chi mi conosce però può continuare a leggere in quanto ho abbandonato, dopo intensa e profonda meditazione, il mondo Windows Phone/Mobile di Microsoft a favore di Apple, sono passati 6 anni.

Perché è stata una scelta così sofferta? la risposta è semplice, ho sempre considerato, e ancora adesso ho qualche speranza, Windows Phone come un’ottima piattaforma, non solo dal punto di vista del sistema operativo in se, ma dall’interfaccia, dagli strumenti di sviluppo, per le sue caratteristiche, per i vantaggi che poteva portare al mondo business e per un sacco di altre cose. Dove e quando si è rotto questo feeling? nell’esatto momento nel qualche Microsoft ha fatto capire che non sarebbe mai stato un punto di interesse nelle loro priorità, il fatto che negli ultimi due anni non siano stati in grado di dare una forma e contenuto al progetto e ci abbiano messo molto impegno a cancellare ciò che con fatica avevano acquisito in termini di credibilità e mercato, partendo in grave ritardo rispetto ai concorrenti erano riusciti a mangiare qualcosa che si è praticamente azzerato nell’ultimo mese.

Scrivo questo post per fare un confronto dopo un paio di settimane di utilizzo, portando una mia opinione su quello che, secondo me, è lo stato delle cose. Premetto che sono passato a Apple avendo sul mio device precedente, un Lumia 830, Windows Mobile 10 Preview.

La scelta di cambiare arriva prevalentemente per un motivo, non era il fatto di avere un iPhone ma ciò che più mi mancava sulla piattaforma Microsoft era, “quello che c’è attorno”.

Realisticamente iPhone è un bel dispositivo ma dal punto di vista delle caratteristiche hardware c’è di molto meglio, quello che si paga, all’acquisto di questo oggetto, è il mondo nel quale ti ritrovi, le App, i servizi, e la semplicità nel fare le cose. Come sempre in questi casi è naturale fare confronti, almeno nel mio caso visto che lo uso in modo intensivo per fare molte cose, ecco una mia tabella di giudizio con alcune annotazioni.

Premetto che il dispositivo di Windows Phone è di fascia medio alta e l’iPhone di fascia alta quindi non posso fare un confronto in dettaglio, il mio è un riferimento all’uso quotidiano e non una questione prestazionale.

Oggetto

Voto Lumia 830

Voto iPhone 6sPlus

Note

Telefonate 10 7
Questo è quello che mi ha colpito di più nell’iPhone, le telefonate cadono, la qualità della chiamata non è sempre buona e la qualità del segnale non è stabile sul Lumia problemi di questo tipo mai avuti.
WiFi 10 8
Con la stessa configurazione, sull’Phone salta all’occhio la netta differenza di presa dell’antenna WiFi, una volta preso il segnale però è stabile
Interfaccia principale (Shell) 8 7
Windows Phone 8.1 (Windows 10 mobile è ancora troppo giovane e informe per dare opinioni a riguardo) ha certamente un’interfaccia molto intuitiva e semplice, le live tile sono certamente un valore aggiunto per avere sott’occhio le informazioni e la gestione dei contatti è più immediata. IPhone ha una gestione delle cartelle un po approssimativa utile per poche icone, in caso contrario si comincia a perdere di vista dove sono le cose e quindi capire dove trovare l’informazione.
Interattività e usabilità 7 10
IOS vince a mani bassi, intuitivo, basta poco per entrare nell’idea dell’interfaccia, ha più anni e quindi ha avuto più tempo per consolidarsi verso gli utenti e Apple ha sempre investito molto su questo argomento portando a ottimi risultati. Windows Phone, è partito bene ma la strada si è interrotta in favore di Windows 10 Mobile che ancora non ha trovato la sua strada, ed è tutta in salita.
App 1 10
Questo è uno dei motivi che ti fanno scegliere Apple, non c’è confronto, App fatte molto bene, disponibili per ogni cosa che vuoi fare, molto curate e in linea con le guide fornite da Apple per permette all’utente di avere la sua “confort zone” durante l’utilizzo del device.
A questo posso aggiungere che le stesse App di Microsoft su iPhone funzionano molto meglio.
Servizi 6 9
Per servizi intendo tutto quello che ci troviamo attorno quando utilizziamo il dispositivo, dall’integrazione con gli altri dispositivi, gli accessori e le informazioni/notifiche
Durata batteria 9 8
Ovvio che questo argomento implica la modalità di utilizzo del dispositivo stesso, di quante app hai in background, di quanto utilizzi il telefono o la connessione dati. In entrambi a casi mi trovo nella stessa situazione benchè i due dispositivi siano di fascia diversa quindi il Lumia è qualcosina meglio, mi aspetto che con un Lumia 950/XL si abbiano risultati migliori.

La tabella potrebbe essere più dettagliata ma non ne vedo il motivo, il dettaglio di quanto è bella la fotocamera di uno o dell’altro, di quanto dura la batteria, quanta memoria ha o la sua CPU, sono informazioni superflue e necessarie solo nel momento in cui scelto un dispositivo per una ragione specifica, se cerco qualcosa che mi possa essere di aiuto almeno nel 90% di quello che devo fare, queste sono le cose che ponderi quando fai la scelta di uno smartphone da tenere con te.

Anche se Microsoft dovesse riconoscere l’effettivo fallimento del progetto, le mosse che sta facendo in questo mercato non sembrano avere una strategia che possa far pensare ad un ripresa nei prossimi anni, il mondo IT consumer e IT business sono molto veloci e molto volubili quindi nulla è mai come potrebbe sembrare oggi, ci sono esempi eclatanti che lo dimostrano.

Ho visto la luce in fondo al tunnel Microsoft

Settimana scorsa si è svolto il //Build 2016, per chi non sapesse di cosa si tratta, è l’evento Microsoft dedicato agli sviluppatori.

Nei mesi scorsi, sia in ufficio (ringrazio i Team Verde per la sopportazione) che sui social in generale mi sono lamentato molto di Microsoft, e non sono stato l’unico, in quanto non era chiara la direzione, gli obiettivi che si volevano raggiungere, quali sarebbero stati gli “investimenti” che noi sviluppatori avremo dovuto fare.

Certo, abbiamo cercato di dare un senso alle strategie guardando cosa faceva Microsoft, il nuovo Asp.Net Core 1.0 (ex asp.net 5/vNext) ci ha fatto capire che la direzione era il multipiattaforma, poi ci sono stati altri segnali come l’interesse verso Xamarin e la conseguente acquisizione, insomma tra notize non molto chiare e smentire altrettanto confusionarie, qualcosa si era intravisto.

Il Build ha fatto luce su tutto questo. Per il dettaglio su cosa è stato detto, vi rimando a Channel9 dove potete riguardarvi Keynote, singole sessioni e interviste. Tiriamo le somme e facciamo qualche considerazione.

La notizia di fondo è vera, Microsoft punta al multi piattaforma, quindi direzione Cloud-First, Mobile-First, il progetto è quello di portare il più possibile tutto sul cloud ed essere presenti con i servizi su tutte le piattaforme.

Questo cosa significa per lo sviluppatore Microsoft/.Net? Che da oggi abbiamo più strumenti e linguaggi che possiamo utilizzare per creare le nostre applicazioni, certo rispetto a prima non cambia nulla per il mondo NON Microsoft ma l’idea è quella di portare anche loro (chi lavora su Linux o comunque con altri ambienti) verso Windows.

Quest’estate verrà rilasciato un nuovo e corposo aggiornamento a Windows 10 che comprenderà tutte le novità presentate a Build, l’aggiornamento si chiamerà “Anniversary Update“.

La prima novità è il rilascio di Bash nativo su Windows, questo ha portato molti a pensare che andrà a sostituire PowerShell o diventerà la nuova command line, credo sia invece un modo utile per permettere a chi è già abituato a questa modalità di lavoro su Linux, dove la riga di comando la fà da padrone, di essere più agevoltato nel passare a Windows o comunque sia meno restio.

L’acquisizione di Xamarin è forse la migliore nelle notizie, sopratutto se si pensa che sarà gratuito con tutte le versioni di Visual Studio, compresa la Community Edition e Xamarin Studio gratuito per Mac. Non voglio dilungarmi su cosa è Xamarin e cosa fà, certamente è uno strumento utile in caso si voglia sviluppare per IOS, Android e Windows Phone senza dover riscrivere l’intera applicazione, è ovvio che ci sono da tenere in considerazione diverse cose e che è comunque un ambiente di terzi quindi non consente di fare tutto quello che può essere fatto con gli ambienti di sviluppo naviti come XCode a Android Studio ma è ovvio che dipende dal risultato che vogliamo ottenere.

Visual Studio continua a crescere, rilasciata in beta la versione 15 e Visual Studio 2015 Update 2 con un pò di cose nuove:

  • Nuovo editor di IOS Integrato (Xamarin)
  • Svilupppo C++ nativo multipiattaforma (Linux, Android, Raspberry, ecc.)
    • C’è una sessione dedicata dove mostrano il debug in tempo reale da Windows verso una macchina virtuale Linux
  • e molto altro…

Le altre informazioni importanti venute fuori da Build riguardano i nuovi servizi:

  • Office 365 sempre più aperto verso gli sviluppatori
  • Cognitive services
  • Bot Framework permette di creare Bot virtuali che rispondono all’utente via Skype, Twitter, Slack tramite servizi totalmente personalizzabili.
  • Azure integra nuovi servizi e migliora quelli esistenti per gli sviluppatori.

Insomma un sacco di cose nuove, a voi giudicare se sono belle o brutte, molto di quello che è stato presentato è intessante, la conferma dell’esistente permette di cominciare a pianificare cosa fare, nei prossimi mesi ci sarà molto da fare cose nuove da studiare e provare.

Chiudiamo però con notizie meno belle, Microsoft, ma lo si era già capito da un pò, sempre che non abbia messo nelle sue priorità Windows Mobile. Il progetto UWP continua a essere importante, nuove librerie e nuovi strumenti, sono stati confermati i Brige che permettono di portare le applicazioni Win32 sullo store e le Web Store App ma purtroppo Windows Mobile non è stato mezionato.

Come sviluppatore Windows Phone questa cosa mi è dispiaciuta, ho sempre visto la piattaforma di Microsoft come un’ottima concorrente ma a IOS e Android ma purtroppo loro stessi sono stati i primi a non crederci e non metterla come priorità, ci stà dopo quello che hanno presentato il loro obiettivo è nel futuro essere presente con i loro servizi ovunque.

Non scordiamoci di HoloLens, intanto cominciamo a vedere dove ci porteranno queste cose nuove in attesa della nuova versione di Windows.

Le situazioni che scalfiscono il mio duro cuore da sviluppatore

Fare applicazioni o comunque lo sviluppo in sè, è una cosa che trovo molto divertente, mi capita anche di farmi prendere la mano dall’entusiasmo lanciandomi in voli pindarici che poi mi portano a perdere un sacco di tempo, ma lo accetto, mi conosco ed ho imparato a gestire questa cosa, se dico che servono due giorni per fare una cosa, non posso mettercene cinque perchè ho voluto provare qualcosa di nuovo.

Dopo aver scritto l’applicazione, fai un primo test, fai un secondo (terzo, quarto, quinto, …) test, poi finalmente la metti in test per gli utenti, la produzione è ancora un passo oltre.

GLI UTENTI…

Sì proprio loro, quelle entità che sono incapaci di apprezzare lo sforzo fatto per realizzare un qualcosa fatto per loro uso e consumo, per facilitare loro l’esistenza, beh! certo, con gli anni di esperianza ho visto che ci sono sviluppatori e “sviluppatori” quindi l’atteggiamento degli utenti in alcuni casi è comprensibile ma detto questo, ci sono però scambi di “vedute” con gli utenti che ti portano a pensare che forse la lobotomizzazione di quell’utente potrebbe essere una soluzione per rendergli la vita migliore.

Considerate poi che spesso nella mia posizione, le persone che mi trovo davanti non sono gli utenti finali, ma utenti con un livello che dovrebbe comunque avere basi un pò più tecniche.

Vi faccio alcuni esempi (U=Utente, S=Sviluppatore):


Caso 1
U: L’applicazione non funziona!
S: Cosa non funziona?
U: Non sò, non funziona!
S: Puoi mandarmi una cattura della schermata in errore?
U: Ho già chiuso
S: La puoi riaprire e mandarmi la schermata dell’errore?
U: Adesso funziona, ma prima dava errore.


Caso 2
U: Bella l’idea del campo per il calcolo, posso metterci dentro anche delle formule?
S: Beh, formule no.
U: Come no! ma in Excel lo posso fare
S: Ma non stai usando Excel
U: Allora posso usare Excel?
S: No, devi usare la maschera che ho fatto per inserire i valori
U: Ma non puoi usare la parte di Excel per fare i calcoli nella maschera?
S: No!
U: Allora possiamo usare Excel?


Caso 3
U: Ciao, non trovo l’applicazione
S: In che senso?
U: Non trovo il link
S: E’ nella home page dell’intranet
U: Ma io oggi lavoro da casa
S: Quindi?
U: L’intranet la uso solo se sono in ufficio

Purtroppo sono situazioni che capitano sempre più spesso, con la nascita delle App tutti sembrano aver acquistito la conoscenza assoluta di come funziona un’applicazione, in realtà è semplicemente aumentata la distanza tra chi crea applicazioni e chi le usa, oggi è più semplice installarle, hai tutto a disposizione, ci sono app per ogni cosa quindi se ti chiedono un’app si aspettano ogni cosa possibile a tempi zero e questo rende il nostro lavoro scontato alla vista dell’utente.

Un giorno forse scriverò un libro.

Ballmer: Microsoft’s cloud revenue numbers are “bullshit”

Non vorrei sembrare contro a priori o sempre pessimista, ho sempre investito e apprezzato Microsoft come sviluppatore per strumenti, documentazione, supporto alle community e tutto il resto.
Nell’ultimo periodo ho cominciato ad avere qualche ripensamento dovuto in gran parte all’incertezza delle scelte, a questo si aggiunge quanto segue…
L’articolo che vi segnalo, è la verità (purtroppo) che è tra le altre cose è Ballmer a sottolinare e non posso dire di averlo apprezzato come CEO di Microsoft per diversi errori che poteva evitarsi.
Purtroppo è sempre più evidente il fatto che Microsoft non abbia le idee chiare su molti fronti, dal punto di vista di Windows 10 non possiamo dire che ci siano le certezze come per gli SO del passato (Vista a parte), lo sviluppo stà prendendo la strada dell’anarchia totale, se guardiamo alle nuove versioni di ASP o alla UWA vediamo belle idee ma nulla di realmente concreto.
E’ vero, stiamo parlando di azionisti, soldi e finanza ma Microsoft non ha mai lavorato per la gloria o per fare felici noi programmatori ma ha sempre lavorato per diventare leader in campi chiave e su questo ha sempre investito.
Dal mio punto di vista Nadella ha una visione troppo futura di Microsoft, questo certamente non guasta ma non c’è concretezza nel presente o comunque in un futuro prossimo che permetta a noi (persone e aziende) di fare valutazioni e scelte per investimenti.

Microsoft, Windows 10 e non solo

Devo dire che nell’ultimo periodo sono un po’ critico rispetto a Microsoft, questo non per un presa di posizione a prescindere ma per motivazioni reali legate a ciò che faccio quotidianamente, sono uno sviluppatore e quello che faccio è fare App e scrivere codice.

Chi mi conosce sa che sono stato (al momento parlo al passato) un grande sostenitore di Windows Phone, Microsoft era partita con buoni propositi che, secondo me, ha perso lungo la strada ed è ovvio che sia un strada sulla quale hanno parecchie indecisioni.

Ho assistito allo streaming di #futureDecoded e la sola cosa che mi è saltata all’occhio è stata … Ma quanto siamo belli ma quanto siamo bravi e meglio di noi nessuno … OK, l’evento gratuito serviva proprio a questo, ma quando poi andiamo al sodo cosa vediamo?

Non pensate subito male, ripeto non sono contro a priori ma ho le mie motivazioni e magari possono servire come punto per una riflessione più ampia.

Parliamo di Windows 10.

Certamente una scelta radicale (che secondo me avrebbero dovuto fare da tempo) un “nuovo” sistema operativo che taglia rispetto al passato che adesso è su tutti i device

Universal Windows Platform (UWP)

Questa immagine usata in tantissime occasioni che dimostra questa nuova strada che hanno intrapreso.

Tornando al nostro discorso…
Windows 10 ha moltissime cose interessanti ma da sviluppatore cosa vedo:

  • Strumenti di sviluppo ancora acerbi o comunque non ancora concreti e certi
  • App desktop che non hanno appeal ne verso l’utente ne verso chi le deve sviluppare
  • L’azzeramento delle linee guida per la UI, Windows Phone con Metro aveva dato una strada interessante che tutti hanno apprezzato e che ad oggi si sta’ sgretolando perché a tutti è permesso di realizzare l’interfaccia come gli pare e questo per l’utente finale non è un pregio.

Poi la cosa che mi lascia perplesso quando leggo articoli o sento interviste è sentire discorsi tipo questo

… La prossima versione che faremo sarà la versione più bella e la più figa di tutte …

Il problema è che questa frase la sento per ogni versione di qualsiasi cosa, Windows Phone 7 era giovane e pieni di difetti, quindi abbiamo aspettato l’8 poi l’8.1 ha cambiato un po’ le carte in tavola ma ci siamo adattati, per le Universal App (che così non erano), Windows 10 Mobile è meglio, ma meglio di cosa visto che non c’è ancora? Belle le Universal App ma di nuovo ci hanno cambiato i controlli e il modo di creare le App, bello Metro ma non c’è più, o almeno non è così importante.

Utilizzo Windows 10 desktop da un bel pò grazie al programma Insider e l’ho visto crescere a cambiare ad ogni release e vedo che le app native hanno UI/UX che lasciano a desiderare, non hanno la stabilità ti aspetti da un sistema che dovrebbe essere stabile ma lo perdoni perché è appena uscito ma quindi? la posizione di noi sviluppatori Windows è quello di essere felici perché Microsoft cambia sempre le carte in tavola, ci da strumenti che poi cambia, ci dice che farà cose che poi NON porterà a termine, perché mi vengono chieste Apps per IOS e Android e non per Windows Phone? la risposte è certamente … perché sono i più diffusi … e quindi una domanda seria non ce la facciamo?

La mia visione è diretta sopratutto al mercato Business, Windows la fa ancora da padrone per numero di installazioni e utenti su PC, certamente non sono in discussione questi numeri ma il mercato sta’ cambiando come la stessa Microsoft ci mostra, quando fa una nuova app o un nuovo servizio è sempre multi-piattaforma ma questo però indica anche che noi sviluppatori forse non dobbiamo investire così tanto su una cosa come i device mobili con Windows perché tanto non saranno così numerosi come i concorrenti.

Le mie sono riflessioni personali, come detto legate a ciò che faccio ogni giorno, ci sono tempi e modi di fare le scelte ma ad oggi non avevo mai realmente riflettuto su un cambio almeno per quello che riguarda il Mobile.

Il discorso comunque è molto più ampio, Microsoft ha tantissime cose all’attivo e per questo ha pregi e difetti perché dal punto di vista di uno sviluppatore vede che le cose cambiano in fretta e abbiamo sempre nuove possibilità ma vediamo anche che ciò su cui ha investito non sono più utilizzabili o comunque cambiano senza che tu possa aver avuto il tempo per assorbirle.

L’unica cosa che possiamo fare è stare alla finestra, guardiamo cosa ci passa davanti e valutiamo volta per volta ma dovrebbe tornare una visione delle cose che possa portare almeno ad un anno e non solo a pochi mesi.

Web.config, App Settings e Connection Strings

Vi sarà capitato, almeno per il 90% dei casi è così, di dover avere impostazioni diverse nel web.config relative a stringhe di connessione oppure o settings generici che utilizzate nella vostra applicazione.

La strada messa disposizione da Microsoft per risolvere questo problema è la gestione della configurazione di pubblicazione dell’applicazione associando web.config diversi come in questa immagine

Web.Config

La procedura è semplice, basta modificare il file associato alla pubblicazione che facciamo inserendo gli attributi di trasformazione

xdt:Transform="SetAttributes" xdt:Locator="Match(name)"

se volete saperne di più…

Questa modalità è molto utile perché permette la trasformazione di tutti i nodi presenti nel web.config dando maggiore flessibilità in fase di pubblicazione ma… questo non è sempre un vantaggio, in quanto, almeno nel mio caso, i web.config delle applicazioni che pubblico non sempre sono gestiti e manutenuti nel tempo solo da me quindi può valere per la prima pubblicazione ma in seguito il file non viene più ripubblicato perché quello della macchina di destinazione è certamente quello da utilizzare.

Altro svantaggio di questo modello è, sempre per la mia esperienza, non pratico da gestire nel tempo, spesso, da clienti, una singola applicazione che scrivo viene pubblicata su diversi server con procedure automatiche di validazione, quasi mai la mia applicazione sulla macchina di sviluppo finisce diretta in produzione ma ci sono uno o più livelli di validazione e in queste fasi avere web.config diversi non è praticabile.

Per questo motivo mi sono scritto una semplice classe che permette di leggere la configurazione di appSettings e connectionStrings (sono gli unici casi nella quale serve realmente) da un singolo web.config in base nome della macchina.

Ovviamente questo modello può essere integrato alla trasformazione dei nodi descritta sopra.

Facciamo un esempio…

web.config:
<add key="working.directory" value="C:\temp\cartelladilavoro" />

codice C#:
var cartella = ConfigurationManager.AppSettings["working.directory"];

Su una diversa macchina potrebbe essere diverso quindi avrei necessità di modificarlo prima della pubblicazione. La mia soluzione è la seguente:

web.config:
<add key="working.directory" value="C:\temp\cartelladilavoro" />
<add key="[www.sito.it]working.directory" value="D:\temp\Web1\cartelladilavoro" />

codice C#:
var cartella = ConfigurationManagerEx.AppSettings["working.directory"];

Utilizzando la classe che ho creato chiamata ConfigurationManagerEx prelevo il valore corretto in base al nome dell’host che ospita la mia applicazione, in caso questo non esista nella mia lista, viene sempre preso il valore predefinito definito senza il nome macchina specificato. Questo modello mi permette di avere tutti i valori in un unico file, posso sempre distribuire tutto e chiunque può modificarlo e copiarlo rispettando la semplice regola del nome macchina.

Potete trovare la classe a questo indirizzo:

http://configurationmanagerex.codeplex.com/

Nuovo sito, nuovo blog e nuovo tutto

Finalmente sono tornato online.

Ho avuto un periodo molto pieno, come sempre,  e ho messo un po’ di ordine tra quello che ho fatto, quello che sto’ facendo e preparo per quello che farò.

rbwebapps.com è il mio nuovo sito che raggruppa tutti i progetti e il nuovo blog, sentivo la necessità di questo passaggio, ho cambiato provider per avere più libertà di “giocare” e investire il tempo su progetti più solidi e duraturi.

Il passaggio per il nuovo provider è solo all’inizio, devo finire di spostare gli altri siti, adesso ho molte più possibilità ma anche cose nuove a disposizione che non conosco ancora bene.

Ci sentiamo, vi assicuro più spesso, nei prossimi giorni.