Tutti gli articoli di Alberto

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!

Publicly useful information to be beamed in Seoul via RFID

Ho letto questo interessante post riguardo la copertura di seoul tramite Rfid per la trasmissioni di dati. Sono secondo me fenomeni da tenere sotto controllo, perchè come al solito, prima o poi alcuni di questi vengono importati in Italia.

Pensandoci, non sarebbe male, si potrebbero aprire molti scenari mobile, e quindi applicazioni per noi 😉

Riporto il post di seguito.
Ciao!

 

Filed under: Handsets, GSM

South Korea is bringing the heat yet again, and this time we’re seeing the “first ever 900MHz RFID” services that can provide product, traffic, and other pertinent information directly to your RFID-equipped cellphone while out and about. If you’re not totally freaked out about Big Brother being able to tell precisely what you’re looking for on your mobile at all times, Alien Technology and U-IT have developed a mobile RFID pilot aimed squarely at business-to-consumer (B2C) scenarios. The team plans to implant the voyeuristic chips into “products from Symbol Technology” next year, and initial information is being offered about movies, wine, bus routes, and other publicly useful tidbits. The idea is to install RFID chips in all 70,000 taxis cruising around Seoul in order to give customers convenient access to the data they crave, and if all goes well, additional intelligence will be added concerning “medicines, food, and social relationships,” while “travel and tourist related info” should be live in July 2007.
[Via CNET]

Read | Permalink | Email this | Linking Blogs | Comments

Source: Publicly useful information to be beamed in Seoul via RFID
Originally published on Sun, 05 Nov 2006 11:49:00 GMT

Teched 2006 Barcellona

Lunedì mattina parto per Barcellona, c’è un misto di attesa e trepidazione per questo che sarà il mio primo evento MS. Come citavo nel mio blog su thinkmobile.it vado solo per confermare che le conferenze italiane sono altrettanto valide e sicuramente meno costose 😉

Sto in questi sere (il tempo è sempre troppo poco) cercando di definire le varie sessioni che seguirò, tra gli argomenti principali:

  • Windows SharePoint Services v3 and Office SharePoint Servers 2007
  • .NET Framework 3.0
  • .NET Compact Framework e CE 6.0

Le sessioni sono talmente tante che penso passerò più tempo a casa a vedere il cd post event.

Mercoledì sera, che tristezza, sarò al Italy Country Drinks (scherzo 😉 Come sempre all’estero ci si rintana con gente della propria nazione.

Su questi schermi posterò le impressioni sulle varie sessioni.

Stay tuned 😉

Perdita di connessione durante il debug e breakpoint

Ultimamente sto soffrendo di problemi di connessione al device durante il debug. Durante il passaggio da una funzione all'altra si inchioda e VisualStudio mi ritorna l'errore

"The remote connection to the device has been lost. Please verify the device connection and restart debugging"

l'errore lo ottengo passando da un componente all'altro, apparentemente senza alcuna relazione.

Non ho trovato molte informazioni in rete, ma sembra che il problema sia dovuto ai breakpoint del debugger: per qualche motivo, impostatndo qualche breakpoint in più o in meno, si verifica una condizione che fa fallire il processo di step-through.

Una soluzione che con me ha funzionato è: rimuovere tutti i breakpoint e successivamente chiudere e riaprire VisualStudio.

(E' una cosa riporta a tempo indietro, ma alla fine "chiudere e riaprire" serve sempre…. )

Qualche link utile:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=487407&SiteID=1
http://www.eggheadcafe.com/aspnet_answers/NETFrameworkCompactFramework/Jan2006/post25812386.asp

Ciao!