Archivi categoria: Technology

[OT] Tecnologia Attuale e Nuova

Sono questi giorni di continui annunci di rilasci delle varie RTM, praticamente di tutte le nuove tecnologie MS.

Una mattina della settimana scorsa, ho preso la metropolitana a Barcellona; ho avuto dei problemi con il biglietto settimanale il quale risultava illeggibille.

Sono bastati 5 secondi di espressioni a motti tra me che parlo inglese ma non spagnolo, ed il “casellante” (da noi si chiama così 🙂 che parlava solo spagnolo, affinchè lui (con il mio biglietto probabilmente smagnetizzato) riuscisse a riconoscerlo tramite la sua console di verifica e riuscisse comunque a rigenerare un nuovo biglietto con le 9 delle 10 corse che avevo ancora disponibili.

Tecnologia: carta (unico difetto penso non fosse riciclata…) banda magnetica, “gate” di accesso mediamente alti per assicurare l’obliterazione (tutti pagano 🙂 -> Servizio fantastico.

Una volta uscito, prendo il metrò, (una volta vista questa, ho deciso che a Roma e Milano da ora in poi le chiamerò diversamente), l’autista ad un incrocio che ci teneva fermi da più di un minuto, estrae un telecomando e fa scattare il verde per se (dando quindi priorità al trasporto pubblico)

Tecnologia: radiocomando per il controllo remoto (mi pare sia qualche anno sia in giro come tecnologia…) e un sistema integrato dei semafori (su quello sono d’accordo che un minimo in più di intelligenza ci va… magari le centraline montano CE 😀 )

Tutto ciò per dire cosa: stanno uscendo tonellate di nuove tecnologie fantastiche, che sicuramente semplificheranno la vita di noi sviluppatori e dei nostri clienti; una considerazione della sera (più per me per ricordarmelo): esistono già molte tecnologie, che se utilizzate propriamente potrebbero già semplificare la vita di tutti noi e dei nostri clienti: il tutto sta nel selezionarla correttamente.

WSS, MOSS e Accessibilità

Gironzolando fra le varie sessioni riguardo la nuova versione di sharepoint, mi è rimasta una risposta ufficiale non risposta: il nuovo sharepoint è accessibile o no?.

Da quanto mi ha confermato Patrick Tisseghem e alcune persone responsabili di curare l’accessibilità in Microsoft, mi sono fatto l’idea che questa versione ancora non aderisce a tutti i requirements per l’accessibilità comunquemente accettati: parlo di WCAG, Section 508 e quindi legge stanca per noi che siamo in Italia; inoltre supporta solo l’ HTML 4.01 e non l’XHTML 1.0 Strict.

L’eloquente risposta di Patrick è stata: "Per fotuna io non lavoro molto in italia, mi spiace per te ;)" mentre la referente MS per l’accessibilità (di cui purtroppo non ho preso nota del nome) mi ha confermato che stanno lavorando strettamente con il team di Office per far si che l’adesione a queste norme venga migliorata.

Dal mio punto di vista, mi verrebbe da affermare che i due prodotti, salvo customizzazioni non indifferenti su tutto, non possono essere utilizzati nella pubblica amministrazione italiana e nelle scuole; cosa che è un peccato perchè il prodotto è veramente veramente valido.

Lodevole comunque che al teched ci fosse uno stand intero dedicato all’accessibilità, segno dell’impegno dell’azienda sul tema: speriamo che questo si contretizzi anche sull’evoluzione di questa piattaforma.

I commenti sono aperti, se qualcuno volesse contraddirmi: sarei io il primo ad esserne felice 😉

Alberto

 

Teched – rientro e post solo su thinkmobile :(

Sono rientrato ieri sera dal teched (Sufficientemente sfinito). Alla fine non ho avuto il tempo che avrei voluto (tra sessioni, incontri e iniziative) per postare qualche dettaglio ulteriore.

Lascio però qualche riferimento ad alcuni post sul mio blog su thinkmobile.it che magari possono essere di interesse:

Alberto

 

Teched – Mobile Application Blocks

Una tra le ultime che ho seguito al teched è stata relativa agli application bloks per mobile, i quali sono stati rilasciati qualche mese fa e che non avevo ancora avuto il tempo di approfondire. Tutti i blocchi presentati risultano, dal mio punto di vista, molto interessanti per la maggior parte delle applicazioni mobile. I blocchi attualmente previsti sono: Configuration , Connection Monitor, Data Access, Disconnected Service Agent, Endpoint Catalog, Orientation-Aware Control, Password Authentication, Subscription Manager).

I vari blocchi, anche se sono abbastanza disaccoppiati, traggono vantaggi gli uni dagli altri: il disconnected service agent legge le configurazioni tramite il blocco Configuration, e utilizza il connection Monitor per capire che tipo di connessione è attiva per verificare se può sincronizzarsi.

Inoltre, è stato rilasciato lo scorso 7 Novembre un nuovo blocco complementare: “Mobile Updater Application Block” da Q4Tech, scaricabile a partire da: http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=MobileBlocks. Proprio sul forum di thinkmobile avevo letto qualche post relativamente alle varie possibilità di aggiornamento degli applicativi sui device, quindi potrebbe risultare utile a molti.

Inoltre, installando gli application blocks, Visual Studio mette a disposizione delle “ricette” per alcune tipologia di problematiche o impostazioni tecniche del progetto, ad esempio: “Add View with Presenter recipe” o “Create Disconnected Service Agent recipe”, che permettono di preconfigurare l’applicazione secondo un pattern particolare

Sicuramente proverò a breve alcuni di questi e posterò qualche commento più dettagliato.

Stay Tuned 😉

.

Teched: WEPOS, THE platform designed for Point Of Service

Altra sessione abbastanza interessante (anche se lo speacker era ancora giovane e…. non espertissimo 😉

WEPOS è una tecnologia di cui non conoscevo l’esistenza, è inserita all’interno della divisione Mobie & Embedded di MS ed è una “derivazione” di WindowsXp embedded.

In pratica si tratta di una serie di funizonalità costruite sopra il dotnet framework per astrarsi dai vari device che possono essere utilizzati all’interno di una soluzione per negozi, casse per la vendita al dettaglio, magazzini, etc…. ma anche pompe di benzina, o cashpoints.

Si tratta di “Service Object” che possono essere mappati sui Device Driver fisici della particolare installazione; consentono a noi sviluppatori di utilizzare questi oggetti e scrivere le nostre applicazioni, non dovendo occuparci della particolare funzionalità fornita dal singolo card reader o display.

La tecnologia sfrutta tutta l’infrastruttura tecnologica di Windows XP, implementando quindi integrzione con SUS, MOM o un’infrastruttura Win2003 ed anche il Device Update Agent, Windows Logon, Microsoft installer; supporta attualmente il dotnet framework 1.1

Come tipologia di installazione, può essere effettuata tramite un CD (e non tramite il Target Designer come per XP Embedded), quindi il tutto dovrebe risultare più semplice nelle fasi iniziali.

Giusto per far capire che tipo di device sono supportati, posto una slide:

Se riusciro ad approfondire qualcosa, spero di riuscire a postarla.

Teched: Optimizing CompactFramework Performances

Ieri ho assistito ad una sessione sull’ottimizzazione delle performance sul Compact Framework. Sessione interessante dove, dal mio punto di vista, mi sono confermato alcuni aspetti da tenere BENE in considerazione effettuando il design di un’applicazione, e dove sono riuscito ad aggiungere alcuni nuovi.

Loader&Startup

Chiunque abbia svilupapto un’applicazione mobile ha notato la particolare lentezza di caricamento alla prima esecuzione, rispetto a codice sviluppato in maniera nativa; questo deriva principalmente dal JITCompiler che deve provvedere a compilare in maniera nativa il codice che deve essere eseguito. Oltre a ciò però vengono fatti una serie di verifiche di security su tutti gli i file eseguibili dell’applicativo (che per fortuna vengono poi messi in cache), nonchè viene fatto un hashing check per verificare lo strong name. Da queste affermazioni un unica considerazione: cercare di mantenere il codice più piccolo possibile, lasciando eventuali risorse (immagini o altro) non embedded nel codice, ma come risorse esterne: La verifica dello strong name pesa per 1 secondo per megabite di codice allo startup (non male!); potrebbe, in questo senso, essere valutabile se firmare o meno il progetto.

GarebadgeCollector

Se il processo sta andando out of memery, rimuove dalla memoria il codice che è stato compilato dal Jit, questo accade quando ci sono 1milione di oggetti istanziati (sono tanti, ma con il performance monitor si può verificare che il numero di oggetti istanziati da un’applicazione semplice è comunque notevole); la stessa cosa viene fatta quando l’applicazione va in background: questo è perchè si vuole lasciare più memoria possibile al sistema.

CG.Collect non va utilizzato! Questo in realtà lo sappiamo già, ma è bene ricordarselo 🙂 Il GC sa quando deve fare le cose senza che noi glielo ricordiamo.

Alcune funzioni del .net framework impattano moltissimo il garbade collector, come la manipolazione delle stringhe ed il boxing dei tipi (piuttosto è meglio usare i generics).

Tips & Tricks

Per la gestione delle form, valgono sempre le solite considerazioni: laricare i form in background, usare sempre BeginUpdate/EndUpdate quando disponibili, impostare SuspendLayout/ResumeLayout sulla form quando si aggiungono o spostano controlli sulla form.

Un consiglio utile che ho avuto, è stato: “L’exception handling non è costosa in termini di performance… fintanto che non ne fai una throw”: l’eccezione è una ECCEZIONE, e così deve essere trattata; non deve essere gestita per controllare il flusso dell’applicativo (ogni tanto si cade in questo errore).

Per quanto riguarda la gestione dell’IO, cercare se possibile di usare le stess dimensioni dei buffer interni, per reference:

  • FileStream: 128 bytes
  • StreamReader, StreamWriter: 1024

Infine due dati sul reflection dei tipi, (dai… parte di una slide la “prendo in prestito” 🙂 

Performance cost

  • Type comparisons (for example: typeof())—inexpensive
  • Member access (for example: Type.InvokeMember())—think 10-100x slower

Working set cost

  • Member enumerations (for example: Type.GetFields())—expensive
  • Runtime data structures: ~100 bytes/type, ~80 bytes/method

Be aware of APIs that use reflection as a side effect

  • Override Object.ToString()
  • Override GetHashCode() and Equals() for value types

Preconf Windows Sharepoint v.3.0

Come previsto la sessione è stata per me molto interessante: è vero, nessuna novità praticolare, stiamo infatti parlando di tecnologia che (anche se è nata in maniera ufficiale questa notte), è in beta da diverso tempo. In ogni caso, fare un giro con un pilota su una macchina da corsa… è diverso da aver letto e studiato le varie caratteristiche tecniche e averla vista sul banco di prova;)

Tra le cose che più interessanti di questa nuova versione il features framework, essenzialmente la possibilità di definire un insieme di funzionalità del sito che possono essere attivate o deattivate, dove per funzionalità si intendono menu, pagine, assembly, e…. supporto agli eventi potenziato (finalmente): se cancello un’item da una lista posso esserne notificato, fare una query caml su tutta la mia site collection e verificare se quell’elemento è stato usato.

Il tutto con la possibilità di pachetizzare il tutto per un semplice deployment, che include feature dependeces.

Molta enfasi delle sessioni è stata data alla possibilità di centralizzare tutte le componenti nelle versione ghosted, molto meglio di come potesse essere fatto e manutenuto prima, permettendo quindi una manutenibilità molto più ottimizzata delle soluzioni su sharepoint.

Lo sviluppo di webpart è molto migliorato, peccato che non ci sia un supporto un po’ più esteso nel designer: niente di grave, fare le cose a manina è sempre bello, ma uno sforzo in più non sarebbe stato male 😉

Teched-Developers: si parte!

Sono da poco arrivato a Barcellona… In un’atmosfera davvero particolare. In autobus ho subito incontrato Giorgio Sardo (vincitore dell’ImagineCup) con alcuni amici.

Durante il tragitto la discussione è subito stata: è meglio salvare periodicamente dati provenienti da una periferica bluetooth verso uno smartphone, su file di testo piuttosto che su database, con il fine di minimizzare al massimo il consumo della batteria…
Ho già capito che sarà veramente una settimana intensa di tecnologia 😉

L’organizzazione è veramente imponente! Computer ovunque (per raccogliere feedback dalle sessioni), copertura totale via Wifi, free drinks e fruits… Speriamo non sia solo apparenza 🙂

Oggi comincio con la preconf su Windows Sharepoint Services 3.0 con Patrik Tisseghem e Ted Pattison (argomento che ho già esplorato con le varie beta, ma un bel giro dalla A alla Z… male non fa).

Via!