Sitio Web del poderoso ChicoDotNet

Sitio Web del poderoso ChicoDotNet es el lugar donde puedes aprender todo lo nuevo sobre desarrollo de aplicaciones para Windows, ASP .NET, SmartClient y adquirir los súper poderes que te da la mejor plataforma de creación de programas: Microsoft .NET

20070530

Microsoft Surface

El día de hoy se presentará en la conferencia D el nuevo producto de Microsoft, que es la plataforma más novedosa desde el invento de la PC, su nombre: Microsoft Surface, anteriormente conocido (bien poco) con el Code-name Milan. Una mesita para café, tan sencillo como eso, pero sin cables que conectar, drivers que instalar, mouse, teclado ni nada que se le parezca, simplemente una pantalla touch-screen sobre la superficie de la mesa, de ahí su nombre.

En el siguiente diagrama se pueden ver las partes del Microsoft Surface:

  1. Pantalla. - Acepta múltiples usuarios, otra de las cosas interesantes es que puede reconocer la forma de los objetos que se colocan sobre su superficie.
  2. Infrarrojo. - Trabaja utilizando luces LED infrarrojas que detectan el movimiento en la pantalla, cuando los objetos tocan el tablero la luz refleja detrás y es tomada por las cámaras fotográficas múltiples infrarrojas, las cuales tienen cada una una resolución de 1280 x 960
  3. CPU. - Procesador Core 2 Duo, 2 Gb de memoria RAM y 256 Mb de memoria gráfica, la red inalámbrica funciona con antenas WiFi y Bluetooth, el sistema operativo es por supuesto Microsoft Windows Vista. Futuras versiones podrían incluír RFID.
  4. Proyector. - La resolución de la pantalla visible es de 1024 x 768, esto es para permitir un mejor reconocimiento de entrada en los bordes. Futuras versiones podrían igualar o superar la resolución de las cámaras infrarrojas.

Partes del Microsoft Surface

Microsoft Surface acepta la entrada de dedos múltiples y de los usuarios múltiples simultáneamente, teniendo en cuenta gestos complejos, incluyendo agarrar, estirar, girar sobre un eje y resbalar objetos virtuales a través de la tabla. Y la superficie tiene la ventaja agregada de una pantalla horizontal, así que varias personas pueden sentarse alrededor y utilizarla juntos. Lo interesante de todo esto para los desarrolladores es que principalmente ahora tenemos más campo para explorar opciones de interfases de usuario, que puedan disparar múltiples eventos multi-hilos y manejar multiusuarios en espacios públicos por ejemplo.

Éste súper juguete rondará el precio de 10,000 USD y por el momento no se tiene fecha de salida al mercado, a ver si al rato.

Etiquetas: , ,

Escrito por Alfonso Lara Ramos @ 11:30 0 comentarios

Busca Microsoft Surface en Technorati | Guarda Microsoft Surface en Yahoo | Guarda Microsoft Surface en Google Bookmarks | Envía Microsoft Surface a Furl | Envía Microsoft Surface a Newsvine | Guarda Microsoft Surface en Ma.gnolia.com | Envía Microsoft Surface a Reddit | Envía Microsoft Surface a BarraPunto | Envía Microsoft Surface a Digg | Envía un Meme sobre Microsoft Surface | Guarda Microsoft Surface en del.icio.us | Envía Microsoft Surface a Fresqui | Menea Microsoft Surface en Menéame

Contenidos relacionados: Google, Live Search, Tafiti, Yahoo

20070527

Los 10 errores de seguridad más comunes en ASP .NET

A continuación les enumeraré los 10 errores más comunes que se cometen cuando desplegamos una aplicación ASP.NET, les explico la razón por la que esos errores pueden ser peligrosos y les indico la manera más adecuada de corregirlos. Espero que les sea de utilidad:

  1. Custom Errors deshabilitado. En el archivo Web.config de nuestras aplicaciones ASP.NET la etiqueta custom Errors se encuentra comentada por defecto cuando creamos una nueva aplicación, esto deja el valor RemoteOnly por defecto. Sin embargo muchas veces cuando estamos probando el software en un servidor remoto hay ocasiones en las que por comodidad dejamos el valor en Off, esto permite a todos los usuarios que ingresan a las páginas de la aplicación enterarse de los errores que suceden en la aplicación, al momento de depurar. Sin embargo esto no es bueno al momento de desplegar, puesto que cualquiera puede también ver pedazos de código cuando hay alguna falla. Lo más adecuado es prender la opción, lo cual puedes aprovechar para mostrar errores más amigables al usuario, esto incluso te sirve para optimizar para buscadores ;-). Un ejemplo de cómo prender esta opción es el siguiente:
    <customErrors mode="On">
    <error statusCode="404" redirect="default.aspx" />

    </customErrors>
  2. Dejar habilitado el seguimiento de la página. El seguimiento de página (tracing) normalmente se encuentra apagado, sin embargo también por cuestiones de depuración puede encenderse, la forma más sencilla es hacerlo en el archivo que estemos trabaando utilizando la etiqueta Trace en la declaración de página del formulario en el que estamos trabajando, sin embargo una buena práctica es hacerlo de modo sólo local (por si necesitamos que el seguimiento esté de todos modos encendido) desde el archivo Web.config y luego apagarlo al desplegar, hacerlo de esta manera encenderá el seguimiento en todos los formularios del proyecto y evitará que se nos olvide apagarlo, lo haces con la etiqueta trace de la siguiente manera:
    <trace enabled="true" traceMode="SortByTime" localOnly="true" />
  3. Depuración habilitada. Tener esta opción habilitada, afecta al rendimiento de la aplicación, muestra errores más detallados y sólo debe encenderse mientras estamos desarrollando precisamente para el proceso de depuración, la forma correcta de desplegar es dejando en el archivo Web.config la opción de depuración apagada, otra buena práctica en el caso de las aplicaciones ASP.NET creadas con Visual Basic es dejar las opciones explicit y strict encendidas, de este modo hacemos código mejor construído (léase 100 veces: no garantiza que perfectamente construído, pero ayuda). La forma de configurar esto es de la siguiente manera:
    <compilation debug="true" strict="true" explicit="true"/>
  4. Cookies suplantables. Los hackers pueden realizar ataques de XSS (Cross Site Scripting) cuando las cookies son accesibles del lado del cliente, intentan este tipo de ataques cuando se encuentran por ejemplo con saludos del tipo Hola ChicoDotNet en las páginas en la que se inicia sesión agregando su propio código del lado del cliente. Esto puedes dificultarlo fácilmente -valga la redundancia- cuando enciendes las cookies HttpOnly, esto se hace de la siguiente forma:
    <httpCookies httpOnlyCookies="true" />
  5. Sesión sin cookies. Para hacer disponible una aplicación a los clientes que no aceptan cookies se tiene la opción de colocar la sesión en la URL, muchos las utilizan por defecto para no complicarse asignando a la etiqueta sessionState el atributo cookieless con el valor UseUri, sin embargo esto abre la posibilidad de suplantar a un usuario determinado visitando la dirección que contiene la sesión, esto puedes evitarlo almacenando la sesión en una cookie que expire pronto, pero queda el problema de los clientes que no aceptan cookies, para ellos necesitas enviar la sesión en la URL, ¿Cómo resolver eso?, enciende la autodetección, eso hará que los clientes que las acepten las usen y los que no las reciban en la URL, se hace con el siguiente código en Web.config:
    <sessionState cookieless="AutoDetect" />
  6. No emitir cookies seguras. Las cookies seguras se emiten utilizando SSL, esto hace que la transmisión se realice en forma encriptada, para configurar SSL en IIS puedes ver el artículo en MSDN que te indica como hacerlo en IIS 6.0, en el caso de IIS 7.0 es mucho más sencillo como ya había mencionado anteriormente. Para la configuración de la transmisión de las cookies por medio de SSL utiliza el siguiente código:
    <authentication mode="Forms">
    <forms requireSSL="true" />
    </authentication>
  7. Sesiones alargables. Para alargar el tiempo de expiración de una sesión se utiliza el atributo slidingExpiration de la etiqueta forms, esto da mayor tiempo a los hackers para suplantar a un usuario determinado, la recomendación es dejarlo como se indica a continuación:
    <forms slidingExpiration="true" />
    .
  8. Uso de cookies de autenticación por defecto. El nombre por defecto de una cookie de autenticación es .ASPXAUTH, una buena práctica es nombrar estas de manera distinta, por ejemplo utilizando un GUID, de esta manera evitamos que alguien que se firme en una aplicación del servidor y pueda modificar la cookie para firmarse en otra utilizando la primera cookie obtenida. Este valor se pondría en el lugar que indico a continuación:
    <authentication mode="Forms">
    <forms name="{80aae8ec-cee2-46bc-ba57-eb89cd3db488}" requireSSL="true" />
    </authentication>
  9. Paso de variables por URL. El uso de Request.Querystring("variable") para operaciones de negocios debe ser evitado, sobre todo si se trata de información sensible, se debe preferir el uso de variables de sesión o de ViewState, de otro modo cualqueir persona con algo de conocimientos de programación podría hacer ataques de XSS o de SQL injection.
  10. Credenciales o cadenas de conexión en Web.config. Esto es lo más común de la lista, debe evitarse a toda costa el guardar usuarios y contraseñas en etiquetas credentials y cadenas de conexión o configuraciones de aplicación en Web.config sin antes cifrarlas adecuadamente. O. K., IIS evita la descarga de estos archivos de forma remota, pero ¿Qué me dicen de los del hosting? Hay que tener mucho cuidado con esto.

Etiquetas: , , , , , , , ,

Escrito por Alfonso Lara Ramos @ 06:25 0 comentarios

Busca Los 10 errores de seguridad más comunes en ASP .NET en Technorati | Guarda Los 10 errores de seguridad más comunes en ASP .NET en Yahoo | Guarda Los 10 errores de seguridad más comunes en ASP .NET en Google Bookmarks | Envía Los 10 errores de seguridad más comunes en ASP .NET a Furl | Envía Los 10 errores de seguridad más comunes en ASP .NET a Newsvine | Guarda Los 10 errores de seguridad más comunes en ASP .NET en Ma.gnolia.com | Envía Los 10 errores de seguridad más comunes en ASP .NET a Reddit | Envía Los 10 errores de seguridad más comunes en ASP .NET a BarraPunto | Envía Los 10 errores de seguridad más comunes en ASP .NET a Digg | Envía un Meme sobre Los 10 errores de seguridad más comunes en ASP .NET | Guarda Los 10 errores de seguridad más comunes en ASP .NET en del.icio.us | Envía Los 10 errores de seguridad más comunes en ASP .NET a Fresqui | Menea Los 10 errores de seguridad más comunes en ASP .NET en Menéame

Contenidos relacionados: Google, Live Search, Tafiti, Yahoo

20070526

patterns & practices Web Client Software Factory

patterns & practices Web Client Software Factory es un kit que sirve a arquitectos y desarrolladores como base para la implementación de buenas prácticas en el desarrollo de aplicaciones Web ASP.NET que tengan flujos de página o flujos de trabajo complicados, que sean desarrollados por equipos de trabajo distribuídos, que obtengan información de diversas fuentes en interfases de usuario integradas y que soporten transacciones de negocio, todo ello con la posibilidad de desplegar la aplicación en forma modular.

Las ventajas de usar estas plantillas es que al integrar la interfase de usuario en múltiples módulos que desarrollen varios equipos de desarrollo se unifica la experiencia de usuario, esto reduce la complejidad del uso de diferentes aplicaciones para los usuarios finales, además como se pueden desplegar las aplicaciones modularmente las actualizaciones o nuevas características se pueden fácilmente actualizar independientemente de los tiempos en que los requerimientos de los usuarios son atendidos por los equipos de desarrollo.

Incluye módulos de autenticación, bitácoras, manejo de excepciones, autorización y plantillas de ambiente que a fin de cuentas parecen desarrollados por la misma persona o equipo independientemente de que no sea así. Aprovecha las tecnologías de SiteMaps, el ASP.NET role manager, la Enterprise Library Security Application Block y crea los bloques de pruebas, además de que incluye un diseñador de flujos de páginas por lo que cada desarrollador se puede enfocar en programar únicamente la lógica de negocio una vez ajustadas las plantillas iniciales.

Las descargas de documentación y el kit de desarrollo son gratuitas. Incluye librerías, plantillas, diseñadores de flujos, una implementación de ejemplo, guía para arquitectos, patrones y tópicos de cómo hacer las cosas.

Etiquetas: , , , , , , ,

Escrito por Alfonso Lara Ramos @ 13:28 0 comentarios

Busca patterns & practices Web Client Software Factory en Technorati | Guarda patterns & practices Web Client Software Factory en Yahoo | Guarda patterns & practices Web Client Software Factory en Google Bookmarks | Envía patterns & practices Web Client Software Factory a Furl | Envía patterns & practices Web Client Software Factory a Newsvine | Guarda patterns & practices Web Client Software Factory en Ma.gnolia.com | Envía patterns & practices Web Client Software Factory a Reddit | Envía patterns & practices Web Client Software Factory a BarraPunto | Envía patterns & practices Web Client Software Factory a Digg | Envía un Meme sobre patterns & practices Web Client Software Factory | Guarda patterns & practices Web Client Software Factory en del.icio.us | Envía patterns & practices Web Client Software Factory a Fresqui | Menea patterns & practices Web Client Software Factory en Menéame

Contenidos relacionados: Google, Live Search, Tafiti, Yahoo

20070524

Patrones y antipatrones de arquitectura: Singleton

En esta ocasión iniciaré una serie de artículos acerca de patrones y antipatrones de arquitectura. Espero que les sea útil. Ejemplificaré utilizando VB.NET y C# en cada uno de los patrones.

Tipo de patrón

Creador de objetos

Objetivo

Asegura que una clase determinada únicamente tenga una instancia y da acceso global a ella.

Motivación

Es importante en muchos casos que una clase tenga una instancia única, esto por ejemplo aplica a manejadores de ventanas, sistemas de archivos y de manera más sencilla clases que tienen propiedades y métodos que se utilizan durante todas las actividades de un sistema una y otra vez llamadas desde muchas otras instancias, por ejemplo un proveedor de acceso a datos. Un mecanismo adecuado para lograr esto es que la clase por si misma se construya, se exponga globalmente a todo el ensamblado y evite que otras clases la puedan construir nuevamente.

Aplicación

Debe usarse el patrón Singleton cuando deba haber una sola instancia de una clase y esta pueda ser accedida desde un punto conocido por sus clientes y cuando esta instancia deba ser extendida por sub clases sin modificar su programación.

Estructura

Patrón singleton en VB .NET

Patrón singleton en C#

Participantes

Singleton

Colaboración

Los clientes accesan al singleton solamente a partir de su operación

Consecuencias

Los beneficios del uso del patrón Singleton son los siguientes:

  • Acceso controlado a una sola instancia
  • Espacio de nombres reducido
  • Permite extender la funcionalidad por medio de sub clases
  • Permite usar un numero variable de instancias solo cambiando la operación que concede acceso a la clase Singleton
  • Es más flexible que exponer operaciones estáticas de clase

Implementación

Un ejemplo de implementación puede ser un proveedor de acceso a datos multi-base de datos, este se extiende por medio de la implementación de interfases para incluir nuevas sub clases que acepten nuevos proveedores en el caso de nuevas versiones o cambios de plataformas, la lógica de negocio siempre trabajará con la instancia Singleton Datos y toda la operación nueva o modificada se podrá implementar fácilmente sin modificar el resto de la programación, además de encolar los procesos transaccionales.

Código de ejemplo

VB.NET

Imports System.Runtime.CompilerServices
Public Class Singleton
Private Shared _Instancia As Singleton
<MethodImpl(MethodImplOptions.Synchronized)>_
Private Sub New()
If _Instancia Is Nothing Then
_Instancia = New Singleton()
End If
End Sub
Public Shared ReadOnly Property Instancia() As Singleton
Get
Return _Instancia
End Get
End Property
End Class

C#

using System.Runtime.CompilerServices;
public class Singleton {
private static Singleton _Instancia;
[MethodImpl(MethodImplOptions.Synchronized)]
private Singleton() {
if (_Instancia == null){
_Instancia = new Singleton();
}
}
public static Singleton Instancia {
get {
return _Instancia;
}
}
}

Usos conocidos

Un ejemplo de usos conocidos es la relación entre las clases y sus respectivas metaclases y las interfases únicas en los patrones de fábrica abstracta, constructor y prototipo.

Patrones relacionados

Fabrica abstracta, Constructor, Prototipo

Etiquetas: , , , , ,

Escrito por Alfonso Lara Ramos @ 18:03 0 comentarios

Busca Patrones y antipatrones de arquitectura: Singleton en Technorati | Guarda Patrones y antipatrones de arquitectura: Singleton en Yahoo | Guarda Patrones y antipatrones de arquitectura: Singleton en Google Bookmarks | Envía Patrones y antipatrones de arquitectura: Singleton a Furl | Envía Patrones y antipatrones de arquitectura: Singleton a Newsvine | Guarda Patrones y antipatrones de arquitectura: Singleton en Ma.gnolia.com | Envía Patrones y antipatrones de arquitectura: Singleton a Reddit | Envía Patrones y antipatrones de arquitectura: Singleton a BarraPunto | Envía Patrones y antipatrones de arquitectura: Singleton a Digg | Envía un Meme sobre Patrones y antipatrones de arquitectura: Singleton | Guarda Patrones y antipatrones de arquitectura: Singleton en del.icio.us | Envía Patrones y antipatrones de arquitectura: Singleton a Fresqui | Menea Patrones y antipatrones de arquitectura: Singleton en Menéame

Contenidos relacionados: Google, Live Search, Tafiti, Yahoo

20070523

Configuración de SSL con certificados autofirmados en IIS 7.0

SSL proporciona autenticación y privacidad de la información entre extremos sobre Internet mediante el uso de criptografía. Habitualmente, sólo el servidor es autenticado (es decir, se garantiza su identidad) mientras que el cliente se mantiene sin autenticar; la autenticación mutua requiere un despliegue de infraestructura de claves públicas (o PKI) para los clientes. Los protocolos permiten a las aplicaciones cliente-servidor comunicarse de una forma diseñada para prevenir escuchas (eavesdropping), la falsificación de la identidad del remitente (phising) y mantener la integridad del mensaje.

SSL implica una serie de fases básicas:

  • Negociar entre las partes el algoritmo que se usará en la comunicación
  • Intercambio de claves públicas y autenticación basada en certificados digitales
  • Cifrado del tráfico basado en cifrado simétrico

Durante la primera fase, el cliente y el servidor negocian qué algoritmos criptográficos se van a usar. Las implementaciones actuales proporcionan las siguientes opciones:

  • Para criptografía de clave pública: RSA, Diffie-Hellman, DSA (Digital Signature Algorithm) o Fortezza;
  • Para cifrado simétrico: RC2, RC4, IDEA (International Data Encryption Algorithm), DES (Data Encryption Standard), Triple DES o AES (Advanced Encryption Standard);
  • Con funciones hash: MD5 o de la familia SHA.

Toda la información sensible debería transportarse por medio de SSL o TLS (su sucesor), sin embargo muchas veces esto no se probaba en desarrollos caseros porque era un auténtico lío configurar certificados en IIS y normalmente quienes aprendíamos a hacerlo es porque recibíamos certificados de nuestros clientes que por norma los implementaban. Bueno pues con la nueva versión de IIS esto se ha facilitado muchísimo. Con IIS 7.0 el procedimiento para habilitar una Web segura es muy fácil:

Paso 1: Crea un certificado de servidor, das click en el elemento raíz (el que dice CHICODOTNET en la imágen)

Internet Information Server 7.0

Paso 2: Seleccionas Certificados de servidor, clic derecho y seleccionas "Crear certificado autofirmado", le asignas nombre, Aceptar y listo.

Certificados de servidor autofirmados en IIS 7.0

Paso 3: Vas y creas un sitio Web de la manera tradicional, o sea click derecho en Sitios Web, seleccionar Agregar sitio web y llenar los datos, nótese en la imágen que elijo https como tipo de enlace y el certificado que acabo de crear, comúnmente usaremos el puerto 443.

Creación de sitio Web seguro en IIS 7.0

Paso 4: Podemos apuntar tanto las conexiones seguras como las normales al mismo sitio Web y ya solo nos encargaríamos de enlazar al protocolo correcto dentro de nuestra aplicación, recordemos que no todo puede estar por https porque el proceso de cifrado y certificados harían muy lento el desempeño, pero todo aquello que transmita comunicación sensible debe ir por Web segura. Nótese en la imágen que podemos usar distintos puertos a los que se utilizan por defecto.

Configuración de alias de sitio Web en IIS 7.0

Paso 5: Una vez configurado todo seguramente querremos probarlo, cabe aclarar que el certificado que creamos en este ejemplo está a nombre de nuestra máquina, por lo que IE 7 nos muestra un mensaje de antiphising, le damos en entrar de todos modos y nos encontramos con el resultado final que hemos publicado en la Web segura.

Filtro antiphising de IE 7

Paso 6: De cualquier modo la forma más adecuada de entrar a hacer nuestras pruebas es en el nombre de la máquina (que por lo general en un certificado que sale a producción corresponde al dominio).

Hola mundo de sitio seguro con SSL

Ahora sí, felíz codificación de Webs seguras. :-D

Etiquetas: ,

Escrito por Alfonso Lara Ramos @ 09:52 0 comentarios

Busca Configuración de SSL con certificados autofirmados en IIS 7.0 en Technorati | Guarda Configuración de SSL con certificados autofirmados en IIS 7.0 en Yahoo | Guarda Configuración de SSL con certificados autofirmados en IIS 7.0 en Google Bookmarks | Envía Configuración de SSL con certificados autofirmados en IIS 7.0 a Furl | Envía Configuración de SSL con certificados autofirmados en IIS 7.0 a Newsvine | Guarda Configuración de SSL con certificados autofirmados en IIS 7.0 en Ma.gnolia.com | Envía Configuración de SSL con certificados autofirmados en IIS 7.0 a Reddit | Envía Configuración de SSL con certificados autofirmados en IIS 7.0 a BarraPunto | Envía Configuración de SSL con certificados autofirmados en IIS 7.0 a Digg | Envía un Meme sobre Configuración de SSL con certificados autofirmados en IIS 7.0 | Guarda Configuración de SSL con certificados autofirmados en IIS 7.0 en del.icio.us | Envía Configuración de SSL con certificados autofirmados en IIS 7.0 a Fresqui | Menea Configuración de SSL con certificados autofirmados en IIS 7.0 en Menéame

Contenidos relacionados: Google, Live Search, Tafiti, Yahoo

20070522

Reunión de la Comunidad .NET D. F. Mayo 2007

El martes 29 de mayo de 2007 se realiza la reunión mensual de la Comunidad .NET del D. F.

En esta ocasión están confirmadas las siguientes ponencias:

  • Héctor Obregón - Seguridad a profundidad en Aplicaciones .NET
  • Octavio Telis - Introducción a C# 3.0

El lugar donde se reúne la comunidad es:

Intersoftware Learning Solutions
World Trade Center México
Montecito #39 Piso 35, Oficina 27
Colonia Nápoles, 03810 México D. F.

La cita es de 19:00 a 21:50 horas aproximadamente.

La entrada como siempre es gratuita, puedes llegar en Metrobus y bajarte en la estación Poliforum o si vienes en automóvil llegas por Insurgentes, como a 4 cuadras del Viaducto Miguel Alemán con dirección hacia el sur. Si es tu primera vez en la Comunidad .NET es bueno que sepas que en el WTC te piden identificación a la entrada así que no la olvides.

Etiquetas: , , ,

Reunión de la Comunidad .NET D. F. Mayo 2007

Escrito por Alfonso Lara Ramos @ 22:30 0 comentarios

Busca Reunión de la Comunidad .NET D. F. Mayo 2007 en Technorati | Guarda Reunión de la Comunidad .NET D. F. Mayo 2007 en Yahoo | Guarda Reunión de la Comunidad .NET D. F. Mayo 2007 en Google Bookmarks | Envía Reunión de la Comunidad .NET D. F. Mayo 2007 a Furl | Envía Reunión de la Comunidad .NET D. F. Mayo 2007 a Newsvine | Guarda Reunión de la Comunidad .NET D. F. Mayo 2007 en Ma.gnolia.com | Envía Reunión de la Comunidad .NET D. F. Mayo 2007 a Reddit | Envía Reunión de la Comunidad .NET D. F. Mayo 2007 a BarraPunto | Envía Reunión de la Comunidad .NET D. F. Mayo 2007 a Digg | Envía un Meme sobre Reunión de la Comunidad .NET D. F. Mayo 2007 | Guarda Reunión de la Comunidad .NET D. F. Mayo 2007 en del.icio.us | Envía Reunión de la Comunidad .NET D. F. Mayo 2007 a Fresqui | Menea Reunión de la Comunidad .NET D. F. Mayo 2007 en Menéame

Contenidos relacionados: Google, Live Search, Tafiti, Yahoo

20070521

Microsoft Silverlight VS. Adobe Flash. Comparativa de características

Empecé mi carrera en el desarrollo de software creando aplicaciones interactivas con Macromedia Flash , la mayoría de los ejemplos de integración con aplicaciones Web en aquél entonces eran con ASP 3.0 y Action Script así que mi primer acercamiento a las aplicaciones Web que se ejecutaban del lado del servidor luego de CGI con C, Perl y Phyton afortunadamente tendieron a los lenguajes Microsoft, que son sencillos de usar y poderosos, aunque pasé por Java y PHP efímeramente. Hoy haré una comparativa entre la tecnología de Flash con la que mi hermano Arturo y yo iniciamos la aventura y Silverlight que está brindando nuevos caminos que empiezo a explorar recientemente.

Primeramente, la documentación desde la época de Flash 4 era un poco pobre, la mayoría de las aplicaciones solían utilizar eventos "On" y en muchas ocasiones podíamos ver el menú completo de aplicaciones Flash que no evitaban que aplicaras zoom en una animación de tamaño fíjo en tu sitio Web favorito o que tardaban mucho en bajar, esto sucedía porque la mayoría de los desarrolladores que implementaban Flash no conocían mucho del lenguaje ActionScript, ¿El resultado? aplicaciones muy pesadas que se tenían que distribuír en CD's interactivos pudiendo hacerlo vía Web si se hubiera documentado el lenguaje un poco mejor y los desarrolladores hubieran programado por ActionScript sus aplicaciones Flash como lo han hecho los grandes sitios que tuvieron éxito. La documentación y el SDK fueron mejorando gradualmente pero luego Macromedia aparentemente abandonó el esfuerzo por lo que el SDK y la documentación de Flash pasaron a formar parte del lado oscuro de la fuerza: a pesar de su poder de crear aplicaciones de negocios poderosas se ha limitado su uso a la creación de animaciones y encapsulado de multimedia.

Microsoft y la comunidad de desarrolldores han documentado bastante de Windows Presentation Foundation Everywere, ahora conocido como Silverlight, además su integración completa como parte de .NET 3.0 con las clases que venimos manejando los desarrolladores .NET desde la primera versión de .NET hacen que Silverlight sea una plataforma más natural para el manejo de aplicaciones de negocios que Flash .

Independientemente de la documentación y los SDK's las diferencias entre ambas plataformas en sus puntos más notorios son las siguientes:

  1. Animación: El formato de Flash basa su animación en matrices de cuadros por segundo, si quieres mover algo en Flash tendrás que hacer algo así como lo siguiente: Tienes un círculo que hará de pelotita rebotadora, durante un lapso de 5 segundos el círculo seguirá un vector que la llevará rebotando de un lado al otro de la pantalla, dibujas la pelotita, luego la línea del vector, luego calculas que por ejemplo para 12 cuadros por segundo necesitas 60 cuadros en los cuales animarás la pelotita para que llegue de un extremo al otro del vector. Arrastras en la línea de tiempo la pelotita usando una interpolación de movimiento hasta el cuadro actual + 60 y ¡listo!, por cierto, si ejecutas en una computadora viejita la animación es probable que en lugar de los 5 segundos le tome a la pelotita llegar unos 8 si le pusiste música de fondo o tienes muchos objetos moviéndose en pantalla. En el caso de Silverlight utilizas la animación de Windows Presentation Foundation, en la cual simplemente defines las condiciones de inicio y fin de la animación de la pelotita y ¡listo!, no tienes que preocuparte de los cuadros por segundo que ocuparás.
  2. Figuras: Flash almacena las figuras usando datos binarios, para crearlas necesitarás utilizar Adobe Flasho algún otro SDK de terceros o si lo deseas las programas por medio de Action Script bit por bit, para hacer cualquiera de las dos cosas por primera ocasión requieres una curva de aprendizaje un poco larga o tener una tableta digitalizadora para dibujar a mano alzada. En el caso de Silverlight utilizas XAML que es texto que puedes crear en el Bloc de Notas, está basado en XML y no requiere que compres librerías o programas para compilarlas.
  3. Texto: Flash almacena las fuentes utilizando vectores como con cualquier otra figura, el reproductor en sí mismo no entiende las fuentes TTF y requieres explorar bastante para lograr encapsularlas en las animaciones o convertirlas en símbolos que se distorsionan porque las fuentes son de por sí bastante complejas, en el caso de Silverlight simplemente agregas a los recursos de tu aplicación la fuente original, no tiene distorsión porque estás utilizando una fuente TTF verdaderamente y se la pasas al cliente en el momento que descarga la aplicación dentro de la misma.
  4. Multimedia: Flash soporta múltiples formatos de vídeo y con una calidad excelente tanto en el vídeo, el audio y la optimización de ancho de banda sin embargo sus formatos son mayormente propietarios, en el caso de H263 no cuentas con una especificación completa en caso de que necesites construir tu propio codificador/decodificador de vídeo, en el caso de On2 el licenciamiento tiene precios prohibitivos, en el caso del audio igualmente los formatos son propietarios, a excepción de ADPCM que ocupa mucho espacio por su baja compresión y MP3 que es bueno pero está volviéndose obsoleto y que requiere pagos de licencias y librerías de conversión de terceros. En el caso de Silverlight se usa el estándar de la industria VC-1 para el vídeo, soporta WMV y WMA que puedes crear gratis con Windows Movie Maker o si prefieres hacer tu propio codificador/decodificador puedes usar el Encoder SDK que es gratuito. Silverlight es más fácil y barato.
  5. Scripting: Flash utiliza ActionScript que es un lenguaje poderoso basado en ANSI pero para el cual no existen actualmente herramientas que permitan programarlo para crear aplicaciones de negocio, como lo es Visual Studio, todo lo que programas en C# o VB para tus aplicaciones Silverlight lo puedes reutilizar para una aplicación WinForms o ASP .NET.

La conclusión es que Flash es una excelente plataforma de desarrollo de aplicaciones pero que su implementación no es tan sencilla como Silverlight, que además de ser visualmente igual de poderoso está soportado por una gran base de conocimiento que crece día con día, está basado en texto, se integra fácilmente con las aplicaciones .NET y es más barato de implementar. ¿Mi veredicto? Me cambio a Silverlight.

Etiquetas: , , ,

Escrito por Alfonso Lara Ramos @ 14:52 0 comentarios

Busca Microsoft Silverlight VS. Adobe Flash. Comparativa de características en Technorati | Guarda Microsoft Silverlight VS. Adobe Flash. Comparativa de características en Yahoo | Guarda Microsoft Silverlight VS. Adobe Flash. Comparativa de características en Google Bookmarks | Envía Microsoft Silverlight VS. Adobe Flash. Comparativa de características a Furl | Envía Microsoft Silverlight VS. Adobe Flash. Comparativa de características a Newsvine | Guarda Microsoft Silverlight VS. Adobe Flash. Comparativa de características en Ma.gnolia.com | Envía Microsoft Silverlight VS. Adobe Flash. Comparativa de características a Reddit | Envía Microsoft Silverlight VS. Adobe Flash. Comparativa de características a BarraPunto | Envía Microsoft Silverlight VS. Adobe Flash. Comparativa de características a Digg | Envía un Meme sobre Microsoft Silverlight VS. Adobe Flash. Comparativa de características | Guarda Microsoft Silverlight VS. Adobe Flash. Comparativa de características en del.icio.us | Envía Microsoft Silverlight VS. Adobe Flash. Comparativa de características a Fresqui | Menea Microsoft Silverlight VS. Adobe Flash. Comparativa de características en Menéame

Contenidos relacionados: Google, Live Search, Tafiti, Yahoo

20070520

Como encriptar tus conexiones de SQL Server 2005

En SQL Server 2005 las conexiones entre cliente y servidor pueden ser encriptadas utilizando SSL incluso si un certificado X.509 no se ha instalado. Cuando este es el caso SQL Server creará uno automáticamente.

Por defecto el certificado revisará que una entidad de confianza raíz esté enlazada (Por ejemplo eTrust o Verisign) cuando no es encontrada una entidad superior de confianza la conexión fallará con un mensaje como este:

A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed)

Puedes solicitar en la cadena de conexión que la verificación del certificado no se realice utilizando el parámetro TrustServerCertificate en tu cadena de conexión, quedando tu cadena de conexión de la siguiente forma (en C#):

string connectionstring = “Server=(local);Database=AdventureWorks; Integrated Security=SSPI;Encrypt=true;TrustServerCertificate=true”;

Es mejor instalar un certificado válido y reconocido, sin embargo es mejor utilizar uno que no lo sea que transmitir datos sensibles en texto plano por la red.

Etiquetas: , , ,

Escrito por Alfonso Lara Ramos @ 19:27 0 comentarios

Busca Como encriptar tus conexiones de SQL Server 2005 en Technorati | Guarda Como encriptar tus conexiones de SQL Server 2005 en Yahoo | Guarda Como encriptar tus conexiones de SQL Server 2005 en Google Bookmarks | Envía Como encriptar tus conexiones de SQL Server 2005 a Furl | Envía Como encriptar tus conexiones de SQL Server 2005 a Newsvine | Guarda Como encriptar tus conexiones de SQL Server 2005 en Ma.gnolia.com | Envía Como encriptar tus conexiones de SQL Server 2005 a Reddit | Envía Como encriptar tus conexiones de SQL Server 2005 a BarraPunto | Envía Como encriptar tus conexiones de SQL Server 2005 a Digg | Envía un Meme sobre Como encriptar tus conexiones de SQL Server 2005 | Guarda Como encriptar tus conexiones de SQL Server 2005 en del.icio.us | Envía Como encriptar tus conexiones de SQL Server 2005 a Fresqui | Menea Como encriptar tus conexiones de SQL Server 2005 en Menéame

Contenidos relacionados: Google, Live Search, Tafiti, Yahoo

20070519

Microsoft PopFly

Microsoft PopFly

Microsoft PopFly es un sitio que presentó Microsoft basado en Silverlight que tiene como principal característica en que puedes crear y compartir mezclas de servicios de Internet, tales como Flickr, Twitter, Virtual Earth, gadgets y aplicaciones. Todas ellas pueden construírse directamente desde el sitio de PopFly ya que la aplicación te permite utilizar todas las herramientas necesarias en una interface Windows Presentation Foundation.

Está formado de dos partes principalmente:

  • PopFly Creator, que es un conjunto de herramientas visuales para la creación de páginas Web y mezclas de herramientas Web 2.0. A su vez, PopFly Creator se divide en Mashup Creator (creador de mezclas) y Web Page Creator (creador de páginas Web)
  • PopFly Space, que es una comunidad de creadores en las que puedes hospedar hasta 25 Mb de creaciones para compartirlas con otros usuarios de PopFly, otras de las características de PopFly Space es que se puede interactuar con el resto de la comunidad calificando las creaciones, comentándolas y creando nuevas mezclas a partir de las existentes.

Mashup Creator tiene por el momento las siguientes herramientas:

  • Blocks (Bloques), Permite realizar cosas como obtención de fotografías, contenidos, vídeos, etc. a partir de servicios como Live Spaces y mostrarlas en presentaciones, controles interactivos, fuentes RSS y otras opciones sin necesidad de meterle código, esto si bien no suena muy divertido para los desarrolladores significa que no tienes que hacer todas las operaciones de conexión, transformación y personalización que harías sobre las fuentes XML originales para aprovecharlas, si bien esto puedes hacerlo de cualquier manera.
  • La superficie de diseño permite colocar los bloques y conectarlos gráficamene para crear las aplicaciones, al estilo de Windows Workflow Foundation, pero más parecido a conexiones de diagramas de red.
  • Tutoriales integrados que te permiten aprender todo lo necesario para utilizar PopFly rápidamente, como si consultaras la ayuda de MSDN dentro de tu Visual Studio o Expression Web
  • La vista de código te permite fácilmente modificar tus mezclas diectamente desde el HTML, con ello puedes personalizarlas utilizando Javascript, HTML o CSS como si de cualquier otra aplicación de desarrollo para Web se tratara.

Por otro lado, las características de Web Page Creator son las siguientes:

  • Permite el diseño visual de tus páginas utilizando la misma tecnología que Microsoft Office Live Web Designer
  • Plantillas, estilos y esquemas de colores integrados, entre los que puedes escoger más de 150 temas diferentes, 10 estilos y 30 esquemas de colores, estos puedes modificarlos también directamente en el código, la gran ventaja es tener más de 45000 puntos de partida predefinidos para ahorrar tiempo diseñando y ganarlo para ponerse creativos.
  • Capacidad de incrustar mezclas, lo cual te permite incluír fácilmente en tus páginas contenidos tales como animaiones Flash, fuentes RSS, vídeos, audio, gráficos en 3D y todo aquello que se te ocurra a ti o a cualquier otro miembro de la comunidad PopFly.

Finalmente, la comunidad PopFly Space incluye herramientas de colaboración, tales como:

  • Votaciones y comentarios, los cuales permiten mantener los mejores contenidos, mezclas, aplicaciones y proyectos mo más populares, según la interacción de la comunidad
  • Opciones de red social, que te permiten conectarte con otros creadores, compartir tus datos con ellos y seguirles la pista a sus proyectos.
  • Lo más interesante es que tiene su propio Plug-in para Visual Studio Express, de modo que si la interfase de PopFly no te acomoda puedes compartir tus proyectos desarrollados con tu herramienta de siempre o si te acomoda siempre puedes tener a la mano tus proyectos sin ener que conectarte siempre. Si no te acomoda la puedes personalzar desde el código. ;-)

Etiquetas: , , , , , , , ,

Microsoft PopFly

Escrito por Alfonso Lara Ramos @ 23:45 0 comentarios