SubText security update

Anche noi iniziamo con le patch di sicurezza: è appena stata rilasciata la versione 1.5.1 che corregge un baco che avrebbe permesso, in ambienti con più blog in una singola applicazione, ad un'admin di un blog di loggarsi come admin in un'altro blog.

Per maggiori informazioni: Important Subtext 1.5 Multiblog Security Update

powered by IMHO 1.3

Condividere codice tra Win e Mobile

Avete sviluppato una libreria di business logic, e la volete utilizzare sia in un applicativo desktop che in un applicativo mobile: come fare?

E' un problema che prima o poi dovremo affrontare tutti, e penso sia una delle domande maggiormente post sui forum del CompactFramework: gironzolando sui vari blog di sviluppatori mobile e sui forum dedicati si trovano due diversi approcci:

  • condividere il binario
  • condividere il sorgente

Il primo caso presuppone che si sia sviluppata una device class library senza funzionalità specifiche per mobile (no accesso a Irda, SMS, camera, SQL Mobile, ecc...): in questo caso è possibile aggiungere il progetto come reference ad una normale WinForm application.
Visual Studio darà un warning, ma poi tutto funzionerà (o almento dovrebbe ) poichè quasi tutti gli assembly del Compact Framework hanno il System.Reflection.AssemblyNameFlags impostato a Retargetable, cioè possono essere "rimappate" su un'altro assembly. Per una spiegazione migliore di questo argomento vi rimando al post "Retargetable (=256)" sul blog di Daniel Moth, ex MVP Windows Mobile.

Nel secondo caso invece si adotta un'approccio differente: si crea normalmente la libreria per WinForm. Poi si crea una class library per mobile, ma, invece che aggiungere item nuovi, si aggiungono gli item presenti nella libreria sviluppata per WinForm, linkandoli invece che inserendoli: così facendo il file contenente il codice è uno solo, ma viene usato per compilare due librerie differenti.
Questo approccio permette anche di avere funzionalità aggiuntive nella libreria per desktop: è sufficiente racchiudere il codice che non andrebbe su CF all'interno di clausole di compilazione condizionale #if.

#if DESKTOP
//Siamo su Desktop
Bitmap bmp = new Bitmap(ConfigManager.RESOURCE_LOCALPATH + "\\" + fileName);
#else
//Siamo su Mobile
Bitmap bmp = new Bitmap(ConfigManager.Current.DirectoryPath + "\\"
    + ConfigManager.RESOURCE_LOCALPATH + "\\" + fileName);
#endif

Sempre Moth spiega in un suo post "Share Code (#if FULL_FRAME)", questo approccio, che lui considera migliore della condivisione del binario.
Della stessa opinione è anche Ed Kaim, uno dei moderatori del ng microsoft.public.dotnet.framework.compactframework, il quale dice che per lui è prassi comune adottare questo approccio.

Anche il nostro buon Roberto Brunetti, in un thread sul ThinkMobile.it mi ha suggerito lo stesso approccio...

powered by IMHO 1.3

Trasferimento completato

Come annunciato ieri, questa notte si è compiuto il trasferimento definitivo del mio dominio principale piyosailing.com sul webhost4life, posta compresa:

guardate il messaggio completo per vederne la prova (il traceroute verso mail.piyosailing.com).

«giugno»
domlunmarmergiovensab
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678