E’ ormai da anni che MS ha dichiarato la sua guerra ai servizi NNTP al punto che nelle nuove versioni di IIS (server) il servizio non è più disponibile tra le componenti.
I Microsoft Forum saranno l’unico canale per le community... ma un gruppo di dissidenti (e io sono uno di loro) si è sempre opposta a tale scelta in quanto convinti che il protocollo NNTP sia più facilmente aggregabile e consumabile non necessariamente da interefaccia web (decisamente più impegnativa). E se vogliamo aggiungere una vena polemica mi piace dire che MS – che è sempre stata orientata all’interoperazione tra servizi - optò per una soluzione NON interoperabile. Ma i dissidenti non ci sono mai stati mostrando poco/nullo interesse verso i nuovi forum.
Alla fine ecco la proposta di MS. L’implementazione di un bridge NNTP che installato sulla macchina dell’utente dissidente permette di consumare i forum tramite client NNTP mentre il bridge consuma il forum tramite servizi WCF. Progetto in cantiere/progettazione da tempo ma sotto NDA fino a pochi mesi fa.
Ti senti dissidente e vuoi scaricare il bridge? Ecco dove scaricarle la beta di agosto 2009: Forums NNTP Bridge Client. Ma attenzione... non funziona perfettamente ma lo si può far funzionare con poche agili mosse. E’ ovvio che chi gli sviluppi e i test sono stati fatto non tenendo davvero conto delle localizzazioni. Si avvia il bridge, si configura in pochi minuti utente e password e si crea un account sul proprio news reader che punti al servzio nntp virtuale sulla macchina locale. Mi sottoscrivo quindi ai newsgoup a cui sono interessato e scarico i messaggi. Se avete le stesse configurazioni della mia macchina vi starete chiedendo: Ma i messaggi sono davvero stati spediti tutti a mezzanotte? ... a questa ciambella manca il buco :-)
Il problema non è insormontabile. La data nei messaggi viene così scritta: dom, 20-set-09 21.44.30 GMT anche se nelle RFC-850 si legge
2.1.4 Date The Date line (formerly "Posted") is the date, in a format that must be acceptable both to the ARPANET and to the getdate routine, that the article was originally posted to the network. This date remains unchanged as the article is propagated throughout the network. One format that is acceptable to both is
Weekday, DD-Mon-YY HH:MM:SS TIMEZONE
Several examples of valid dates appear in the sample article above. Note in particular that ctime format:
Wdy Mon DD HH:MM:SS YYYY
Sbinciando con Reflector credo di individuare il responsabile nel metodo GetMessageFormat della classe NntpTimeUtility che si preoccupa di formattare le date dei messaggi MIME ed è soggetto alla localizzazione, ma che IMHO dovrebbe esserne indipendente.
public static string GetMessageFormat(DateTime dateTime)
{
return (dateTime.ToString("ddd, d-MMM-yy HH:mm:ss") + " " + TimeZoneName);
}
Poichè NON sono disponibili i sorgenti ecco come - in collaborazione con Raf - mi sono mosso per risolvere il fastidioso problema. La formattazione è regolata dai regional settings, occorre quindi agire sul separatore del “Time”. Cambio il “Time Format” del mio utente in “HH:mm:ss” invece di “HH.mm.ss”.
Faccio ripartire il bridge a aproi il mio newsreader. I vecchi messaggi sono già stati scaricati, per corregerne la visualizzazione occorre riscaricarli da capo. I nuovi messaggi invece mostrano la data e l’ora correttamente.
Spero che nelle prossime release il bug venga fixato :-)
oO0( dissidenti... MS sentirà parlare di NNTP ancora a lungo!)
posted @ mercoledì 23 settembre 2009 17:00