lunes, 21 de enero de 2013

Tips HTML5 – Etiqueta Script para enlazar archivos JavaScript

La etiqueta script es usada para enlazar archivos con scripts de JavaScript, y hasta el momento la forma como hacíamos uso de esta etiqueta era la siguiente:

<script type="text/javascript" href="myscript.js">

En HTML5, se ha agregado el parámetro async, para permitir la ejecución asíncrona de un script, y ya no es necesario especificarle el tipo. Así la forma de usarlo actualmente es la siguiente:

<script href="myscript.js">

<script href="myscript.js" async>

sábado, 19 de enero de 2013

Tips HTML5 – Etiqueta Link para enlazar CSS

La etiqueta link es usada principalmente para enlazar hojas de estilo o scripts, y hasta el momento la forma como hacíamos uso de esta etiqueta al momento de usar hojas de estilo era la siguiente:

<link rel="stylesheet" type="text/css" href="theme.css" media ="screen">

Como muchas otras cosas, en HTML5 la cosa a cambiado, de forma que ya no es necesario especificar el tipo, además que los atributos charset, rev y target ya no son soportados, y han agregado el atributo sizes que es exclusivo para cuando la etiqueta es usada con iconos.

De esta forma cuando queremos enlazar una hoja de estilos solo necesitaremos algo como esto:

<link rel="stylesheet" href="theme.css">

El atributo media se conserva, pero solo se suele usar para definir estilos como en el caso de impresión, esto por su puesto es debido a que se logran mejores resultados al detectarse otros dispositivos por medio de JavaScript.

<link rel="stylesheet" href="theme.css" media="print">

jueves, 17 de enero de 2013

Tips HTML5 – Etiqueta Doctype

Como muchos ya saben, la etiqueta doctype es la primera que se suele encontrar en un documento HTML, y tiene como finalidad indicarle al navegador el tipo de documento que va a procesar, para que este pueda mostrárnoslo de forma correcta. Hasta el momento esta etiqueta era algo extensa y su contenido en el caso de HTML 4.1 era algo como esto:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Como pueden ver es algo extenso, pero ahora en HTML 5 la cosa es mucho mas fácil, ahora solo necesitaran algo como esto:

<!DOCTYPE html>

Como pueden observar han simplificado de forma significativa el contenido de esta etiqueta, y ya no es necesario especificar nada mas, lo que facilita bastante las cosas.

martes, 15 de enero de 2013

Introducción a HTML5

Muchos tal vez creen que HTML5 es una simple mejora del lenguaje de marcado HTML, pero en realidad es una versión completamente renovada del lenguaje, que es el resultado natural del proceso evolutivo de la web.

HTML5 integra 8 elementos, que hacen parte de la nueva especificación.

Semántica: Busca dotar al lenguaje de una estructura y una semántica que de sentido a la información, ampliando así la funcionalidad de la web. Esto es de vital importancia para los nuevos conceptos de la web, en donde se busca que la información contenida en un sitio se pueda organizar e identificar de manera que pueda ser indexada de forma más eficiente.

A simple vista puede parecer que esto no reviste mayor importancia, mas aun si se tiene en cuenta que las etiquetas que entran dentro de esta categoría no tienen incidencia alguna en la forma como se ve una pagina, pero teniendo en cuenta el volumen de información contenida en la web y la velocidad a la que esta aumenta, se hizo necesario la implementación de mecanismos que permitan manejar la información de formas más eficientes.

Modo offline y almacenamiento: se busca hacer más eficiente el acceso a la web, de modo que una aplicación web podría empezar a funcionar aun cuando no se esté en línea mediante mecanismos de cache y almacenamiento permanente de la información, que permitiría al usuario interactuar con la aplicación mientras no tenga conexión. Este es un factor importante, mas aun en el caso de los dispositivos móviles, donde la velocidad de conexión y la disponibilidad de la misma no siempre se puede garantizar.

Acceso a dispositivos: este tema está orientado principalmente al soporte a diferentes tipos de dispositivos móviles, los cuales como ya sabemos han empezado a formar parte activa de nuestras vidas, como es el caso de las tabletas, Smartphone, GPS, e incluso las cámaras fotográficas profesionales, las cuales ya cuentan con mecanismos de navegación web y geo localización entre otras funcionalidades . Así mismo comprende el mecanismo por el cual se puede acceder al hardware que estos dispositivos traen incluidos, tales como el GPS, acelerómetro, cámara, entre otros, con el fin de dotar a las paginas web de un dinamismo nunca antes visto.

Conectividad: en este aspecto se busca mejorar los mecanismos de conectividad, permitiendo que las aplicaciones puedan funcionar en tiempo real, como sucede por ejemplo con los chats. Este tema es de gran importancia para el mercado actual, porque como muchos ya habrán visto, se están empezando a popularizar todo tipo de juegos basados en HTML5.

Multimedia: este es tal vez uno de los elementos que más impacto ha causado a muchos, pues persigue integrar el manejo de audio y video de una forma más eficiente, evitando los problemas que hasta el momento se venían experimentando de la mano de tecnologías como Flash. Mediante la integración en HTML 5 de api’s para la reproducción de audio y video, los famosos plugins de Flash y Silverlight han pasado a ser solo un mal recuerdo, al punto que ya sitios como YouTube están migrando de su antiguo modelo y adoptando el nuevo estándar con excelentes resultados.

3D, gráficos y efectos: este es un elemento novedoso en verdad, y comprende la inclusión de soporte para el manejo de archivos gráficos, tales como SVG, así como el soporte para 3D de la mano de JavaScript como es el caso de WebGL, y múltiples efectos que permitirán disfrutar la web como nunca antes había sido posible.

Performance e integración: este es un punto interesante, y es el poder integrar tecnologías que permitan interactuar de forma mas efectiva con el servidor, lo que mejora notablemente el rendimiento de una web, al poder comunicar de forma efectiva sus necesidades y ser atendidas en el momento preciso.

CSS3: este elemento es conocido por muchos, pero tal vez no todos tengan una idea real del alcance e impacto que esto puede tener. La integración con Css3 abre un sinfín de posibilidades, una de las más esperadas por muchos diseñadores gráficos es sin duda el poder usar tipos de letras personalizadas en su web, pero hay más, incluye muchas facilidades para incorporar efectos geniales en la web al punto de hacer de una simple pagina una autentica obra de arte.

Como podemos ver HTML5 nos ofrece un amplio abanico de funcionalidades, y nos brinda grandes oportunidades de innovar en cuanto a los ambientes web hace referencia, si bien es cierto que aun no esta del todo soportado, y que como estándar aun esta sujeto a revisiones y mejoras, a este momento ya se encuentra muy avanzado, de hecho Firefox y Chrome están prácticamente a la cabeza en cuanto a funcionalidades soportadas, si desean pueden obtener mas información sobre las funcionalidades soportadas por los navegadores actuales aquí.

Ahora bien, aprovecho este espacio para anunciar la creación de una serie de post sobre HTML5 que contendrán una serie de tips sobre diferentes aspectos del lenguaje.

miércoles, 28 de noviembre de 2012

Tips – Concatenar cadenas con String.Format

Últimamente he notado muchas cosas que en realidad no me agradan, he tenido que realizar algunas revisiones de código y he notado unas cuantas malas prácticas, una de ellas es la que expongo a continuación:
   1: TxtBoxUser.Text = login + " / " + firstName + " " + lastName;
Si bien funciona, no es precisamente lo más elegante, en estos casos es mejor usar otra forma de concatenar esta información, como por ejemplo el uso del método Format de la clase String.


   1: TxtBoxUser.Text = String.Format("{0} / {1} {2}", login , firstName, lastName);
Esto da una apariencia más elegante al código, y luce más profesional. Es importante tener en cuenta que si bien el código fuente no esta visible al público es muy importante realizar un trabajo de calidad, ya que al fin de cuentas somos profesionales, y entre mas alto el nivel, nuestro código debe ser más elegante y limpio.
Nunca se sabe cuando nos van a realizar una revisión al código, y es mejor sobresalir por la calidad de este y no por la mediocridad del mismo, al fin de cuentas esta es nuestra carta de presentación.

lunes, 22 de octubre de 2012

Microsoft Enterprise Library – Data Access Application Block I

Esta es la primera entrega de la serie de post que tratara el tema de Enterprise Library, en este caso cubriremos lo relacionado a la capa de datos.

En este primer post nos atañe preparar los requisitos previos para nuestra aplicación, que en este caso hacen referencia a la creación de la base de datos que vamos a utilizar en esta serie de post, así como los demás componentes que vamos a necesitar.

Manos a la obra

En este caso vamos a trabajar inicialmente con una base de datos en SQLServer, mas adelante usaremos una base de datos en Oracle. Para nuestro ejercicio, vamos a usar la base de datos Northwind, la cual puede ser descargada desde la página de la comunidad.

Por otra parte vamos a necesitar la última versión de Enterprise Library que a este momento es la 5, la cual podemos obtener en la página oficial.

Una vez descargado el script, debemos inicia sesión en la base de datos con privilegios de administrador con el fin de crear nuestra base de datos, una vez allí, abrimos el script y lo ejecutamos.

image

Aquellos que como en mi caso usan SqlServer 2012, van a encontrarse con el siguiente error:

Error1

Esto es debido a que en la versión SQLServer 2012 no esta soportado el uso de sp_dboption, según se puede ver en la página oficial, se debe optar por el uso de ALTER DATABASE.

Entonces, debemos remplazar las líneas:

exec sp_dboption 'Northwind','trunc. log on chkpt.','true'

exec sp_dboption 'Northwind','select into/bulkcopy','true'

por las siguientes:

ALTER DATABASE Northwind SET AUTO_SHRINK ON

ALTER DATABASE Northwind SET RECOVERY SIMPLE

Una vez se realiza el cambio y se ejecuta el script ya tenemos la base de datos creada, solo resta crear un usuario para trabajar con nuestra base de datos.

CreateDatabaseOk

DatabaseTree

Como vemos ya contamos con una base de datos apta para nuestras pruebas. Con esto, mas la instalación de Enterprise Library 5, ya tenemos las bases para realizar los ejemplos propuestos en esta serie de post.

lunes, 8 de octubre de 2012

Microsoft Enterprise Library 5

Microsoft Enterprise Library es una biblioteca compuesta por un conjunto de componentes de software reutilizables, que se encargan de las tareas mas comunes en lo que a temas transversales concierne.

Estos bloques de aplicación son una especie de guía que nos indica la forma mas adecuada de realizar dichas tareas, estos bloques están acompañados por respectivos ejemplos de uso, y pueden ser fácilmente ampliados para utilizarlos en proyectos complejos de nivel empresarial o en proyectos de línea de negocio.

Dicho de una forma más simple, son componentes que han sido desarrollados basándose en los mejores patrones y en las mejores prácticas de desarrollo de software, y que ofrecen las soluciones más adecuadas para situaciones tan comunes como un log, o un componente de acceso a datos.

Esta pensado con el fin de hacer las cosas mas fáciles a las personas envueltas en labores de desarrollo ya que estos componentes ya encapsulan dentro de si todas las funcionalidades necesarias, lo que se traduce en un ahorro significativo de tiempo y esfuerzo, permite la reutilización de componentes y al mismo tiempo garantiza un buen nivel de estandarización en los desarrollos.

Actualmente Enterprise Library en su versión 5 cuenta con los siguientes bloques de aplicación.

  • Caching Application Block. Esta pensado para brindar funcionalidades de manejo de cache.
  • Cryptography Application Block. Brinda funcionalidades de criptografía, tal como algoritmo de Hash, etc.
  • Data Access Application Block. Contiene funcionalidades pensadas para facilitar el acceso a bases de datos.
  • Exception Handling Application Block. Brinda funcionalidades para el manejo avanzado de excepciones a través de toda la aplicación.
  • Logging Application Block. Tiene como finalidad aportar funcionalidades que faciliten el manejo avanzado de Logs en las aplicaciones.
  • Policy Injection Application Block. Este bloque de aplicación se puede utilizar para implementar políticas de interceptación para agilizar la implementación de características comunes, tales como la explotación forestal, caching, manejo de excepciones, y validación, a través de un sistema.
  • Security Application Block. Permite implementar las tareas correspondientes a la seguridad transversal de las aplicaciones.
  • Unity Application Block. Es un contenedor de inyección de dependencias ligero y extensible con soporte para constructor, propiedades, e inyección.
  • Validation Application Block. Contiene funcionalidades que permite implementar reglas de validación de negocio para los objetos de negocio, las cuales pueden ser usadas a través de las diferentes capas de la aplicación.

Como pueden ver, es una biblioteca muy completa e interesante, y aporta gran cantidad de funcionalidades que nos van a permitir llevar nuestros desarrollos a otro nivel.

Con esta premisa en mente, se da inicio a una serie de post en los cuales se trataran los diferentes bloques en mas detalle, de la mano de un pequeño proyecto, en el cual se espera hacer uso de estos con el fin de demostrar como podemos aprovechar esta maravillosa herramienta.

Para aquellos que deseen profundizar mas en el tema les recomiendo visitar la pagina de Patterns & Practices de Microsoft.