Date una mirada a
http://www.rubyonrails.org/, en especial el videotutorial.
Porque lo de que mapea naturalmente a un desarrollo MVC (model, view, controller)?
Por esto. Imaginate la pagina de inicio. Se hacen tres cosas: Un modelo (que sacaria por ejemplo un mensaje hola mundo), un controlador (llamado INICIO) y una vista (una pagina inicio.html)
Presta atencio a la parte del CONTROLADOR. Si lo llamas "Roman" AUTOMATICAMENTE te cojeria:
www.elsitio.com/Roman
Entonces, es como autowiring: El modelo de los objetos se representa perfectamente en la aplicacion... que de hecho, es el objetivo de tener mayor disciplina en un desarrollo: Separa GUI + Logica + Contenido.
Y resulta que en los nuevos frameworks que son un stack integrado para apliaciones web MVC (que normalmente incorporan generacion de html basado en estandares, ajax, persistencia de objetos, enrutamiento de URL y mas) como RubyOnRails (ruby) TurboGears (python) y Castle (.NET) simplemente se logra una mayor productividad de desarrollo porque el flujo de trabajo es muy predecible y todo se auto-organiza.
Por otro lado, es cierto que a muchos usuarios lo de las Urls les tenga sin cuidado. Pero si miras los documentos de la w3c (reaulta que lo de las URls tambien esta estandarizado) veras que de todas maneras la gente empieza a notar (al menos algunos) que los sitios tienen una estructura.
Por ejemplo, si veo una url:
Articulos/21/Agosto/2005
me supongo que puedo darle directamente
Articulos/22/Agosto/2005
Obviamente se puede con la tipica
?Esto=1&Aquello=2
Pero a partir de cierto punto (# de parametros y su complejidad de interpretacion) ya queda dificil.
Por ultimo, fijate en el disco duro: Son Urls "limpias". A muchos no les interesa como es la estructuras de archivos pero otros si. Siendo todo igual, lo mas sencillo es mejor
Hay mas argumentos, como por ejemplo, de seguridad (es menos obvio la tecnologia y menos obvia que se puede hacer un ataque basado en urls) los de marketing y buscadores (lo mas fuerte) la abastraccion, desde el punto de vista del desarrollador, de la estructura interna.
Esto es algo que estoy trabajando el el CMS que desarrollo. Lo pienso enfocar al mercado latino. Pero resulta que a muchas empresas latinas les interesa manejar contenido en ingles. Asi que :
Version1 del sitio:
Productos/Computadores/Dell2053
Se puede tornar en
Products/Computers/Dell2053
o
Version 2:
(español colombia)
esCo/Productos/Computadores/Dell2053
a
(español mexico)
esMx/Computadores/Dell2053
Pero luego si el sitio se engrandece, se puede reorganizar:
Version 3:
/Colombia/Computadores/Dell2053
/Mexico/Computadores/Dell2053
/Usa/Products/Computers/Dell2053
Y sin embargo:
- Los urls "antiguos" se pueden dejar funcionando. En la version3 del sitio, no existe razon en hacer que
Products/Computers/Dell2053
Usa/Products/Computers/Dell2053
enUS/Products/Computers/Dell2053
Dejen de funcionar. Eso signifa que :
1- Los bookmarks que hagan los usuarios persisten durante mas tiempo
2- Los buscadores ven un sitio mas estable y terminan teniendo mas contenido que indexar, lo que aumenta la importancia
3- El sitio puede crecer de forma organica, e internamente sigue siendo:
Products.aspx?Idioma=esCo&Seccion=Computadores&Ref=Dell2053
Ahora un sub-beneficio: Auto-navegacion!
Si nos ponemos listos, nos podemos olvidar de los amarres de los archivos, directorios y subdirectorios. Y siendo algo listos, podemos autogenera todo el sistema de navegacion.
4- Se `pueden generar Urls mas simples que sea mas practicas en ambientes de navegacion mas restringido:
Los numeros de caracteres se pueden reducir o para los usuarios que son invidentes (piensen en que hay mucha gente que no puede ver o necesita asistencia en la navegacion, por ejemplo, mi tia usa un software para ello!) una navegacion:
Productos/Computadores/Dell1
a la hora de escribir en un CELULAR o una PDA o de escuchar mediante un lector de voz, es mas claro que el sistema de parametros.
Evidentemente, la ventaja de las urls estaticas aumentan en la medida que aumenta el tamaño y complejidad del sitio y disminuyen a medidad que el sitio sea mas una aplicacion web mas que uno para usuarios. Y sin enrutamiento, no tiene nigun chiste.
Por ultimo, hacer urls asi no es TAN dificil. Como mencionaron, se puede usar las propiedades de apache o un modulo http en .NET o lo que sea.
Un poco mas de info:
http://www.port80software.com/suppor...generationurls
Y no olviden que no estan obligados a hacer esto. Ni tampoco implica cambiar los sitios actuales sin razon.