SQL Site Map Provider, uso de SiteMapPath, Menu, y Treeview con base de datos

Con poco tiempo para postear, y sin internet en casa aún, aprovecho que hay la oportunidad de enviar smallpost :).


Este es una parte de los post que tengo en la cola bajo la categoría de ASP.NET Custom Provider/Everywhere, ASP.NET CP/E, frase no oficial por cierto. En estas dos semanas he estado haciendo algunas implementaciones de eso, por ejemplo tu puedes trabajar, el servicio de membership con tus usuarios de un dominio, pero para el manejo de roles montar un SqlRolProvider, y además usar SqlSiteMapProvider. Otra implementación que estoy haciendo, es usar el servicio de membership para validar usuarios contra MySql, y una vez validad el usuario manejarlo en tu aplicación con tus otros providers en SQL, sabían que existe el MySqlMembershipProvider?, en la ultima versión del conector de MySql para .NET, tiene soporte para el servicio Membership.  Y así otras fummadas más que puedes hacer, también podrías crear tu OracleMembershipProvider, por eso el título ASP.NET Custom Provider/Everywhere, pero más de eso hablaré en otro post, este sólo es un overview :).


Ahora al título del post, normalmente usted habrán podido usar el SiteMapDataSource, para tener un menú dinámico basado en el arcivo web.sitemap, y hasta puedes cambiarle el nombre de archivo o tener dos web.sitemap, ese un post que tengo en la cola. Pero dejando eso de lado, en algunos casos lo que se necesita es un menú mas dinámico aún, es decir basado en una base de datos.


Y es ahí donde podemos usar el SqlSiteMapProvider, básicamente tenemos que hacer tres cosas:



  1. Crear nuestra clase SqlSiteMapProvider.

  2. Crear nuestra tabla SiteMap.

  3. Y agregar nuestro provider al web.config, y usarlo, nada más.

Y en una de las cosas interesantes, es básicamente que un menú desde una base de datos es más dinámico y todos los beneficios que tiene meterlo en una base de datos, el menú de un sitio web no se va actualizar todos los días, el administrador de la web será el encargado de crear menús, dar los respectivos permisos, etc. Y el problema es que cada vez que cambias de página se accede a la base de datos para consultar el menú, y eso tampoco es óptimo, pero lo interesante es que podemos usarlo con SQL Cache Dependency.


 Artículo completo y código fuente: The SQL Site Map Provider You’ve Been Waiting For.


P.D.: Para junio parece que tendré más tiempo para enviar todos los post que tengo en la cola, el bloging es un vicio que no puedo dejar aún. Por cierto no he podido revisar los comentarios y emails que me han enviado, sorry, debe haber una cola de tres semanas, ya para el otro fin de semana trataré de responder a todas las dudas, comentarios, sugerencias, criticas, etc, no respondidas :).


Saludos,



Post cruzado 3Dev Blogs

Un comentario en “SQL Site Map Provider, uso de SiteMapPath, Menu, y Treeview con base de datos”

  1. Gracias por el aporte, hice implementacion de este sitemap, pero tengo un problema genera todo el sitemap ok, funcion de manera correcta en mi web, pero el procedure recibe el parametro usuario para saber q nodos puede visualizar o no, el problema es q cuando me logueo con un usuario y cambio a otro los nodos visibles por uno, como q quedan almacenados para el otro usuario, es decir no entra al bloque de reconstruir el sitemap debido a que valida si root!=null y luego sale de ese punto antes de construir. Gracias de antemano por la respuesta

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *