JASoft.org

Trabajo con JavaScript en Visual studio 2008: lo que no vísteis en el Evolution Show

Trabajo con JavaScript en Visual studio 2008: lo que no vísteis en el Evolution Show
Hola a todos: Como sabéis la semana pasada estuve en el Evolution Show en Madrid, en la presentación de Visual Studio 2008, Windows Server 2008 y SQL Server 2008. De hecho estuvimos un montón de tutores de campusMVP dando las ponencias, como ya os había comentado, y tuvimos un stand de Krasis/campusMVP por el que se pasó  mucha gente. Lo pasamos estupendamente, y nos visitaron muchos amigos y alumnos, a los que me encantó saludar. Gracias :-) Los que tuvísteis ocasión de ir a mi ponencia sobre desarrollo Web sabéis los problemas que tuve. Mi portátil al que le acababa de instalar el SP1 de Windows Vista se negó a trabajar y se rompió miserablemente (pantallazo azul, aunque no lo viéseis, y eso que el día anterior por la tarde había ido a comprobar que funcionaba bien). Por lo visto (me enteré luego) al instalar el SP1 de Vista se ponen otra vez los controladores de Microsoft y quita los que tu tuvieses, por lo que si como en micaso el controlador del fabricante es más reciente y... [Más]

Un vistazo al futuro próximo: HTML 5.0

Un vistazo al futuro próximo: HTML 5.0
Hace ya casi una década desde que apareció la actual especificación HTML 4.0, aunque no empezó a ser adoptada por lo principales navegadores hasta unos años más tarde, y hoy en día es prácticamente universal. Desde el año 2004 se está desarrollando la nueva especificación HTML 5.0, si bien aún le queda camino por recorrer hasta estar terminada. El último borrador de la misma es del pasado día 12 de diciembre (o sea, el pasado jueves). Esta nueva especificación trata de estar al día con las tendencias actuales de la red, sobre todo la llamada "web social" basada en contenidos generados por cualquiera, los contenidos multimedia, etc.. Así, por ejemplo, la nueva especificación soporta unas etiquetas denominadas <video> y <audio> que permiten embeber de manera universal este tipo de contenido multimedia. De este modo no nos restringiremos a un sólo formato (Como Windows Media Video o Quikctime) ni tendremos obligatoriamente que usar Flash si queremos que se vea en cualquier s... [Más]

Volta: desarrollo de aplicaciones Web usando sólo los materiales que tienes en la habitación

Volta: desarrollo de aplicaciones Web usando sólo los materiales que tienes en la habitación
Ese es el original eslógan de la nueva herramienta de desarrollo Web salida de los laboratorios de Windows Live y de Microsoft Research. Se trata de Microsoft Volta, una serie de extensiones y bibliotecas para Visual Studio 2008, presentada oficialmente hace 4 días. La novedad de este interesante proyecto es que permite desarrollar aplicaciones Web sin importarnos si su funcionalidad se va a ejecutar en el cliente (navegador) o en el servidor. Nosotros desarrollamos y es más tarde, antes del despliegue, cuando decidimos de qué forma distribuimos todas las capas de la aplicación. Así, podemos decidir que una determinada funcionalidad se ejecute en el servidor por ser más compleja y con menos necesidad de inmediatez, mientras qeu por otro lado indicamos que una página completa (toda su funcionalidad) se ejecute en el cliente. Para ello programamos todo en el lenguaje .NET que queramos (C#, VB.NET, JScript o, yo que sé, PHP) y sólo tenemos que marcar las clases que hemos creado con un at... [Más]

Registro global de controles en ASP.NET

Registro global de controles en ASP.NET
Cuando queremos utilizar un control en una página Web, sea este un Webcontrol o un control de usuario (.ascx) tenemos que añadir siempre en la cabecera, justo después de la directiva de página, una directiva especial que define dónde encontrar el control y cómo trabajar con él. Por ejemplo: <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <%@ Register Assembly="ControlescampusMVP" Namespace="ControlescampusMVP" TagPrefix="mvp" %><%@ Register TagPrefix="kwc" TagName="cabecera" src="Controles/Cabecera.ascx" %> La primera línea es la directiva de página. Las que nos interesan son las otras dos. La primera directiva de control registra todos los controles contenidos dentro del ensamblado controlescampusMVP.dll y, dentro de éste, todos los contenidos en el espacio de nombres ControlescampusMVP (lo he sacado de un ejemplo del curso de preparación del examen 70-528 de campusMVP) para que puedan ser utilizados enla página ... [Más]

Cómo distinguir si un control de usuario está cacheado o no

Cómo distinguir si un control de usuario está cacheado o no
Una de las principales ventajas de los controles de usuario de ASP.NET (User Controls) es que, al igual que las páginas ASPX, mediante el simple uso de unos atributos de directiva podemos hacer que se haga caché automática de su salida. De este modo podemos guardar en caché por un tiempo determinado una versión del control por cada valor que tome un parámetro, una cabecera del navegador, el valor de un control, etc... Ya he hablado repetidas veces sobre esto en este blog. Hoy voy a comentar una técnica que nos permite saber si la instancia actual de un User Control en nuestra página es realmente resultado de haber ejecutado el control o, por el contrario, se ha obtenido directamente de la caché, sin procesamiento. La utilidad de esto es, aparte de las cosas raras que puedan surgir por ahí que lo lleguen a requerir, para poder trabajar con él directamente cuando se instancia de manera dinámica en una página (con el método LoadControl de la clase Page). Normalmente el código que usamos... [Más]

Descárgate las patentes de mucha tecnología de Microsoft, por ejemplo, ASP.NET :-)

Descárgate las patentes de mucha tecnología de Microsoft, por ejemplo, ASP.NET :-)
Lo cierto es que Google ha perdido un poco el factor "cool" que tenía hace tan solo unos meses. Sí, se ha hecho demasiado grande y poderoso, y eso asusta. A partir de ahora le tocará sufrir paulatinamente lo mismo que otros, como Microsoft, han padecido a lo largo de los años debido a ello. No obstante yo sigo siendo un gran fan de esta empresa y sus aplicaciones. Una de las que menos se conocen es Google Patent Search. A través de esta aplicación puedes buscar todas las patentes de la oficina de patentes de los EEUU, filtrando por palabras, nombre del inventor, nombre de la empresa asociada o código de clasificación entre otros. Ello puede ser muy interesante para encontrar información sobre una determinada tecnología, un determinado proceso industrial, o para ver si alguien ha patentado ya esa brillante idea que tuviste hoy en la ducha ;-) El caso es que el otro día, curioseando con esta aplicaicón encontré algunas patentes muy interesantes relacionadas con mi área de especial... [Más]

La anti-caché: sustitución post-caché en ASP.NET 2.0

La anti-caché: sustitución post-caché en ASP.NET 2.0
En este blog y en otros ámbitos (charlas, libros, artículos...) he hablado muchas veces sobre la caché en ASP.NET. Usar la caché en todas sus variantes es un método fundamental para obtener alto rendimiento en nuestras aplicaciones web, aunque sorprende ver cuántas aplicaciones Web hay por ahí que no le sacan partido en absoluto. Así que debemos aplicarla cuando sea pertinente. Eso sí, hay que hacerlo con cuidado y pensando bien cómo lo vamos a hacer, pues puede darnos más problemas de los que nos soluciona. Hoy voy a hablar de una característica nueva que apareció en ASP.NET 2.0 y que no usa demasiada gente. Y es que realmente de lo que voy a hablar es más bien de una anti-caché :-) Se trata de dela sustitución post-caché. Ésta trabaja justo al contrario que una caché de salida normal. Es decir, en lugar de hacer caché de una parte de la página, deja que ésta se actualice, manteniendo todo lo demás. Se entiende mucho mejor con un ejemplo. Imaginemos una página grande, con dive... [Más]

Cómo enviar los resultados de un control Web a una cadena

Cómo enviar los resultados de un control Web a una cadena
Típica situación: tengo un GridView con datos y quiero guardarlos en un archivo HTML (o más bien enviárselos al usuario como un archivo .htm) o enviarlos por correo. El control está dentro de una página con otros controles que están más o menos relacionados con éste, por ejemplo para pasarle parámetros y filtrar. Lo típico que hace todo el mundo es pasar los mismos parámetros a otra página, lanzar la misma consulta a la base de datos y luego generar el HTML con un StringBuilder (con suerte) y mucha paciencia. ¿Existe una forma mejor? Of course :-) La idea es sencilla: obtienes una referencia al control en cuestión (en una página simplemente uisas su nombre, por ejemplo GridView1) y usas un HtmlTextWriter para llamar a su método Render o RenderControl (de la clase base Control) y así obtener el resultado de su visualización. Por ejemplo: StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); GridView1.Render(htw); Response.Write(htw.ToString()); ... [Más]

El evento Session_OnEnd de Global.asa no salta en ASP Clásico

El evento Session_OnEnd de Global.asa no salta en ASP Clásico
Resulta que, de repente, sin razón aparente, el evento Session_OnEnd que estaba declarado en el Global.asa de una de nuestras aplicaciones escritas en ASP clásico, dejó de funcionar. Este evento se usa para realizar una serie de operaciones de "limpieza" al terminar la sesión de un usuario, y son importantes para mantener la calidad de servicio de dicha aplicación. Tratando de investigar el tema y de depurarlo en caso de haber un error (que nunca había existido anteriormente) llegué al aconclusión de que, inexplicablemente, ese evento era el único que no saltaba jamás, pero no había motivo alguno para este comportamiento. ?????? Bueno, resulta que buscando en la Knowledge Base de Microsoft me enocntré con esto: FIX: The Session_OnEnd() event is not raised in ASP Web applications as expected after you install Windows Server 2003 with Service Pack 2 Es decir, es un bug reconocido por Microsoft y se deriva de la instalación del Service pack 2 de Windows Server 2003. Así que ya lo... [Más]

Obtener (bien) la lista de temas disponibles para una aplicación

Obtener (bien) la lista de temas disponibles para una aplicación
Los Temas son una estupenda característica que se añadió en ASP.NET 2.o y que permite separar el aspecto de nuestra aplicación de la disposición de los elementos de las páginas ASPX. De este modo puedes cambiar todo el aspecto estético de la aplicación completa o de una parte de ella con sólo cambiar un ajuste en web.config correspondiente. Los temas son junto con las (mal traducidas) páginas principales (Master Pages) un gran paso adelante para independizar el diseño de la interfaz del desarrollo del código. El caso es que aprovechando estas características mucha gente ha implementado portales en los que se le deja elegir al usuario qué tema quiere aplicar a la aplicación, de modo que cada uno elige la combinación de colores, etc... que más le guste. Combinándolo con la API de perfiles (Profile) se consigue almacenar la preferencia y así mejorar la experiencia del usuario. El cambio dinámico de tema, al igual que el de Master Pages, se suele hacer en el evento Pre_Init de las páginas... [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