JASoft.org

Cómo incorporar Dynamic Data a un proyecto Web existente

Cómo incorporar Dynamic Data a un proyecto Web existente
El pasado lunes, en la charla on-line que impartí para el NEt User Group de la UOC sobre Dynamic Data, comenté que existía la posibilidad de sacarle partido a esta interesante tecnología sin tener que crear desde cero un proyecto especial de Dynamic Data, es decir, sin partir de este diálogo: Tal y como prometí ese día, a continuación explico cómo añadir las capacidades de Dynamic Data a un proyecto Web pre-existente. Como veremos se trata de algo muy sencillo. Dado que Dynamic Data se basa en el uso plantillas, tanto para las acciones como para generar campos, entidades concretas y otros controles, lo primero que debemos hacer es copiar desde un proyecto Dynamic Data pre-existente los siguientes elementos: 1.- La carpeta de nombre DynamicData2.- La página maestra Site.master y su correspondiente archivo de código Site.master.vb (o.cs si trabajamos con C#)3.- La hoja de estilos Site.css Usa el propio explorador de archivos de Windows para copiarlos, y luego refresca l... [Más]

Server.GetLastError no funciona en IIS 7.0 o superior: cómo solucionarlo y un truco general para IIS 7.5

Server.GetLastError no funciona en IIS 7.0 o superior: cómo solucionarlo y un truco general para IIS 7.5
Si llevas unos cuantos años en esto del desarrollo Web seguro que tienes todavía aplicaciones por ahí escritas en ASP 3.0, también conocido como "ASP Clásico". Este precursor del actual ASP era estupendo y funciona de maravilla aún hoy en día. A pesar de todas las virguerías técnicas existentes en la actualidad (que me encantan) me confieso un enamorado de esa antigua plataforma. El caso es que aún hoy en día, si tienes que montar una aplicación de ASP 3.0 incluso en un moderno Windows Server 2008 R2 con IIS 7.5, podrás hacerlo sin problemas y funcionará todo de maravilla. O casi... El otro día tuvimos que montar una de nuestras aplicaciones "legacy" en este entorno precisamente y todo parecía ir de maravilla. El caso es que nosotros instrumentamos todas nuestras aplicaciones, incluso  las antiguas, para llevar un registro automático de todos los eventos de inte... [Más]

Detener un Timer de ASP.NET AJAX

Detener un Timer de ASP.NET AJAX
Los temporizadores (Timer) de las extensiones de AJAX para ASP.NET son muy útiles. Nos permiten ejecutar una determinada tarea cada cierto tiempo, provocando postbacks de la página  (tanto completos, como parciales) en intervalos regulares. Un único Timer colocado en la página puede conseguir que se refresquen todos los UpdatePanels disponibles o cada uno de manera individual. Lo habitual es colocarlos en la página y olvidarnos de ellos. Pero ¿qué pasa si queremos poder pararlos y activarlos a voluntad? La cosa tiene más complicación de la que parece a simple vista. Lo primero que se nos ocurre a cualquiera es que, dado que tiene una propiedad Enabled para activarlo y desactivarlo bastará con establecerla en False para conseguir el efecto deseado. Si lo hacemos desde un postback asíncrono enviado desde dentro de un UpdatePanel, ni se notará en la página, ¿no?. Lo malo de esta idea es que, simplemente, no funciona. El motivo es que en un refresco parcial de página, aunque s... [Más]

Compartición de recursos entre dominios: el estándar de la W3C

Compartición de recursos entre dominios: el estándar de la W3C
En mis tres anteriores post me centré en JSONP, la solución soportada actualmente por cualquier navegador para hacer llamadas a servicios JSON ubicados en dominios diferentes al actual (ver índice al final de este post). Ahora, tras quince dís sin tiempo para nada (con Codecamp y TTT para Microsoft por el medio), por fin saco un par de horitas para escribir esta últma parte de la serie, dedicada a los estándares. Las limitaciones del objeto XmlHttpRequest a la hora de hacer peticiones desde el navegador a páginas y recursos ubicados en otros dominios son de sobra conocidas. Ello ha hecho que los programadores busquen atajos para conseguir esta funcionalidad y saltarse esta barrera. Hasta ahora hemos visto cómo JSONP nos permite conseguirlo gracias al uso de la etiqueta <script>, y cómo se le puede sacar partido en muchas ocasiones. No obstante esta técnica tiene bastantes limitaciones: · Sólo ... [Más]

JSONP (yIII): Cuestiones de seguridad y ASP.NET rompiendo la compatibilidad en 3.5

JSONP (yIII): Cuestiones de seguridad y ASP.NET rompiendo la compatibilidad en 3.5
En mis dos anteriores post (busca los enlaces al final de este post y leetelos antes si no lo has hecho) he estado hablando sobre la técnica de JSONP para consumo remoto de datos JSON entre dominios, algo a priori prohibido por el modelo de seguridad del navegador. Anteriormente comentaba que JSONP podría tener ciertos problemas de seguridad, y que para evitarlos en ASP.NET 3.5 se habían introducido cambios para paliarlos que rompían la compatibilidad con versiones anteriores. Voy a aclararlo ahora. El problema de seguridad tiene que ver con la obtención de acceso no autorizado a información privada que se comparte con JSON. Una de las técnicas habituales de securizar el acceso a los servicios, consiste en crear cookies encriptadas con una validez temporal limitada y asociadas a una sesión concreta. Esta técnica se utiliza de manera mayoritaria en los sitios Web actuales (como Facebook, Windows Live, o, como ya hemos visto, en la propia seguridad de ASP.NET). El problema de esta técn... [Más]

JSONP: llamadas AJAX a servidores remotos

JSONP: llamadas AJAX a servidores remotos
Como todo el mundo sabe, una de las medidas de seguridad más acertadas de los navegadores es la del aislamiento de los dominios para proteger la privacidad. Este aislamiento impide que, por defecto, se puedan transferir cookies entre dominios, que fallen los scripts que tratan de afectar a marcos con páginas que están en dominios diferentes y, por supuesto, tampoco permite hacer peticiones desde código JavaScript a servidores que están en dominios diferentes a la actual. Y aún así existen cantidad de vulnerabilidades (Cross Site Scripting, Cross Site Request Forgery, Cross Zone Scripting, etc...) relacionadas con robo de información y ataques distribuidos que están basadas en explotar código de JavaScript en aplicaciones mal construidas. Al final, cómo esté escrito el código de una aplicación web desde el punto de vista de la seguridad es más importante que todos los cortafuegos y otras medidas "de protocolo" que puedas incluir. Una de las implicaciones de este aislamiento entre ... [Más]

¡Mi libro de ASP.NET 4.0 gratis en Internet!

¡Mi libro de ASP.NET 4.0 gratis en Internet!
Hoy, coincidiendo con el evento ReMIX en Madrid, en el que Microsoft está regalando mi nuevo libro "Tecnologías ASP.NET 4.0 (saltando desde la versión 2.0)", hemos puesto a disposición de todo el mundo este mismo libro gratuitamente en formato electrónico. Así que puedes leerlo completo on-line y, si te gusta, comprarlo en papel a la editorial. Ya tienes un botón directo de compra a la derecha de la página del libro. Tenemos DISTRIBUCIÓN EN TODO EL MUNDO, no sólo en España, así que no hay disculpa aunque estés en Alemania, jeje El libro estará disponible en Scribd para su lectura por un tiempo limitado, así que aprovecha, leelo ahora y ¡díselo a tus amigos! Este es el enlace al libro: http://www.scribd.com/doc/20154009/Tecnologias-ASPNET-40-saltando-desde-la-version-20 Esta disponible desde hoy por la mañana, pero se lo hemos comunicado en privado antes que a nadie a nuestros fans de la página de Facebook de campusMVP. Es una de las muchas ventajas de ser fan en Facebook, así que ... [Más]

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]

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