Alain López Jiménez

viernes, 9 de octubre de 2009

Url Rewriting

Si han encontrado este post es que andan buscando como reescribir una URL, así que ya sabrán las ventajas de lograr este cometido, aquí explicaré como fueron mis primeros pasos.

Para empezar me documente en:
Un documento más práctico que consulte fue:
La 1ra conclusión es que existen módulos que hay que instalar en el IIS y también hay librerías que con incluirlas en tu proyecto es suficiente.

Las librerías que probé fueron UrlRewriting.net y UrlRewriter.net (para IIS6 y IIS7) y van de maravilla en los exámenes que realice en el localhost, la documentación de ambos está muy completo en sus sitios además que el UrlRewriter.net es la que usan de ejemplo en el 2do documento que recomendé.

Bueno, en mi proyecto al final no tuve que hacer uso de estas librerías, solo fue con carácter educativo los exámenes realizados.

En el hosting donde subí el sitio web tenía instalado el URL Rewrite Module 1.1 para IIS7 http://www.iis.net/extensions/URLRewrite

La duda que me surgió fue:
Si no tengo IIS7 o no tengo instalado el URL Rewrite Module o mi hosting no cuenta con un editor para las reglas (q es lo más probable) como en el ejemplo http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/

¿Dónde puedo definir mis reglas? , ¿Dónde va el código de reescritura en el web.config?


<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Rewrite to services.aspx">
<match url="service(.*)/" />
<action type="Rewrite" url="services.aspx?category=service{R:1}" />

...


Esto se puede comprobar creando una regla mediante el editor como muestra el ejemplo del link anterior, para luego abrir en el Explorador Windows: %SystemDrive%\inetpub\wwwroot\ y ver su web.config: D

¿Solo con definir mis reglas en esa localidad del web.config resuelvo?
Pues sí, no hace falta nada más.

¿Cuándo edito el web.config me dice qué <rewrite> no es un miembro de <system.webServer>?
Pero no se preocupe, agregue su sitio al IIS7(el cual tiene instalado el URL Rewrite Module) y cuando lo abra podrá comprobar que va de maravilla.

Como ven es sencillo el uso de URL Rewrite Module 1.1, y los videos y ayuda están como todo lo de Microsoft. Ahh, las reglas pueden ser expresiones regulares, pero para eso leerse la ayuda: D

Saludos

Etiquetas: , ,

lunes, 22 de junio de 2009

Mi inicio con DotNetNuke

Lo primero es que DotNetNuke (DNN) es un CMS para ASP.NET.

Según http://es.wikipedia.org/wiki/CMS, un Sistema de gestión de contenidos (Content Management System en inglés, abreviado CMS) es un programa que permite crear una estructura de soporte para la creación y administración de contenidos, principalmente en páginas web, por parte de los participantes.

El primer CMS que use fue el Sitefinity, pero al este ser de pago y querer hacer mi propio sitio (apenas cuento con dinero para pagar un hosting) decidí buscar otro CMS gratuito para ASP.NET, ahí es cuando apareció mi amigo Gonzalo, que llevaba con DNN desde nuestro 3er o 4to año de la universidad. Así que me dio una pequeña charla (Gtalk) explicándomelo e hicimos un módulo (espero que las clases no hayan terminado :).

Por lo que he leído lo mejor es descargar de la página de DNN el Install y no la versión StarterKit que luego no hay quien la desinstalé.

El siguiente ejemplo es la creación de mi primer módulo.

Descompactamos el archivo Install que contiene el sitio DNN (en mi caso, …\Visual Studio 2008\WebSites\DNNPruebas)

Luego abrimos el sitio en Visual Studio.

Puede que salga el siguiente mensaje:

Le damos "Yes", para así poder usar el .NET Framework 3.5.

En el Explorador de Soluciones buscamos DesktopModules y creamos una nueva carpeta con el nombre de nuestro módulo (en mi caso, PrimerModulo).

Agregamos a la carpeta recién creada un nuevo elemento Control de Usuario Web, con nombre View.ascx implementado en el lenguaje C# y el código en un archivo separado.

Cuando se abra View.ascx, cambiamos el valor de Inherits por DotNetNuke.Modules.PrimerModulo.View y guardamos.

También tenemos que cambiar el archivo View.ascx.cs, para ello una vez abierto sustituimos todo su código por:


Luego guardamos y compliamos la pagina.

Vamos a View.ascx, y lo ponemos en modo Diseño, ahí escribimos: "Hola a todos, este es mi 1re modulo." , guardamos y nuevamente compliamos la página.

Ahora solo queda configurar el módul0 en DNN, así que abrimos el sitio web.


Si es primera vez que se abre el sitio DNN, entonces saldrá el Asistente de Instalación de DotNetNuke, seleccionamos el método automático. Una ves instalado entramos al portal y nos logeamos como host, Username: host Password: dnnhost

Seguimos las siguientes imagenes para crear una nueva definición de módulos.


Ahora llenamos los campos como muestra la imagen a continuación y hacemos click en Create.


Agregamos una nueva definición "PrimerModulo".


Añadimos un nuevo control ("Add Control") y llenamos sus campos como se muestra a continuación y damos click en Update:

Ya esta añadido el módulo, ahora crearemos una nueva página para agregarlo.

Expandimos el boton superior derecho "Show Control Panel" y veremos la sección "Page Functions" donde seleccionamos "Add".
Llenamos los campos como se muestra en la siguiente imagen y damos click en "Update"


Ahora en la sección Modulos del "Show Control Panel" seleccionamos nuestro módulo y damos click en "Add"

Entonces aparecera el nuevo módulo en la página.


Fin :)

Etiquetas: , ,