UrlRewriting con trabocchetti vari

Mi sono preso un paio di giorni per sistemare il mio sito. A parte la sporcizia di codice che lo ha sempre contraddistinto (all'interno è codice in VB del 2002) e che ho in parte ripulito, ho implementato un url rewriting per migliorare l'indicizzazione da parte dei motori di ricerca.

Visto che è il mio quel sito, e visto che è sempre stata la mia palestra per l'asp.net, ho provato vari modi per la sua implementazione. Inizialmente avevo posto la mia attenzione all'uso degli handler come avevo spiegato qui nel lontano luglio del 2004, tecnica che trovo descritta anche attualmente in molti blog. Ma mi sono dovuto ricredere dopo i primi rilasci in beta per dei rallentamenti iniziali che non mi spiegavo. Dopo aver studiato per bene il funzionamento di tale tecnica con la mia web application, ho dovuto prendere la decisione di rinunciare, perché sì questa tenica risolve molti problemi, come il cambio di nome per i postback e necessità simili, ma creava un lavoro al server supplementare del tutto inutile.

L'uso di quel tipo di handler prende in consegna al richiesta e la ricompila con il nome della nuova pagina, e questo creava tanti file compilati nella cache di asp.net, quante erano le pagine elaborate con tale tecnica. Riprendendo l'esempio con quello script, io facevo in modo che un link di questo tipo:
www.nomesito.xxx/articolo.aspx?codice=001

Potesse venire invocato con questo url:
www.nomesito.xxx/articolo001.aspx

Il problema è dato dal fatto che ogni singolo articolo così specificato crea nella cache di asp.net una pagina compilata a sé, e per ogni articolo richiesto c'è un periodo di latenza dovuta alla nuova compilazione. Lo scenario diventa apocalittico se, nel mio caso e per il sito, gli articoli fossero stati un milione e fosse molto trafficato e tutti sarebbero richiesti. Nella cache di asp.net si sarebbero creati, per assurdo e solo teoricamente, 1.000.000 di file!

Ho deciso così di risolvere in un altro modo più semplice e prestazionale. In rete sono disponibili gratuitamente due componenti che fanno questo lavoro egregiamente lasciando perdere quello introdotto di asp.net 2.0 che è molto limitato. Io ho preso in considerazione:

  1. UrlRewritingNet
  2. Redirect module

Entrambi hanno funzioni complete, come l'uso del codice http 301 per i trasferimenti di pagina e così via. Alla fine la mia decisione è caduta sul primo, ma solo per casualità.

In ogni caso, attenzione all'handler e al PageParser.GetCompiledPageIstance e a come viene utilizzato. Nel mio caso era un danno.

Tra due giorni è Santa Lucia.

Nella stessa categoria

Commenti
Daniele Bochicchio scrive:
Re: UrlRewriting con trabocchetti vari

Andrea Zani wrote:
In ogni caso, attenzione all'handler e al
PageParser.GetCompiledPageIstance e a come viene utilizzato. Nel mio caso era un danno.

beh, io sono culture del rewriting con HttpHandler e
Server.Transfer/Execute. molto meglio, niente compilazione al volo e soprattutto, se fai un adapter per HtmlForm (vedi mio script) hai cmq l'url riscritto. amen!
Tra due giorni è Santa Lucia.

auguri!
12/12/2007 ore 12.12 | 3 risposte
andrewz scrive:
Re: UrlRewriting con trabocchetti vari

Daniele Bochicchio wrote:
beh, io sono culture del rewriting con HttpHandler e Server.Transfer/Execute. molto meglio, niente compilazione al volo e soprattutto, se fai un adapter per HtmlForm (vedi mio script) hai cmq l'url riscritto. amen!

Visto
Tra due giorni è Santa Lucia.
auguri!

Domani mattina voglio trovare i dolci!
12/12/2007 ore 13.10 | 1 risposta
Daniele Bochicchio scrive:
Re: UrlRewriting con trabocchetti vari

andrewz [MVP] [Staff] wrote:
Tra due giorni è Santa Lucia.
auguri!
Domani mattina voglio trovare i dolci!

se mi vieni a trovare a Torino, altrimenti niente!
12/12/2007 ore 16.12 | 1 risposta

Per inserire un commento, devi registrarti alla nostra community.

© 1998-2008 - AZ - Il blog di Andrea Zani

TagCloud
BLOG INFO
  • Post: 253
  • Commenti: 155
  • TrackBacks: 33
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom OPML

MVP
CATEGORIE
I PIÙ LETTI DEL MESE
IN EVIDENZA