JASoft.org

Cómo fijar el puerto del servidor Web de desarrollo

Cómo fijar el puerto del servidor Web de desarrollo
A partir de Visual Studio 2005 la vida se simplificó bastante para los dessarrolladores Web con tecnologías Microsoft. No sólo porque la tecnología estuviera completamente remodelada y ASP.NET 2.0 se convirtiera en la herramienta productiva y potente que es hoy en día. En este caso me estoy refiriendo a la inclusión del servidor Web de desarrollo (Cassini para los amigos) en el propio entorno de Visual Studio. Antes de esto, mover una solución entre equipos era un dolor, sobre todo si tenías varios proyectos Web contenidos dentro de ésta. El motivo era que los proyectos Web estaban atados a la instancia local de Internet Information Server y por lo tanto cuando cambiabas de equipo la solución tenías que configurar cada proyecto en IIS, en el puerto o subcarpeta correctos. Un "peñazo", vamos. Con VS2005 y superiores el servidor de desarrollo sólo puede atender peticiones locales y se lanza automáticamente para depurar y probar el proyecto. Al hacerlo se asigna un puerto aleatorio en e... [Más]

Herramientas de prototipado de aplicaciones Web

Herramientas de prototipado de aplicaciones Web
Algo muy habitual en los equipos de desarrollo Web es el dibujar maquetas de las pantallas y sus elementos, de forma que podamos transmitir mejor la idea de lo que queremos a los programadores que lo van a implementar. Esto es válido también para los clientes, que a veces no se hacen una idea de lo que les estamos contando si no lo ven dibujado. Este tipo de croquis o prototipos pintados a mano de las Webs (llamados generalmente wireframes) son muy útiles, pero hacerlos realmente a mano es problemático porque no suelen quedar muy bien y luego muchas veces ni siquiera se hacen. Una herramienta especializada viene de maravilla para hacerlo mejor, más rápido y que quede de manera presentable. A continuación pongo una lista de productos, tanto gratuitos como comerciales, que sirven para hacer esto y que están muy bien: iPlotz Protoshare Justinmind Balsamiq: este es de pago pero me gusta especialmente gliffy Smartdraw Jumpchart Pencil Axure Si trabajas con ... [Más]

Cambios importantes en movilidad para ASP.NET 4.0

Cambios importantes en movilidad para ASP.NET 4.0
Hoy he sabido, directamente a través de la gente de producto de Microsoft, que han realizado unos cuantos cambios de cierto calado a la parte de soporte para dispositivos móviles en ASP.NET 4.0. Estos cambios se verán cuando salga la versión definitiva pero ahora no están disponibles en la Beta de Visual Studio 2010. 1.- Han convertido en obsoletas todas las clases de System.Web.Mobile, es decir, todo el soporte de controles móviles para WAP que existían en versiones anteriores de ASP.NET. Con obsoletas no quiero decir que dejen de funcionar o de soportarse, simplemente que han sido marcadas con el atributo Obsolete y que generarán una advertencia cuando compiles apliaciones que las usen. Así que ojo si usas el compilador con la opción de que las advertencias se traten como errores, porque no te compilarán. Simplemente ahora no se recomienda su uso. 2.- Han modificado sustancialmente los archivos de definición de navegadores (archivos .browser) tanto para HttpBrowserCapabilities... [Más]

TRUCO: Cómo hacer un IFRAME que ocupe el 100% de la altura

TRUCO: Cómo hacer un IFRAME que ocupe el 100% de la altura
Hoy he estado perdiendo un buen rato con esta tontería. Y es que parece mentira, pero si metes un <iframe> en tu página y le estableces sus propiedades width y height al 100% para que ocupen toda la página sólo te hace caso el ancho. El alto no funciona, da igual que lo pongas en sus atributos o en sus estilos CSS. No hace ni caso :-( Tras romperme la cabeza unr ato he estado buscando en Internet y hay soluciones para todos los gustos, la mayoría de las cuales no funcionan. Además si funcionan en Internet Explorer no funcionan en Firefox o al revés. Es un verdadero peñazo. Al final la solución pasa por establecer una serie de atributos para algunos tags de la página, así: <style type="text/css">    html, body, div, iframe { margin:0; padding:0; height:100%; }    iframe { display:block; width:100%; border:none; }</style> Si no haces esto no hay forma de que pille el alto completo de la página. Así que ya lo sabes. Espero que esto... [Más]

La misteriosa página que se envía dos veces

La misteriosa página que se envía dos veces
Este es uno de los problemas/bugs más raros con los que me he topado en años, y puede llegar a ser desesperante. Si has llegado aquí a través de una búsqueda de Google porque tienes el problema que indico en el título del post, estoy seguro de que me vas a dejar una nota de agradecimiento por el consejo :-) Hace unos días hicimos una nueva plantilla estética para un cliente de nuestra plataforma de e-Learning, SELF. La plataforma tiene un sistema muy potente de plantillas estéticas que permite personalizar mucho la estética y parte de la funcionalidad de la interfaz. Se pueden asociar plantillas a los diferentes campus (entornos cerrados de formación) y también se pueden asignar muchas plantillas/fachadas diferentes a cada campus de forma que se pueda acceder con aspectos diferentes para cada cliente al mismo campus a través de diferentes URLs o directorios virtuales. Una de estas plantillas, preciosa por cierto, provocaba un extraño efecto sobre todas y cada una de las páginas ... [Más]

ASP.NET: Controlar el uso de la caché de salida (OutputCache) de una página

ASP.NET: Controlar el uso de la caché de salida (OutputCache) de una página
La semana pasada os contaba en un post la forma de eliminar la caché de salida de una página a voluntad, antes de que caduque de manera "natural", usando el método RemoveOutputCacheItem. Este método tiene el problema de que debemos hacerlo desde una página diferente a la que está cacheada, porque en ésta los eventos de servidor (incluyendo el click de un botón) no saltan. Además dejé planteado un caso relativamente común que se puede dar y en el que resultaría útil disponer de otra forma de controlar si se hace caché o no. Imagina esta situación: tienes una página en caché que los usuarios normales pueden ver pero no editar, pero que los administradores pueden cambiar usando los botones apropiados. Si simplemente activas la caché para que los usuarios vean la versión cacheada de la página, como hemos visto, ninguno de los eventos normales saltará, así que los administradores tampoco podrán editar nada, ni tampoco se verán los cambios que han hecho hasta que la caché se refresque. ¿Cóm... [Más]

ASP.NET: Cómo eliminar la caché de salida (OutputCache) una página o control

ASP.NET: Cómo eliminar la caché de salida (OutputCache) una página o control
Los que me conocéis o habéis ido a alguna de mis charlas sabéis que soy un gran defensor de las técnicas de Caché de salida en las páginas para mejorar el rendimiento y la respuesta de las aplicaciones. De hecho en este blog he hablado ya bastantes veces sobre la Caché en sus diversas variantes. Así que quizá resulte chocante que hoy vaya a hablar sobre justo lo contrario: cómo eliminar la caché de salida (OutputCache) de una página. Como es sabido, para habilitar la caché de salida de una página o control lo único que tenemos que hacer es añadir una directiva similar a esta al  principio de la página, justo tras la directiva de página: <%@ OutputCache Duration="60" VaryByParam="None" %> Los parámetros que se pueden usar son variados y no voy a entrar aquí en detalles pues todo programador de ASP.NET debe conocerlos (si alguien necesita formación sobre desarrollo web, ya sabe ;-)). Es posible hacer caché de la página completa, sólo de algunas partes, de todo menos algunos... [Más]

Video en Channel9: mantenimiento de sesiones en ASP.NET

Video en Channel9: mantenimiento de sesiones en ASP.NET
Los que vísteis hace unas semanas mi vídeo sobre mantenimiento de sesiones en operaciones largas de cliente con ASP.NET seguro que os interesa saber que ahora podéis verlo a alta calidad y descargarlo en diversos formatos para su estudio pormenorizado. Microsoft lo ha publicado en Channel9 así que podéis verlo ahora también aquí: http://channel9.msdn.com/posts/Daniel+Garzon/Mantenimiento-de-Sesiones/ El código de ejemplo se puede descargar desde el post de mi blog referenciado en el primer enlace. Espero que os resulte útil :-)

ASP.NET Membership: Cómo guardar datos adicionales de los usuarios

ASP.NET Membership: Cómo guardar datos adicionales de los usuarios
En los  últimos posts he estado hablando sobre la seguridad de ASP.NET basada en Forms. Esto ha traído algunas preguntas por parte de los visitantes. Una de ellas, bastante común, es la de cómo almacenar información adicional atada a los usuarios que hemos autenticado.La API de Membership que viene con ASP.NET, y en concreto el proveedor de Membership para trabajo contra SQL Server (SqlMembershipProvider) nos provee de los medios suficientes para almacenar la información básica sobre los usuarios, esto es, el nombre, su login y su clave, que es lo mínimo necesario para trabajar. En este gráfico puedes ver la estructura completa creada por ASP.NET (más bien por aspnet_regsql.exe) en nuestra base de datos para dar soporte a SqlMembershipProvider y relacionados.Obviamente casi siempre necesitaremos almacenar mucha más información sobre ellos, relacionándola de manera directa y sencilla para poder extraerla. Así, por ejemplo, podemos necesitar almacenar sus datos de contacto, infromac... [Más]

Seguridad Web: Las cookies de autenticación de ASP.NET y su seguridad

Seguridad Web: Las cookies de autenticación de ASP.NET y su seguridad
En mi anterior post hablaba sobre el funcionamiento de las cookies en los navegadores y de cómo podíamos usar una extensión estándar (HttpOnly) para intentar impedir que las cookies sean accesibles desde el lado cliente y sólo se puedan manejar desde el servidor. No obstante se trata de una medida que, de funcionar, complica un poco a los posibles piratas, pero no es una verdadera barrera de seguridad. Para empezar ni siquiera está soportada por todos los navegadores. Las cookies residen en el disco duro del usuario por lo que son fáciles de manipular por cualquiera. Además se envían al servidor en cada petición, por lo que cualquiera con un proxy estilo Fiddler puede leerlas y manipularlas antes de enviarlas al servidor. Es decir, las cookies son elementos realmente inseguros. A raíz de estas disquisiciones alguien me escribió preguntándome por la seguridad de la autenticación Forms de ASP.NET (la más habitual). Ésta se basa precisamente en la existencia de una cookie que identific... [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