JASoft.org

Catálogos de WebParts Dinámicos

Catálogos de WebParts Dinámicos
NOTA: Estas técnicas no están documentadas y se basan en mis indagaciones sobre cómo conseguir crear catálogos dinámicos de WebParts. Todo surgió a raíz de la pregunta de un alumno de mi curso de preparación del examen de certificación 70-515 de ASP.NET. ¿Cómo puedo crear un catálogo de WebParts para una página personalizada al cual le pueda añadir yo los controles que quiera dinámicamente?. Es decir, que los controles que aparecerán en el catálogo en lugar de estar determinados de antemano como en los casos habituales (en un catálogo estático de WebParts), se puedan cargar desde una base de datos o similar. La solución Primero, para esto hay que crear nuestra propia clase plantilla de catálogo que es la que se encargará de contener a los controles que voy a ir añadiendo. Esta clase debe implementar la interfaz ITemplate. Ello implica implementar el método InstantiateIn de esta interfaz que será llamado por la infraestructura de página cuando se deba inicializar el catálogo. Es en ... [Más]

Detectar que la página actual está lista

Detectar que la página actual está lista
Esto a simple vista es una tarea sencilla, ya que de toda la vida las páginas HTML disponen de un evento onload que nos permite detectar cuando el documento ha cargado por completo. Por ejemplo, si escribimos: 1: <body onload="doWhatYouNeed();"> 2: ...... 3: </body> En cuanto el documento esté completamente cargado se llamará de manera automática a la función doWhatYouNeed. Nota: A partir de ahora haré todos los ejemplos prácticos en inglés para facilitar su localización posterior a este idioma, así que no te extrañes de ver los nombres de las variables, métodos... e incluso la interfaz de usuario en el idioma de Shakespeare. Esto nos asegura que cuando se llame a la función todos los elementos de la página estarán cargados y listos para su uso, incluyendo los que hay que cargar en una segunda fase tras la carga del HTML de la págin... [Más]

Proveedores universales de ASP.NET: Membership y Roles fuera de SQL Server

Proveedores universales de ASP.NET: Membership y Roles fuera de SQL Server
Como todo programador de ASP.NET sabe, la mayor parte de las API de esta plataforma de desarrollo web están basadas en el modelo de proveedores. Para explicarlo de manera rápida, básicamente esto significa que entre la funcionalidad que el programador utiliza y el almacenamiento relacionado con ésta, existe un elemento intermedio llamado "proveedor" que desacopla ambas partes. De esta manera, si queremos utilizar otro tipo de almacenamiento basta con cambiar el proveedor en la configuración y listo. no es necesario tocar el código en absoluto, por lo que resulta muy cómodo y útil. El siguiente esquema (sacado de MSDN) ilustra la arquitectura de este modelo: Como vemos muchos servicios como los de seguridad (Membership y Roles), la personalización (Profile) u otros como el almacenamiento de la sesión o los WebParts, están basados en este modelo, representados por las cajas de la parte superior. Así, la información de los usuarios, los roles, los perfiles, las sesiones, etc... [Más]

Recibir resultados de una página en otra: Transferencias y Cross-page posting

Recibir resultados de una página en otra: Transferencias y Cross-page posting
Hay ocasiones en las que tenemos una página muy poblada de controles que se deben mostrar en pasos sucesivos. Desde una simple recogida de datos que se haya complicado un poco, hasta varios pasos de un asistente, por ejemplo. Existen muchas maneras de solucionar esta situación y hacer que las páginas estén un poco más despejadas. Por ejemplo, podemos usar un control Wizard nativo de ASP.NET Web Forms. Sin embargo una forma mucho más natural de conseguirlo es recibir los resultados de la primera página en una nueva que los procesa y continúa el flujo de la aplicación. De hecho, en los paradigmas de programación convencionales (o sea, en todo lo que no sea Web Forms, incluyendo ASP.NET MVC pero también PHP, etc...) realmente es como se ha hecho siempre: unas páginas pasan datos a otras para procesarlos. Transferencia en el lado del servidor En ASP.NET disponemos de la instrucción Server.Transfer que nos permite derivar la ejecución actual de una página hacia otra, como si se ejecutase... [Más]

Simular notificaciones PUSH en una página Web

Simular notificaciones PUSH en una página Web
En mi último post describía la arquitectura que utilizan tanto iPhone como Windows Phone 7 para enviar notificaciones PUSH desde aplicaciones externas a los usuarios de los teléfonos. La comunicación entre el dispositivo y el servicio de notificaciones se basaba en una conexión “raw” permanentemente abierta entre ambos. Pero ¿cómo podemos simular algo así en una página Web? Hace poco un alumno de mi curso de preparación del examen 70-515 de desarrollo Web con tecnologías Microsoft, me preguntaba acerca de esta cuestión. En concreto la pregunta iba sobre sobre cómo conseguir el efecto de actualización automática de información que consiguen algunas páginas (como las de apuestas o de información bursátil) en las que el servidor envía información a los clientes sin que haya –aparentemente- una petición explícita... [Más]

Cómo migrar fácilmente de dasBlog a BlogEngine.NET

Cómo migrar fácilmente de dasBlog a BlogEngine.NET
NOTA 22/08/2011: La migración descrita en este artículo es valida para cualquier versión de BlogEngine superior a la 1.6, incluyendo la 2.0 y la última 2.5 que es multi-blog. Si vas a albergar varios blogs migrados debes prestar especial atención a la parte final de redirecciones. Llevo haciendo mi blog desde Junio de 2004, es decir, hace casi 7 años. Lo inicié albergándolo dentro de un proyecto llamado GolemProject que estaba auspiciado por una Universidad (craso error), por lo que enseguida murió y tuve que albergarlo yo mismo en uno de nuestros servidores. En aquel entonces (2005) el sistema de blogging más interesante que había -escrito en .NET- me pareció que era dasBlog. Lo malo es que este proyecto está abandonado. su última versión salió hace dos años -en marzo de 2009- e incluso entonces no incluía ya ni la mitad de las cosas que se le suponen a un sistema de blogging moderno, por lo que era cuestión de tiempo (y de vencer la pereza) que acabase migrando a otro sistema. Des... [Más]

Cómo crear URLs amigables personalizadas con ASP.NET Web Forms

Cómo crear URLs amigables personalizadas con ASP.NET Web Forms
Una de las ventajas que aducen los defensores a ultranza de ASP.NET MVC es lo bonitas y apropiadas para SEO que quedan sus URLs. Y tienen razón. La típica URL para una página que muestre los detalles de un producto hecha con ASP.NET Web Forms tendría un aspecto análogo a este: http:///www.miservidor.com/VerProducto.aspx?IDProd=5 Sin embargo, la misma funcionalidad usando ASP.NET MVC sería más bien algo más simple, del estilo de: http:///www.miservidor.com/Ver/Producto/5 Estas URL estilo REST son muy útiles tanto de cara a hacer el sitio más amigable a los usuarios, como para facilitar la vida a las arañas de los buscadores, favoreciendo el posicionamiento de las páginas si éstas son parte de una aplicación pública. ¿Cómo podemos conseguir lo mismo en ASP.NET Web Forms? Conseguir lo mismo en nuestras páginas Web Forms "tradicionales" es muy sencillo desde que apareció ASP.NET 4.0. Lo único que tenemos que hacer es definir las rutas que queremos usar, exactamente de la misma m... [Más]

Internet Information Server (IIS) Express y Visual Studio 2010 SP1

Internet Information Server (IIS) Express y Visual Studio 2010 SP1
Desde hoy por la mañana está disponible para descarga el Service Pack 1 de Visual Studio 2010. Trae algunas novedades (nada que ver con el SP1 de VS2008 que fue realmente un cambio gigantesco) y corrige decenas de bugs. Una de las novedades que trae respecto a desarrollo Web es la posibilidad de utilizar el recientemente aparecido IIS 7.5 Express para probar los desarrollos. IIS Express es una versión reducida del servidor de aplicaciones Web de Microsoft y nos proporciona una experiencia mucho más real a la hora de probar las aplicaciones, frente al habitual "Cassini" (o Web Development Server, como se le llama oficialmente). IIS Express contiene el motor de IIS y funciona exactamente igual que éste, por lo que te resultará muy fácil probar las configuraciones reales en él o, incluso, distribuirlo con tus propias aplicaciones en un momento dado. Lo puedes descargar desde aquí o instalarlo desde el Web Platform Installer. ... [Más]

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

¡Sígueme en Twitter!

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.

Histórico