Ads 468x60px

Perfil

martes, 29 de enero de 2013

Fundamentos de Silverlight Parte1


¿QuĂ© es Silverlight?

Silverlight es una tecnologĂ­a que nos permite crear Aplicaciones Enriquecidas para Internet o RIA por sus siglas en inglĂ©s (Rich Internet Applications). Con Silverlight podemos construir aplicaciones que van desde pequeños componentes dentro de una página Web hasta sofisticadas Aplicaciones de Negocio que estĂ©n consumiendo y presentando datos de alguna base de datos, pasando por juegos casuales, reproductores de multimedios, Gadgets para Windows Vista o 7, y un largo etcĂ©tera.
Incluso después de más de 3 años de haber sido liberada al público en general su primera versión, aún existen muchas confusiones y malinterpretaciones acerca de esta tecnología. Primeramente, tenemos que decir que Silverlight es una tecnología multi-navegador, esto es, es capaz de ejecutar adentro de los navegadores más comunes disponibles hoy en día: Internet Explorer, FireFox, Chrome y Safari.
Por otro lado, Silverlight es una tecnologĂ­a Multi-Plataforma, esto es, es capaz de ejecutar en los principales Sistemas Operativos disponibles hoy en dĂ­a: Windows, Mac OSX y Linux (a travĂ©s de Moonlight, proyecto que es llevado a cabo por la empresa Novell y que es la implementaciĂłn de Silverlight para ese Sistema Operativo). 

Silverlight, a diferencia de otras tecnologías Web del lado del Servidor (por ejemplo: ASP.NET, PHP, etc.), es una tecnología del lado del Cliente, es decir, todo el cómputo y ejecución de las aplicaciones sucede en el equipo del usuario, tal y como si se tratase de cualquier tipo de aplicación instalada. Esto es una gran ventaja ya que Silverlight puede sacar provecho de las características de procesamiento del hardware en donde está instalado.

Silverlight es un plugin que ofrece una experiencia de instalación muy similar a cualquier otro plugin para los navegadores. En el caso de la versión 5 (que es la versión más nueva disponible al momento de estar escribiendo esto) tiene un tamaño aproximado de 7 MB para el caso del Sistema Operativo Windows.
Durante el lanzamiento de Silverlight 4 en Abril 2010, se anunció que próximamente las aplicaciones de Silverlight podrán ejecutar en electrónicos de uso común en nuestros hogares, como televisores, reproductores de DVD, reproductores de Blu-Ray y cajas decodificadoras de cable para la TV. Asimismo, Silverlight es una de las plataformas de desarrollo para la nueva versión del Sistema Operativo móvil de Microsoft: Windows Phone 7. En conjunto con XNA como plataforma para la construcción de juegos 2D / 3D, Silverlight ofrece a los desarrolladores de Aplicaciones móviles una plataforma robusta, fácil de aprender y con una oferta de herramientas con alta funcionalidad.
Con lo anterior podemos deducir que Silverlight es una gran apuesta para ser una tecnologĂ­a que sea capaz de ejecutar de la misma manera, en diferentes lugares: en los tres tipos de pantalla más comunes en la vida de las personas hoy en dĂ­a (equipos de cĂłmputo tradicionales como PC’s o Laptops, Televisores y telĂ©fonos mĂłviles). Un mismo cĂłdigo ejecutando en diferentes dispositivos, con diferentes resoluciones, con caracterĂ­sticas de hardware diferente. Es de gran importancia esto ya que los desarrolladores podrán reutilizar sus conocimientos existentes en tecnologĂ­a .NET para poder construir soluciones que lleguen a más personas y en lugares donde antes esto no era posible.
Se presume que el nuevo dashboard de Xbox liberado en noviembre 2011 incluye Silverlight como la plataforma de desarrollo para sus aplicaciones.  Sin embargo, aĂşn no hay documentaciĂłn tĂ©cnica oficial al dĂ­a de hoy que hable acerca de ello.

Silverlight y HTML

El propósito de Silverlight nunca ha sido reemplazar HTML como tecnología de presentación de Interfaces de Usuario, sino complementarla con características y funcionalidades que no están disponibles en dicha tecnología. Si bien HTML es un estándar que pretende ser implementado de manera única y consistente en todos los navegadores disponibles hoy en día, esto en la práctica ha sido, es y será un proceso lento ya que podemos destacar una falta de quórum entre las principales empresas que respaldan sus navegadores, quienes (paradójicamente) implementan las especificaciones de estándares de manera diferente. Además si hablamos en términos de funcionalidad, Silverlight ofrece más y mejores características.
Otras consideraciones importantes son:
Rendimiento
El rendimiento de las Aplicaciones de Silverlight es superior gracias a que el código ejecuta bajo el Common Language Runtime (CLR), además de que cuenta con múltiples hilos de ejecución.
Consistencia
Silverlight se asegura de renderizar las Aplicaciones de manera consistente en cualquier lugar donde esté ejecutando
Tiempo
El tiempo de innovación es un punto muy importante ya que la evolución de la funcionalidad y características en las versiones futuras de Silverlight sucederán en un lapso de tiempo muy corto, a comparación de las especificaciones de estándares como HTML.
Para mayor informaciĂłn puedes consultar el siguiente artĂ­culo de Brad Becker, Director de AdministraciĂłn de Productos, Plataformas de Desarrollo:http://team.silverlight.net/announcement/the-future-of-silverlight/

Silverlight y el .NET Framework

Una característica muy importante acerca de Silverlight es que no requiere del .NET Framework tanto del lado del Cliente como del lado del Servidor. Del lado del Cliente es obvio ya que es precisamente a esto que podemos ejecutar aplicativos de Silverlight en Sistemas Operativos que no sean Microsoft Windows. Y más aún, también es independiente del .NET Framework del lado del Servidor: no es necesario tener instalado Internet Information Services (IIS) en nuestro Servidor Web, también puede ser Apache, Tomcat, etc.
Silverlight y Windows 8
Durante el primer keynote del evento //Build/ que se llevĂł a cabo del 13 al 16 de Septiembre en Anaheim, CA., se mostrĂł al mundo entero la plataforma de desarrollo de aplicaciones en el prĂłximo Sistema Operativo de Microsoft: Windows 8.  En Windows 8 habrá dos categorĂ­as de aplicaciones: Aplicaciones Metro, las cuales están enfocadas a dispositivos táctiles como tablets y Aplicaciones de Escritorio, las cuales son las aplicaciones de ventanas que todos conocemos con mecanismos de entrada tradicional de teclado y mouse, por ejemplo, Aplicaciones de Negocio (LOB por sus siglas en inglĂ©s), Aplicaciones de tipo OLTP, Herramientas, etc.
La plataforma de desarrollo para las Aplicaciones de Escritorio está basada en .NET ySilverlight, tal y como sucede hoy en dĂ­a, por lo que no hay ningĂşn tipo de cambio con respecto a las aplicaciones actuales.
Por otro lado, la plataforma de desarrollo para las Aplicaciones Metro está basada en Windows Runtime (WinRT, un API orientada a objetos alterna a Win32) y XAML o HTML.  El motor de interpretaciĂłn de XAML ha sido incorporado al core del Sistema Operativo ¡por lo que ahora más que nunca es muy importante conocer y dominar este importante lenguaje!
Como podrás observar en la ilustraciĂłn anterior, en Windows 8 el .NET Framework y Silverlight siguen siendo las plataformas principales para la creaciĂłn de Aplicaciones de Escritorio, ya que si bien es importante un soporte nativo a los dispositivos con pantallas táctiles, hay muchos escenarios en donde no hace sentido tener una aplicaciĂłn de este estilo, por lo que las Aplicaciones de Escritorio seguirán siendo la principal categorĂ­a durante muchos años por venir.

domingo, 27 de enero de 2013

Seguridad de la Informacion (Parte 2)


¿QuĂ© puede aportar la SI a nuestra organizaciĂłn?


IntroducciĂłn

La Seguridad de la Información abarca múltiples aspectos de una organización, no se trata únicamente de cuestiones técnicas, sino también de aquellas relativas a cuestiones organizativas, de procedimiento, de políticas, de responsabilidad, etc.
Por otro lado, la Seguridad de la InformaciĂłn no es competencia exclusiva de los responsables de sistemas de una organizaciĂłn sino que todos los miembros de una organizaciĂłn tienen parte de responsabilidad en mantener un adecuado nivel de seguridad.
A lo largo de los siguientes apartados, vamos a conocer cuáles son los aspectos fundamentales de las organizaciones sobre los que la Seguridad de la Información nos puede ayudar a mejorar nuestra organización. Como vamos a ver, son básicamente tres:
  • la responsabilidad y la productividad,
  • la imagen y la competitividad,
  • y la capacidad para superar contingencias y la continuidad del negocio
Estos tres grandes grupos engloban la mayorĂ­a de los aspectos relativos a cualquier organizaciĂłn en los cuales la Seguridad de la InformaciĂłn nos puede ser de gran ayuda a la hora de mejorarlos.

Responsabilidad y productividad en la empresa

La responsabilidad y la productividad son aspectos básicos de una organización que afectan a todos sus miembros, desde el director o responsable final hasta el último miembro de la organización. La productividad es un aspecto muy ligado a la responsabilidad de los trabajadores, es decir, a su nivel de compromiso con su trabajo y con el aprovechamiento de su tiempo y de los recursos que la organización pone a su alcance.

Imagen y competitividad

La imagen que proyecta una organización al exterior es uno de los aspectos que más tratan de mimar y cuidar actualmente todas las organizaciones. En el caso de las organizaciones del ámbito público, esta imagen es muy importante, puesto que una buena imagen, tiene repercusiones en aspectos tan fundamentales como la confianza de los ciudadanos o cuestiones incluso que pueden llegar al ámbito político. Para las empresas, una imagen externa poco cuidada puede significar pérdida de clientes y de negocio.
Pero, independientemente del tipo de organización, su imagen pública es un aspecto que debe de cuidar y mantener, máxime cuando se trate de una empresa, puesto que su negocio está en juego.

Contingencias y continuidad de negocio

La Seguridad de la Información es una herramienta básica para superar contingencias y mantener la actividad de una organización. Seguramente, éste es uno de los aspectos que más preocupan a las organizaciones, puesto que les afecta directamente al desarrollo de su actividad.
Pero las causas por las que una organizaciĂłn puede verse obligada a detener o reducir su actividad son tantas como activos sean necesarios para mantener la actividad. Si cualquiera de los activos de una organizaciĂłn se ve afectado por un incidente de seguridad, esto puede afectar a la actividad, y por tanto, a la continuidad tanto del negocio como de la propia organizaciĂłn.

sábado, 26 de enero de 2013

Windows Azure (Conceptos basicos)


¿QuĂ© es Windows Azure Platform?

Windows Azure Platform es un servicio PaaS que forma parte de la oferta de servicios online de Microsoft. Proporciona un entorno familiar y flexible para desarrollar aplicaciones y servicios en la nube con todas las ventajas que hemos analizado.
Con Windows Azure Platform tu empresa puede reducir el tiempo de lanzamiento de los productos y adaptarse fácilmente a medida que la demanda de éstos crezca.
Figura 1.- Vista de los componentes de Windows Azure Platform
Windows Azure es una plataforma interoperable, que permite desarrollar en diversos lenguajes asĂ­ como la comunicaciĂłn con cualquier entorno externo. Además, si bien Visual Studio es la herramienta más productiva a la hora de trabajar con la plataforma, se dispone de herramientas y SDKs para otros sistemas y entornos.
La plataforma de Windows Azure es un conjunto de servicios base en la nube, que pueden usarse conjuntamente o de manera independiente, permitiendo que:
  • Los desarrolladores utilicen sus habilidades actuales y sus herramientas conocidas para desarrollar aplicaciones cloud
  • Los ISVs y los integradores de sistemas ingresen al mercado con rapidez y paguen a medida que usted ingrese
  • Los administradores IT obtengan acceso a un nuevo conjunto de recursos sin agregar complejidad
  • Empresas de todos los tamaños respondan con rapidez a medida que cambian las necesidades comerciales
Widows Azure Platform está compuesta por los siguientes servicios:
Windows Azure: ofrece a los desarrolladores servicios de ejecución y almacenamiento bajo demanda. Dada la abstracción de la que provee a las aplicaciones se suele definir como el sistema operativo de la nube, lo cual es una forma más sencilla de entenderlo.
Utilizando este servicio, los desarrolladores podrán desplegar y gestionar sus aplicaciones en los centros de datos de Microsoft. Además ofrece mecanismos simples de almacenamiento (tablas y blobs) y de comunicaciones basadas en colas.

Microsoft SQL Azure: es una base de datos relacional en la nube que permite tener acceso a nuestros datos relacionales desde cualquier lugar en cualquier momento. Se puede considerar como un servidor de datos SQL Server convencional pero  adaptado para funcionar en la nube, en donde la alta disponibilidad es una de las prioridades.
Hay que destacar que SQL Azure es el primer gestor para la nube realmente relacional, que puede ejecutar y entender consultas SQL.

Windows Azure Platform AppFabric: es la parte de Windows Azure Platform que proporciona autorizaciĂłn, autenticaciĂłn y mensajerĂ­a de manera que permite la comunicaciĂłn segura entre las aplicaciones desplegadas en nuestra organizaciĂłn y las aplicaciones desplegadas en Windows Azure.
AppFabric Service Bus ofrece a los desarrolladores la flexibilidad para escoger cómo se comunican sus aplicaciones, solucionando retos impuestos por cortafuegos, NAT, IP dinámicas, etc.
AppFabric Access Control posibilita una autorización simple y segura para servicios web REST, que además puede federarse con un gran abanico de proveedores de identidades.

Microsoft Codename "Dallas": Se trata de un servicio que permite a los desarrolladores e 'Information Workers’ encontrar, adquirir y gestionar suscripciones a datos en la plataforma Windows Azure.
Dallas es un marketplace de informaciĂłn donde podremos encontrar datos de diferente naturaleza y diversos proveedores en un Ăşnico punto. A travĂ©s de las APIs de Dallas se puede consumir ese contenido desde prácticamente cualquier plataforma, aplicaciĂłn o flujo de negocio.

El siguiente gráfico nos muestra los servicios que esta plataforma proporciona y como se relacionan entre sí:
Figura 2.- Servicios de Windows Azure Platform
Podemos ver, en el gráfico anterior, como Windows Azure Platform proporciona servicios que podemos utilizar desde cualquier plataforma gracias al uso de estándares universalmente aceptados como SOAP, REST y XML. Está soportado el desarrollo directo sobre la plataforma con .NET pero también con PHP, Java, Ruby on Rails... y desde diferentes entornos aparte de Visual Studio, como por ejemplo Eclipse.



viernes, 25 de enero de 2013

Desarrollando en Windows 8


Windows 8 es el nuevo sistema operativo de Microsoft, el cual ha traĂ­do consigo nuevos cambios a nivel de interfaz de usuario y a nivel del API para desarrollo; anteriormente para el desarrollo de aplicaciones Windows se disponĂ­a del .net framework, pero ahora para el desarrollo de aplicaciones metro style para Windows 8 se dispone de Windows Runtime, más conocida como WinRT, y será WinRT la que provea el acceso a recursos del sistema.
WinRT es ahora el framework o API destinada para la construcciĂłn de aplicaciones Metro, WinRT puede ser trabajado utilizando lenguajes orientados a objetos de la familia .NET como los son C#, Visual Basic.Net y C++.
Otro punto bastante novedoso de desarrollo de aplicaciones Metro es la posibilidad de utilizar HTML5 y JavaScript como lenguajes de desarrollo, y en este caso no es posible acceder directamente al API de WinRT, sino que se utiliza el API WinJS, la cual es un wrapper para poder acceder a las funcionalidades del Windows Runtime. WinRT tiene alrededor de 1800 objetos, los cuales proveen servicios para ser utilizados por el desarrollador.
En resumen, utilizando WinRT se tiene acceso a:
· Dispositivos
· Graficas
· Multimedia
· API’s de comunicaciĂłn
· Datos
· Almacenamiento
· Acceso a archivos del sistema
· Acceso de red

IntroducciĂłn a WinRT

Uno de los principales beneficios para el desarrollo de aplicaciones Metro Style es que no se hace necesario conocer diferentes API’s para diferentes funciones, ya que WinRT engloba el acceso a todas las funcionalidades necesarias y es la Ăşnica API disponible.
Con lo comentado sobre WinRT, es posible relacionar WinRT con el .NET Framework, sin embargo son dos mundos diferentes, ninguno es el reemplazo de otro, siendo asĂ­ que pueden convivir juntos sin ningĂşn problema; lo importante es que WinRT si es utilizado por los lenguajes de la plataforma .NET.
WinRT contiene muchas caracterĂ­sticas del .NET Framework, como clases, tipos de datos, funciones solo que enmascarados en un API diferente, lo anterior permite que el desarrollo con WinRT sea algo natural para los desarrolladores de .NET.
Para trabajar con las funcionalidades del Windows Runtime se utiliza un concepto conocido como proyecciones, una proyección no es más que la manera es que se expone una determinada funcionalidad, el siguiente ejemplo muestra como utilizar una proyección para seleccionar un archivo y mostrar el nombre del archivo seleccionado en una caja de texto:
   1:  var fileOpen = new Windows.Storage.Pickers.FileOpenPicker();
   2:  fileOpen.ViewMode = Windows.Storage.Pickers.PickerViewMode.List;
   3:  fileOpen.FileTypeFilter.Add(".docx");
   4:  fileOpen.FileTypeFilter.Add(".doc");
   5:  var file = await fileOpen.PickSingleFileAsync();
   6:   
   7:  if (file != null)
   8:      txtFile.Text = file.DisplayName;

jueves, 24 de enero de 2013

Estructura de un proyecto XNA

Para crear un proyecto XNA, debemos abrir Visual Studio 2010 con el XNA Game Studio 4.0 previamente instalado. Da un clic en Archivo, Nuevo Proyecto, y ve a la categorĂ­a de plantillas “XNA Game Studio”, y selecciona la plantilla Windows Game (4.0). Escribe el nombre de proyecto deseado y le das click en  aceptar.

Una vez creado el proyecto, verás la clase principal del proyecto que por defecto se llama Game1. En el Solution Explorer, veras la siguiente estructura de carpetas.


Proyecto WindowsGame1
En esta sección de la solución es donde se desarrolla toda la lógica del juego. La clase principal es la llamada Class1, donde se encuentra bien definidos los métodos principales a implementar acorde al funcionamiento del framework XNA. Existe otra clase estática llamada Program.cs, donde aquí en realidad es el que invoca la Clase1 para ejecutarla; sin embargo, tu labor es implementar tu juego es en la clase Class1.
TambiĂ©n veras un archivo llamado “Game.ico”, donde este es un pequeño icono de 32×32 pixeles que se coloca en la esquina superior izquierda de la ventana de nuestro juego al momento de ejecutar nuestra aplicaciĂłn. Este icono tambiĂ©n se mostrara si lo anclas a la barra de inicio.
Entre otros elementos dentro de este proyecto, se encuentra el directorio “Properties”, donde se encuentra el archivo “AssemblyInfo.cs”, que es el archivo configuraciĂłn de ensamblado de nuestro proyecto. Al abrirlo, veras que contiene toda la informaciĂłn acerca de la versiĂłn de la aplicaciĂłn, el Titulo del juego, producto, descripciĂłn, año, etc. TambiĂ©n se encuentra el directorio “References”, donde en esta se encuentra referencias a las librerĂ­as fundamentales requeridas para el funcionamiento de este proyecto. Si deseas trabajar con librerĂ­as externas encontradas en la web (Como trabajar con el Kinect, o librerias de fĂ­sicas, etc.), con descargarlas y hacerles referencia, ya se encuentran disponibles para utilizarlas en tu juego.
En este punto, te sugiero que trabajes con directorios de clases, a modo de trabajar un proyecto de manera organizada por grandes módulos esenciales, como física, sonido, gráficos, interacción entrada/salida, etc.
Proyecto WindowsGame1Content
Para este proyecto de tipo Windows Game Library (4.0) que se genera automáticamente en la soluciĂłn al momento que se crea un Windows Game (4.0), es donde se coloca todo el contenido gráfico audiovisual del juego. Se recomienda que organices el contenido en directorios, para imágenes, archivos de configuraciĂłn, sonidos, videos, mĂşsica de fondo, etc. Esta secciĂłn ya se encuentra referenciada por el proyecto principal (que se puede ver dentro del directorio “Content References”).