Cambiando el tamanio del Web Test Recoder

Estuve tratando de cambiar el tamaño del Web Test Recorder, pero sin éxito alguno :(. Al parecer otros también han tenido el mismo problema.

Y la necesidad de cambiar el tamaño, no es tanto por alguna funcionalidad importante, en algunos casos se pierde el diseño de tu aplicación, y es más por cuestión de visibilidad, pero de todas maneras no se puede cambiar el tamaño. Una solución simple, pero no obvia, es simplemente cerrar la ventana, ya que, Visual Studio sigue grabando las solicitudes de la página web, y eso lo podemos apreciar en el ítem de la prueba Web.

Parece que ser que pasa con IE 7, porque entre las opciones de Browser de los Web Test, de Internet Explorer sólo tiene la versión IE 5.5 e IE 6.0, esperemos que haya alguna manera de poder cambiar el tamaño :), ya que al cerrarlo se pierde la opción de agregar comentarios. Y recuerden que no es por funcionalidad cambiar el tamaño, sólo es cuestión de que se vea bien la página web :), pero sino, no hay problema.

Por cierto, en mi búsqueda de solución encontré esta FAQ:

Saludos,

Post cruzado 3Dev Blogs

FreeTextBox (editor html para ASP.NET), XHTML y los estandares

FreeTextBox, es un editor html enriquecido para ASP.NET de descarga gratuita. Creo que una imagen vale más que mil palabras:

Entre las características que he usado y me agradan, esta el poder configurar los toolbars, y los botones de cada toolbar, además de permitir el uso de HTML, mostrar una vista HTML, es decir altamente configurable. Más features las pueden encontrar aquí.

Bueno, todo normal en el uso del control, recuperaba el texto con la siguiente línea:

    objNot.Contenido = Server.HtmlEncode(ftxtContenido.Text);

He estado probando la web, y por curiosidad valide la página generada vía http://validator.w3.org/, y los errores saltaban a la vista. Por cierto es recomendable leer: Cómo forzar un determinado adaptador de rendering en ASP.NET 2.0.

Después de una revisión exhaustiva de porque se estaban generando estos errores, en la página de portada (donde muestro las noticias ingresadas vía el FreeTextBox). Y el problema era que el control FreeTextBox, estaba generando contenido para HTML, y generaba las etiquetas <B></B>, <BR>.

Valid XHTML 1.0 Transitional

Y en mi caso estoy usando como tipo de documentoXHTML 1.0 Transitional, y el código generado no cumplía con los estándares de este tipo de documento, ya que XHTML dice que toda etiqueta debe cerrarse explícitamente, además de que todos los nombres de las etiquetas deben estar en minúsculas.

Con la data almacenada no hay problema porque todavía esta en prueba, el problema es, que pasa con la nueva data que se ingresará, cambiar la data en la base de datos después de un ingreso queda descartada por obvias razones, y fue cuando me anime a crear una función para convertir todos los tags a minúsculas, antes de guardar el ingreso a la base de datos; pero como que reaccione a tiempo, y trate buscar alguna funcionalidad del control que satisfaga esta necesidad, y pues sí la había, adiós función para convertir los tags a minúsculas (bueno por el momento):

    objNot.Contenido = Server.HtmlEncode(ftxtContenido.Xhtml);

Sólo se tenía que hacer eso, y automáticamente antes de guardar el contenido a la base de datos, este era cambiado a XHTML, y ahora si puedo mostrar los resultados de la prueba:

Saludos,

Post cruzado 3Dev Blogs

indicadores y los patrones para AJAX

Como comentaba en un post anterior sobre ventajas y desventajas de AJAX, que existe un sitio que trata sobre los patrones para AJAX, que básicamente nos dan las pautas para no cometer problemas ya conocidos haciendo el uso de AJAX.

Y eso, hay un patrón llamado Ajax Patterns: Progress Indicator, y como decía en el post de arriba, es básico darle un indicador al usuario indicándole que su operación se esta realizando, puede ocurrir que el usuario asuma que su operación no se realizo y ejecutarla varias veces, y así otros inconvenientes, para más detalles revisar el patrón de AJAX, Indicador de Progreso.

Como saben en ASP.NET AJAX nosotros disponemos del control UpdateProgress, el cuál puede ser usado sólo, o con otros controles como el control ModalUpdateProgress, para lograr mejores efectos visuales para el usuario, los resultados saltan a la vista.

Y a lo que iba, me encontré con este post Indicadores de progreso y patrones de Ajax de Fernando Blat, donde nos deja varios recursos de indicadores ejemplos, para incorporar a nuestra web:

A ver si alguien les hace un backup, por si acaso se pierdan :).

P.D.: Esto es un poco, de lo que podrán ver en el Web Days :).

Saludos,

Post cruzado 3Dev Blogs

Andean Web Day – Peru (lista de ciudades)

Holas!

Recién tengo los links del evento, sobretodo del registro, por eso no lo pude enviar antes :), pero más vale tarde que nunca :).

Invitación del evento:

¿Estás pensando en desarrollar aplicaciones Web?
¿Estás realizando algún proyecto con tecnologías Web y aún no has decidió que tecnología usar?

¡En este evento podrás ver las tendencias y tecnologías que existen hoy para el desarrollo de software orientado al WEB!

Ven y comparte con nosotros técnicas y mejores prácticas, y entérate de lo que te brindará la tecnología Microsoft en los próximos meses.

Agenda del Evento:

  • Desarrollo web: Más allá de ASP .NET 2.0
  • Patrones de implementación para Asp.Net Ajax – Aplicaciones web asíncronas
  • Break ( 😀 )
  • Creando tu primera aplicación XAML
  • Expression Blend: ¡Desarrollando interfaces espectaculares!

Ciudades y Fechas:

  • Iquitos – 26 de marzo de 2007 – Registro
  • Chiclayo – 27 de marzo de 2007 – Registro
  • Arequipa – 28 de marzo de 2007 – Registro
  • Huancayo – 30 de marzo de 2007 – Registro
  • Lima – 30 de marzo de 2007 – Registro
  • Piura – 30 de marzo de 2007 – Registro
  • Ica- 31 de marzo de 2007 – Registro
  • Lima – 31 de marzo de 2007 – Registro

Para mayores detalles del evento como hora y lugar, visitar el link de registro o visitar el MUG de ciudad, la lista de MUGs esta en el grupo del Comité de Comunidades Profesionales del Perú. Es básica, su asistencia a este evento :)!

Saludos,

Post cruzado 3Dev Blogs

no es el gran tip, pero es un tip: ejecutar un Web Site como un root

En algunos casos es necesario simular un ambiente de producción en cuanto al manejo de rutas en nuestra Aplicaciones Web, y no ayuda mucho tener un Sitio Web bajo http://localhost:8686/PeruGeeks/adminCategorias.aspx, sobretodo si usamos imágenes relativas a la raíz, e ahí que no podremos ver las imágenes hasta subirlo al ambiente de producción, en ese caso si necesitamos ejecutar nuestro Sitio Web como si estuviera alojado en el root, para lograr eso debemos hacer lo siguiente (leer P.D.):

En las propiedades del sitio web, quitar la ruta de la propiedad Virtual path, y sólo dejar “/“:

Ahora ejecutamos y vualá, funcionando como lo queremos:

Fuente: Tip/Trick: How to Run a Root “/” Site with the Local Web Server using VS 2005 SP1.

P.D.: (Importante, y casi se me pasa :$), para poder usar esta propiedad es requerimiento instalar Visual Studio 2005 Service Pack 1.

Saludos,

Post cruzado 3Dev Blogs

por que instalar SQL Server 2005 Service Pack 2?

Imagino que varios de ustedes al enterarse de la liberación del Service Pack 2 de SQL Server 2005, también se preguntaron por qué instalarlo?


Voy a dejar unos enlaces donde podrán encontrar más detalles sobre SQL Server 2005 Service Pack 2:



Después de revisar la lista, imagino que quedará claro porque instalar el SP2, la recomendación que dejo es no instalar el SP 2, y en general cualquier SP, durante horarios de trabajo. Tratar de hacerlo durante el horario almuerzo, el break, o al final del día, para no tener inconvenientes de usar la PC, durante la instalación :).


P.D.: Download SQL Server 2005 SP2


Saludos,


Post cruzado 3Dev Blogs

Ojo: Atlas no es lo mismo que AJAX o ASP.NET AJAX, o si, pero no

A ver, veamos, y para que no le quede dudas a nadie cuando vaya a empezar a investigar sobre algo que escucho, llamado AJAX (que no es esto, ni esto).

Atlas fue el codename para el framework que estaba desarrollando Microsoft, para la creación de aplicaciones interactivas y dinámicas usando AJAX.

Atlas estuvo pasando por varias CTPs, conforme fue pasando el tiempo, y obviamente después del feedback de la comunidad, se anunció como iba ser la nuez, y cuál sería el nombre del que fue Atlas, se dijo que las librerías javascript del lado del cliente se llamaría Microsoft AJAX Library y soportaría cualquier tecnología de servidor, como Php por ejemplo, la funcionalidad del lado del servidor e integrada con ASP.NET se llamaría ASP.NET 2.0 AJAX Extensions 1.0, y finalmente el Atlas Control Toolkit, ahora sería AJAX Control Toolkit, que por cierto fue actualizado después de la liberación de ASP.NET AJAX, agregando dos nuevos controles.

Una vez definido los nombres, y sabiendo que AJAX es un conjunto de tecnologías independientes de la plataforma que nos permiten crear aplicaciones dinámicas enriquecidas y más interactivas con los usuarios; que Atlas fue el codename y ahora es ASP.NET AJAX, ósea toda la información que tengamos y use algo de Atlas debe ser actualizado a la reciente versión de ASP.NET AJAX, que es la versión final de Atlas, repito ahora Atlas es ASP.NET AJAX.

Como decía una vez definido el nombre, paso por la Beta 1, la Beta 2, la versión RC, y por último la tan esperada versión final de ASP.NET AJAX. Espero que haya quedado claro ahora, y si quieren conocer un poco más pueden visitar el blog de ScottGu’s, y si no, están los comentarios para cualquier otra duda :D.

Lo que motivo también este post fue la geeknoticia de Jorge Serrano, donde nos comenta la descarga gratuita de un e-book: Microsoft Atlas for AJAX Development, el título completo es Introducing Microsoft Code Name “Atlas” for AJAX Development.

Y dirán, que chiste tiene liberar ahora un libro desfasado, recordando la teoría sistémica, “ver el árbol sin dejar de ver el bosque“. Lo interesante es que el libro se divide en dos partes y cada una con aproximadamente el 50%. La primera parte se habla de las Aplicaciones Web de hoy, del mañana, de AJAX, del objeto XmlHttpRequest, como se llego Atlas, la arquitectura de Atlas, el modelo de programación de Atlas, entre otros detalles muy interesantes que son la carnecita de lo que es ahora ASP.NET AJAX, además nos permitirá entender mejor a ASP.NET AJAX. Ya, en la segunda parte, si se habla de los controles del lado del servidor, UpdatePanel, UpdateProgress, el Timer, del Control Toolkit, y de los Controls Server Extenders.

Por la vista rápida que le di a la segunda parte que trata principalmente de los controles, al revisar los controles básicamente hay que cambiar el prefijo atlas (<atlas:UpdatePanel />) por asp (<asp:UpdatePanel />), lo que si vi que cambio y deberían tenerlo en cuenta, es que si queremos reproducir los ejemplos con los Triggers del UpdatePanel, la versión final es esta, del cual ya hemos visto algunos ejemplos.

Bueno espero que ahora no les sorprenda a nadie el libro, y tener problemas como: Estuve leyendo el eBook, descargue ASP.NET AJAX pero no me reconoce el prefijo atlas, o cualquier otra propiedad, objeto, o evento cambiado, recuerden que para encontrar la última versión de la documentación actualizada, visitar este link.

Por cierto, ahora el mismo autor ha liberado el libro usando la versión final de ASP.NET AJAX: Introducing Microsoft ASP.NET 2.0 AJAX Extensions, por cierto me atrevería a afirmar que la primera parte del libro no cambio mucho con su versión anterior, pero sólo es una suposición hasta que llegue a mis manos ese libro :).

P.D.: Que les parece el uso de SnapPreview?, les molesta que salga el icono al final de cada link?, aun no me termina de convencer si cuadra o no en mis post…*-)

Saludos,

Post cruzado 3Dev Blogs

nuevos en el rrollo de Base de Datos y SQL?

Estos videos son básicos para iniciarse en SQL Server 2005, y no esta demás recordarte que SQL Express es gratuito, y aquí tienes una guía de la instalación detallada: Instalando SQL Server Express en modo avanzado.

Video Series: SQL Server 2005 Express Edition for Beginners

Introducción

Diseñando Tablas

Funciones en la Base datos

Creando y usando Reportes

Seguridad en la Base de Datos

Administración de la Base de Datos

Publicación a la Web

Saludos,

Post cruzado 3Dev Blogs

Forzar la descarga de archivos en nuestros Sitios Web

En algunos casos (comúnmente una página de descargas), nosotros necesitamos forzar a que el usuario descargue los archivos. Pero hay un problema, hay tipos MIME conocidos por los navegadores como las imágenes y los archivos HTML, entre otros, y que el navegador ya sabe como manipular estos archivos, pero que pasa si yo quiero forzar la descarga de estos archivos, por ejemplo en un repositorio de imágenes, o por cualquier otra razón queremos que descargue los archivos html, de texto, entre otros:

Para poder lograr esto vamos a hacer uso de la cabecera (header) Content-Disposition, de HTTP 1.1. Y lo que vamos hacer es que, cuando hagamos el response al usuario asignemos al header “Content-Disposition“, el valor de “attachment; filename=tuArchivo.ext“, y esto es independiente de que tipo de archivo sea, ya sea un MIME conocido o no. Además que es propio del protocolo HTTP, e independiente del lenguaje en que se use, se puede usar con aspphp, jsp, y los demás tecnologías de servidor, claro siempre y cuando permita modificar el header en el response.

Pero vamos a lo nuestro, como hacemos esto en ASP.NET, en primer lugar tendremos una página donde estén listadas las descargas, y una página separada para gestionar las descargas, filedownload.aspx, dentro de esta página colocaremos el siguiente código:

protected void Page_Load(object sender, EventArgs e)
{
   string filename = Request.QueryString.Get(“FileName”);

   if ( !String.IsNullOrEmpty(filename) )
   { 
      String dlDir = @”Descargas/”
      String path = Server.MapPath(dlDir + filename);

      System.IO.FileInfo toDownload =
                   new System.IO.FileInfo(path);

      if (toDownload.Exists)
      {
         Response.Clear(); 
         Response.AddHeader(“Content-Disposition”,
                    “attachment; filename=” + toDownload.Name);
         Response.AddHeader(“Content-Length”,
                    toDownload.Length.ToString());
         Response.ContentType = “application/octet-stream”
         Response.WriteFile(dlDir + filename);
         Response.End();
      } 
   }
}

Obviamente que en la página de descarga, cada link de descarga tendrá referencia a esta última página con el nombre del archivo de descarga.

También pueden visitar:

Saludos,

Post cruzado 3Dev Blogs