Azure AppFabric chache come Session State Provider

Cercando di utilizzare la cache di AppFabric per condividere lo stato della sessione di una web role Azure tra più istanze, sono incappato in un fastidiosissimo bug.

In pratica utilizzando il normale classico provider

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <clear />
    <add name="AppFabricCacheSessionStoreProvider" 
type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
cacheName="default"
useBlobMode="true"
dataCacheClientName="default" /> </providers> </sessionState>

eseguendo in locale con l’emulatore ed utilizzando 2 o più istanze, random, la sessione viene cancellata con ripercussioni terrificanti sul software.

Dopo qualche googlata sono incappato in questo post
http://social.msdn.microsoft.com/Forums/en-US/windowsazuredata/thread/127ba211-51b2-4f3e-9e7b-1b41af269708 
che riporta lo stesso problema e fortunatamente un workaround.

Riassumendo, occorre cambiare il provider in questo modo

    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
      <providers>
        <clear />
        <add name="AppFabricCacheSessionStoreProvider" 
type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider, Microsoft.ApplicationServer.Caching.Client"
cacheName="default"
sharedId="myAppName" /> </providers> </sessionState>

Da notare che una volta pubblicato “fisicamente” su Azure il problema spariva.

Ora però non so se con questo nuovo provider rischio di trovarmi qualche brutta sorpresa quando andrò online: se non posterò update catastrofici vorrà dire che il nuovo provider funziona anche su Azure Occhiolino

Mango update : “extrema ratio”!

Oggi mi ero impuntato a risolvere la questione “aggiornamento a Mango” del mio LG E900, quindi ho cominciato a googlare, a smanettare nell’ engineering menù e nel registry del telefono, finché ho cominciato a mettere insieme prove su prove ed alla fine ho “beccato” il colpevole!

1) nonostante il telefono esternamente non sia brandizzato, in realtà aveva installata la ROM di TIM-IT;

2) TIM ha deciso di non rilasciare per i “suoi” (sti cazzi il telefono l’ho pagato 299 euro di tasca mia altro che suo!!!) device gli upgrade del firmware di LG perchè l’hotspot WiFi di Microsoft non permette di impostare un APN specifico per la navigazione (?!?) [fonte: http://www.wpmitalia.com/2011/10/28/lg-aggiorna-il-firmware-del-suo-optimus-7-abilitando-il-wifi-tethering/ ] ;

3) siccome la mia SIM è Vodafone, affanculo tutto, ho seguito questa guida ( http://www.ipmart-forum.it/archive/index.php/t-460691.html?s=fc7b3c4f41d8cf93c84eacbc8b0bcbc1 ) ed ho flashato la ROM di Vodafone sul mio E900!

Inutile che vi dica che ora funziona tutto, il firmware è aggiornato, ho riconfigurato tutti gli account ed a parte whatsapp che è davvero pietoso su WP (ma è in beta) il telefono è DECISAMENTE migliorato!!!

MORALE : è SCANDALOSO che TIM impedisca degli aggiornamenti su un dispositivo di mia proprietà,è SCANDALOSO che Microsoft sottostia a queste PORCATE degli operatori (un qualsiasi utente , come ho fatto io all’inizio , darebbe la colpa a loro punto e basta!), il servizio Update di Zune dovrebbe ignorare i brand dei dispositivi, questo DEVE ESSERE UN MUST, ma scherziamo?!

Ergo non mi sento di scusarmi troppo con Microsoft perchè ritengo che sia corresponsabile di questo disservizio…IMHO

p.s: attenzione che tentare ciò che ho fatto, come sempre pasticciando con le ROM, oltre ad invalidare la garanzia del dispositivo è un’operazione molto rischiosa che potrebbe rendere inutilizzabile il telefono,non mi assumo responsabilità per i casini altrui :-/

Mango update terzo ed ultimo tentativo…

Oggi decido di riprovarci, ricollego il mio LG E900, parte Zune e …. magia, mi segnala un aggiornamento!!!

Ok dico, questa è la volta buona, procedo, e dopo un’ora circa di backup ed aggiornamenti (2) mi ritrovo nella stessa precisa situazione del primo tentativo (l’avevo sospettato non avendo rilevato l’aggiornamento di LG che invece aveva trovato sul cellulare di mio fratello):

- non si apre più Outlook (o meglio si apre , dice “sto caricando” e poi si chiude e torna al tile sulla schermata iniziale di Windows Phone)

- stessa storia per tutti e 3 gli account Gmail

- penso allora di andare in Impostazioni>Email e account, parte, schermata nera e ritorno alla schermata iniziale di Windows Phone

- tutto il telefono è rallentato paurosamente

- lo schermo ogni tanto “tilta” di verde

- il mio firmware è rimasto il 1.0.2.10

Come se tutto questo non bastasse, mio fratello arriva in ufficio attacca il suo LG E900 e trova il tanto twittato update del firmware che gli abilita il tethering Sorpresa 

A questo punto mi arrendo, il WP rimarrà come telefono di emergenza; non so se è il terminale sfigato, se è il sistema di rilascio degli update di Microsoft/Zune/LG, fatto sta che qualcosa da qualche parte non sta funzionando bene, ed io non ho più tempo da perdere…

p.s: googlando però non sono proprio l’unico, quindi i sospetti che qualcosa nel “sistema” non vada bene si addensano su Microsoft…peccato :-/

Mango update secondo tentativo

Ieri mi sono messo di buzzo buono, mi sono rimboccato le maniche, ho riaccesso il mio LG E900 , l’ho collegato a Zune , il tutto pensando “dai oggi rifaccio il tutto con attenzione, magari mi è sfuggito qualcosa”

Ma ahimè , amara sorpresa, Zune mi dice che il mio “Phone is up to date 7.0 (7392)” :’-(

Ora sono davvero preoccupato…sarò passato in coda ? verrò notificato più avanti ? strano perchè praticamente tutti quelli che conosco hanno ricevuto la notifica (i possessori di LG E900 tutti!)…e poi l’avevo già ricevuta…boh

Non voglio utilizzare il trucchetto della disconnessione, quindi aspetterò fino a fine mese, poi ho già preparato l’inserzione per la vendita su ebay =/

E ti pareva…Mango fail

Solita storia di “paranormal activity” informatica!

Oggi aggiornamento del mio LG E900 a Mango, stessa scrivania, io da un lato, mio fratello dall’altro, entrambi stesso telefono (varia di poco il seriale!), procediamo entrambi:

Stranezza numero 1 : al termine degli aggiornamenti di Windows Phone ,a mio fratello viene proposto un ulteriore update “LG qualcosa”, a me no;

Stranezza numero 2 : a lui va tutto bene, a me invece…

- non si apre più Outlook (o meglio si apre , dice “sto caricando” e poi si chiude e torna al tile sulla schermata iniziale di Windows Phone)

- stessa storia per tutti e 3 gli account Gmail

- penso allora di andare in Impostazioni>Email e account, parte, schermata nera e ritorno alla schermata iniziale di Windows Phone

- tutto il telefono è rallentato paurosamente

- lo schermo ogni tanto “tilta” di verde

- il mio firmware è rimasto il 1.0.2.10 quello di mio fratello è diventato 1.0.13.10

Premesso che il telefono ha 2 mesi e che prima dell’aggiornamento funzionava perfettamente, mi chiedo, ma è possibile che dopo mesi di test e di attesa succeda una cosa simile ?

Sono davvero incazzato, ora mi tocca ripristinare NoDo dal restore point (sperando che almeno quello funzioni!) e ritornare indietro, dopodiché ritornerò al mio HTC Desire con Android 2.3!!!

In 1 anno di aggiornamenti Android non ho mai avuto il minimo intoppo, qui dopo aver atteso mesi per delle funzionalità OBBLIGATORIE in un mobile OS mi ritrovo in un casino…cara Microsoft la strada è ancora lunga ed i concorrenti scappano via…

UPDATE : il telefono è originale, brandizzato TIM,partiva dalla versione NoDo originale 7.0.7392.0,nessuna forzatura!

UPDATE 29/09/2011 10:30 : anche il cellulare di mio fratello che sembrava essere aggiornato e funzionante oggi non entra più nel Market e da segni di squilibrio...

Npgsql con Entity Framework

Dall'ultima versione, Npgsql2 , il .NET Data Provider per PostgreSQL , offre il supporto per Entity Framework.

Purtroppo non è ancora integrato con Visual Studio, quindi per utilizzarlo occorre eseguire direttamente edmgen.exe da linea di comando.

Ma partiamo dal principio, perchè prima di poter ottenere il nostro bel file .edmx, è necessario effettuare alcune operazioni.

  • scaricare l'ultima versione di Npgsql2, la 2.0.1 (non la 2.0.0 che aveva un piccolo problema nel reverse engineering degli schemi) per il framework 3.5 SP1, da qui;
  • estrarre i due assembly Mono.Security.dll e Npgsql.dll dove desiderate;
  • aprire il Visual Studio Command Prompt (run as Administrator se usate Vista!), posizionarsi nella cartella dove avete estratto i files, e registrarli nella GAC ( gacutil /i Mono.Security.dll | gacutil /i Npgsql.dll );
  • sempre dal Visual Studio Command Prompt (non più necessariamente come Administrator se usate Vista!) eseguire edmgen.exe per creare i files .csdl|.ssdl|.msl
    ( edmgen /provider:Npgsql /mode:fullgeneration /c:"Port=5432;Encoding=UNICODE;Server=pgsrv;
    Database=mydb;UserId=dbuser;Password=dbuser!8" /project:MyProject );
  • a questo punto vi troverete i 3 files nella cartella, per concludere l'opera, o meglio per semplificare il tutto, perchè così già si potrebbe procedere, utilizziamo l'utility edmgen2.exe (la trovate qui) per "condensare" i nostri 3 files in un unico .edmx ( edmgen2 /ToEdmx MyProject.csdl MyProject.msl MyProject.ssdl );
  • non ci resta che aggiungere il risultato dei nostri sforzi (il file .edmx) al nostro progetto Visual Studio ( che provvederà ad aggiungere i riferimenti necessari), aggiungere un file di configurazione con la connection string (o specificarla direttamente nel costruttore del context) ed il gioco è fatto;

Attenzione a specificare correttamente il path dei metadati nella stringa di connessione, altrimenti a runtime non li troverà e vi richiederà il path dei file .csdl|.ssdl|.msl; nel mio esempio dovrebbe essere circa così:

   1: <?xml version="1.0" encoding="utf-8" ?>
   2: <configuration>
   3:   <connectionStrings>
   4:     <add name="ASTRIMSWContext"
   5:          connectionString="metadata=res://*/MyProject.csdl|res://*/MyProject.ssdl|res://*/MyProject.msl;
   6:          provider=Npgsql;provider connection string='Server=localhost;
   7:          Database=mydb;Integrated Security=False;User ID=mydbuser;Password=mydbuser!8;'" 
   8:          providerName="System.Data.EntityClient" />
   9:   </connectionStrings>
  10: </configuration>

 

Voi cosa avreste risposto ?

Non vorrei scatenare un flame inutile, ma oggi in relazione ad un problema con il CASE che utilizziamo per lo sviluppo, ho ricevuto una risposta che mi ha letteralmente fatto salire la pressione alle stelle.

Il problema, riguardava la migrazione di un'applicazione generata in JAVA con interfaccia SWT,che funzionava perfettamente, nella stessa applicazione generata in Microsoft .NET (C#) , che invece dà numerosi problemi specialmente nell'interfaccia.

Ecco cosa mi risponde il responsabile del supporto del CASE :

"E' perfettamente cosciente che questo passaggio da Java Win a .NET Win sta richiedendo più tempo di quanto ci si sarebbe aspettati e che si sono incontrati problemi, le cui cause in generale sono di tipo tecnico e per sintetizzarle si può dire che la infrastruttura di Java (SWT) è più moderna di quella usata in .NET (WFC) e questo causa differenze."

SWT più moderna di .NET ?! E soprattutto, .NET WFC ?!?

Un problema che avevo segnalato da tempo (anni) è che le applicazioni generate dal CASE in .NET, utilizzano la stessa libreria di classi scritta per JAVA e che utilizza WFC per l'interfaccia su Windows, introducendo una dipendenza da J# e diversi malfunzionamenti.

Sotto trovate la mia risposta, epurata dalle parolacce per le quali sono stato richiamato, ma voi cosa avreste risposto ?

"Lo Standard Widget Toolkit (SWT) è una creazione di IBM che in origine era stata ideata per SmallTalk (!!!), stiamo parlando degli anni ’90! (Fonte : http://en.wikipedia.org/wiki/Standard_Widget_Toolkit )
Microsoft .NET framework NON utilizza WFC, bensì è "il CASE" che per non riscrivere le gxclasses, utilizza Microsoft J# per utilizzare WFC con applicazioni .NET. Questo, oltre a non creare applicazioni .NET “vere”, provoca la dipendenza da Visual J# (il vjredist che ci tocca installare su tutti i client dei clienti!!!) e tutta la serie di problemi ‘grafici’ che caratterizzano le applicazioni .NET di "il CASE"!
WFC è una vecchia libreria grafica per JAVA su piattaforma Microsoft Windows!
Microsoft .NET Framework, fin dalla sua nascita nell’anno 2001, utilizza Microsoft.Windows.Forms per l’interfaccia, e non WFC!
Nel Maggio del 2003 su MSDN (Microsoft Developer Network) è stato pubblicato un articolo dal titolo più che eloquente : “Moving from WFC to the .NET Framework” (fonte : http://msdn.microsoft.com/en-us/library/aa290075(VS.71).aspx ), nel 2003!!!!!! Oggi siamo nel 2008, quasi 2009!"

 

Technorati Tag: ,,,,

MIX, bello...però...

Mi unisco a Omar nel fare i complimenti a tutti gli artefici dell'evento di ieri.

Molto interessante la sessione plenaria con Steve Ballmer, ottimi gli interventi tecnici della sessione Developer del pomeriggio.

In effetti il pubblico in sala era un po' freddino, forse fiaccato dai 3 case history, che per dei developer erano davvero poco interessanti.

Complimenti davvero a tutti!

Prima di chiudere però vorrei segnalare anche un paio di cose che non mi sono molto piaciute, anzi...

1) anche io, come Omar, sono arrivato con largo anticipo la mattina, ed il fatto di dover aspettare quasi 1 ora in piedi nell'area espositiva che via via si riempiva sempre di più, senza poter accedere alla sala, mi è sembrata una follia! La sala è stata aperta alle 10 e 5 minuti e l'inizio dei lavori era schedulato alle 10 e 15...perchè?

Secondo me era meglio lasciarla aperta, uno entrava, posava la sua roba, usciva e si beveva il caffè più tranquillo; l'area espositiva sarebbe stata più vivibile anche per gli sponsor che vi lavoravano, invece di avere gente in piedi che aspettava di entrare, gente che girava cercando un angolo per bersi il caffè, gente che cercava di visitare gli stand, ecc...

2) entrando tra i primi sono rimasto molto negativamente impressionato dall'abnorme quantità di posti riservati : le prime dieci (dico 10!!!) file, per 25 colonne, totale 250 posti, più un blocco di 10x10 posti sulla destra, ed altri 10x10 sulla sinistra: totale 450 posti riservati in una sala che approssimativamente poteva accogliere un migliaio di persone sedute! Decisamente troppi!!!

In più come se non bastasse, subito dietro alla zona off-limits, hanno piazzato il cameraman ed i fotografi che continuavano ad andare avanti ed indietro!

Di solito i posti riservati sono per eventuali autorità, VIP o parenti/familiari/amici, anche in eventi mondani o concerti importanti si riservano 2,3 massimo 5 file. Ieri, posti riservati anche per giornalisti e addirittura per i blogger, che avevano anche buffet separati...

Perchè ?!

Questa cosa mi ha molto più che infastidito, è come se andassi a S.Siro al concerto di Ligabue ed una volta arrivato scopro che il prato ed il primo anello sono completamente riservati, ed io che mi sono alzato alle 7 per essere lì in anticipo devo accontentarmi di ciò che resta.

In conclusione : contenuti e relatori voto 10, organizzazione voto 2.

Technorati Tag: ,,

Post futuri

Non so da cosa dipenda, ma grazie a Raffaele ho scoperto che Omea Reader gestisce anche i post dal futuro...;-)

 

 

Technorati Tag: ,

Entity Framework Toolkits & Extensions

Notizia interessante

http://blogs.msdn.com/diego/archive/2008/01/25/welcome-to-the-entity-framework-toolkits-extensions.aspx

 

«aprile»
domlunmarmergiovensab
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910