April 2008 Blog Posts

Creare un HttpContext al volo

In queste ultime due ore stavo prototipizzando un micro framework per implementare servizi REST based mediante delle Http handlers. Niente di eccezzionale, ma l'idea di avere qualche cosa di simile a WCF, cioe' dei metodi con una firma prolissa e molto OO, mi piace. Dopo aver trascorso un'oretta di codifica (refactoring a gogo), ho iniziato a scrivere qualche test. Per testare un Http handler ci vuole un Http context! E come lo creo? Non voglio tirar su tutta la 'baracca' ASP.NET e voglio avere un oggettino dove posso verificare il contenuto della risposta. Per creare un HttpContext ci vuole un...

posted @ Wednesday, April 30, 2008 1:11 AM | Feedback (0)

Dimensione di un oggetto managed

Recentemente stavo lavorando su un servizio che alloca un oggetto di grandi dimensioni. La domanda che mi son posto era, si ma quanto e' grande e dove posso ottimizzare? Ho aperto Visual Studio profiler ed ho fatto partire il servizio. Dato che l'applicazione, quando parte, deve deserializzare questo oggettone, ci stava mettendo una vita (ho fatto tempo a pranzare ed era ancora li a macinare). Abbandonato il profiler di Visual Studio ed ho usato CLR profiler, niente da fare, stesso problema! L'unica soluzione che mi e' rimasta in canna e' WindDbg con le estensioni SOS. Faccio partire il processo e carico...

posted @ Tuesday, April 22, 2008 11:16 PM | Feedback (1)

Professional IIS 7

E' uscito recentemente un nuovo libro su IIS 7, Professional IIS 7, di cui ho fatto da technical editor. Lo considero un libro di buona qualita' (non posso dire eccellente!) che copre molto bene la parte architetturale, di deployment e management. E' un libro che consiglio anche agli sviluppatori in quanto e' sempre necessario conoscere dove va a finire il nostro codice :-) Buona lettura a tutti...

posted @ Friday, April 18, 2008 1:17 AM | Feedback (0)

Edge caching

Il tema dell'edge caching e' un tema estremamente intrigante e sotto molti punti di vista complesso. Si parte dalla soluzione null cache, dove in pratica non si mette nulla in cache, per proseguire alla cache uniformemente distribuita, in stile ASP.NET per intenderci, fino ad arrivare alle collaborative edge cache networks. Qual'e' la soluzione ideale? Tutte e nessuna. Dipende totalmente dal contesto, ed in particolare dalla dinamicita' delle modifiche dei dati, dalla loro dimensione e quantita', dal modo di essere consumati, dal livello di sicurezza, dalla scalabilita', dalla topologia di rete del sistema di distribuzione, dall'uniformita' di distribuzione dei dati sull'edge,...

posted @ Tuesday, April 15, 2008 10:07 AM | Feedback (0)

String replace

Da 4 mesi a questa parte sto scrivendo un nuovo servizio che fa pesante uso di manipolazioni di stringhe. Parlo di replace, wrod braking, stemming, ecc. ecc. Questa mattina mi son letto un interessante post sulle prestazioni delle varie funzioni Replace disponibili nel framework: Comparing RegEx.Replace, String.Replace and StringBuilder.Replace – Which has better performance? Il post mi pare un pochetto incompleto in quanto non da riferimenti sull'uso delle risorse, in particolare della memoria. Nell'analisi delle prestazioni e' infatti fondamentale verificare sia il tempo che il consumo della memoria. Abbandonato il post torno ai miei compiti quotidiani. Una delle funzioni che maggiormente uso, e' il...

posted @ Wednesday, April 2, 2008 9:37 AM | Feedback (2)