Cloud Tour

Ya estamos otra vez de gira, en esta ocasión hablando sobre la plataforma de cloud computing de Microsoft, Windows Azure. Aunque, desde un punto de vista especial y fuera de los convencionalismos típicos de esta plataforma. La idea es ver si Windows Azure también es una estupenda plataforma para aquellos que no trabajan en entornos Microsoft. La agenda y los detalles de las sesiones los podéis ver a continuación:

En mi caso, yo me encargaré de la plataforma de acceso a datos, dónde veremos las posibilidades que Windows Azure nos da. Espero que os guste, para los que no estéis registrados, aquí tenéis fechas y más información…. nos vemos..

AGENDA

  • 9:30 – 10:30 Introducción a la plataforma
  • 10:30 – 11:30 IaaS – Linux, máquinas y redes virtuales
  • 11:30 Café
  • 11:45 – 12:30 PaaS – Trabajando con Java y Eclipse
  • 12:30 – 13:30 PHP y Azure Web Sites
  • 13:30 Comida
  • 14:30 – 15:30 Almacenamiento en la nube: SQL, NoSQL
  • 15:30 – 16:30 Big Data y Apache Hadoop
  • 16:30 – 17:30 Desarrollo de backends para dispositivos móviles

Organización: Plain Concepts

Introducción a la plataforma

El objetivo de esta primera sesión será describir los principales servicios de la plataforma; Por qué puede interesar para mi empresa usar Cloud Computing, qué nivel de servicio, que opciones tengo si no trabajo con tecnologías Microsoft etc… Durante la sesión se hará especial hincapié en las diferentes opciones de interoperabilidad que existen y cómo es posible trabajar con otros lenguajes de programación como Java, Node.js o PHP e incluso desde otros sistema operativos, Linux y MAC.

IaaS – Linux, Máquinas y Redes Virtuales

La plataforma Windows Azure dispone de un servicio de infraestructura que permite de forma rápida y sencilla crear máquinas virtuales Windows y Linux. Durante esta sesión se mostrará las principales características de la misma y cómo es posible trabajar desde un ecosistema Linux, tanto a nivel de cliente como de servidor.

  • Cómo desplegar una máquina virtual Linux.
  • Cómo montar tu propia red virtual.
  • Cómo trabajar desde un ecosistema completamente Linux, tanto en desktop como en servidor.

PaaS, trabajando con Java y Eclipse

El servicio de “Plataforma como Servicio” es otro de los pilaras básicos de Windows Azure, el cual permite abstraernos de gran parte del trabajo de infraestructura y centrarnos únicamente en la aplicación que queremos desarrollar, posibilitando escenario de escalabilidad y disponibilidad difíciles de conseguir en otro tipo de soluciones. Durante esta sesión veremos de forma práctica cómo podemos desplegar aplicaciones Java con Eclipse en Windows Azure.

PHP y Azure Web Sites

Durante esta sesión se mostrará de forma prácticas las opciones disponibles para desplegar aplicaciones PHP en Windows Azure.

Durante esta sesión se empleará Windows Azure Web Sites para desplegar este tipo de aplicaciones, sirviendo a su vez para explicar con más detalle cómo es posible disponer de un escenario de integración continua con PHP, Azure Web Sites y GitHub.

Así mismo se verá cómo es posible trabajar de forma rápida y sencilla con WordPress, Drupal o Joomla.

Almacenamiento en la nube – SQL, NoSQL

Durante esta sesión se describirán las diferentes opciones de almacenamiento que están disponible en la nube, tanto base de datos relaciones, SQL Database y MySQL, como base de datos NOSQL como Windows Azure Table Storage, MongoDB o Cassandra.

De forma práctica podrá verse un ejemplo de cómo es posible trabajar con MongoDB, desplegado en una máquina virtual o haciendo uso de MongoDB como servicio.

Big Data y Hadoop

No se puede negar que Big Data y Hadoop son términos de moda en el mundo de IT, pero ¿sabes lo que realmente pueden aportar a tu organización? Y, aún más importante, ¿cómo podrías implementarlo dentro de tu ecosistema?

Durante esta sesión realizará una introducción a Big Data y Hadoop y de cómo es posible sacarle el máximo rendimiento a estas dos tecnologías dentro de nuestra organización.

Desarrollo de backends para el desarrollo de aplicaciones móviles

Aplicaciones para Android, Windows Phone, iPhone, iPad, Windows 8… casi todas tienen en común que generalmente necesitan de servicios de backend para ciertas funcionalidades; almacenamiento, notificaciones push, envíos de SMS, seguridad con diferentes proveedores de identidad etc… Durante esta sesión hablaremos de Mobile Services, una tecnología que permite disponer de forma rápida y sencilla de servicios de backend que pueden ser utilizados desde cualquiera de los dispositivos mencionando anteriormente, ya que además de ofrecer un API REST de uso dispone de SDKs propios de cada plataforma que simplifica su utilización.

 

Saludos

Unai

EF 6: Pluralization Service ahora es un servicio público

Esta ‘pequeña feature’ era algo que tenía en mente hacer desde hace tiempo, después de otros pull request con features y pequeños arreglos, he podido sacar un rato  y realizar la implementación del mismo como podéis ver en este change set.  La idea es básicamente poder tunear el servicio que se encarga de realizar la singularización y pluralización de nuestras entidades, por ejemplo para decidir por convención el nombre de una tabla. En realidad, este servicio es utilizado principalmente por PluralizingTableNameConvention y PluralizingEntitySetNameConvention para realizar su trabajo. Hasta ahora, es clase no era pública y su uso estaba fijado por las convenciones anteriores, no teniendo ninguna forma de cambiar la implementación del mismo. A lo largo de las siguientes líneas os contaré los cambios realizados y lo que podremos hacer en la siguiente versión de EF.

Haciendo el servicio público

Lo primero es crear  el contrato para este servicio, que como podéis ver a continuación es tan sencillo como lo siguiente:

 

Este servicio, por defecto, tendrá una implementación basada en lengua inglesa, llamado EnglishPluralizationService, que no es más que la adaptación a este contrato del servicio anterior, por compatibilidad. Para registrar la implementación que queramos usar se ha incluido un nuevo método en DbConfiguration llamado SetPluralizationService, gracias al cuál podremos establecer esta implementación, si es que queremos cambiar la existente. A continuación podemos ver un ejemplo de esto:

Un pequeño añadido aprovechando la coyuntura..

Ya metidos en faena, hay una pequeña cosa que podíamos hacer  para no obligar a nadie a crear un servicio de pluralización si alguna de las reglas del existente no le convenía o quisiera ‘customizar’ este trabajo. La idea es básicamente permitir al usuario incluir en el servicio de pluralización la definición de una entrada de diccionario, con los correspondientes Singular y Plural, como podemos ver en el siguiente fragmento.

 

Estas entradas de diccionario se pueden establecer en el constructor del servicio de pluralización antes de registrarlo, por ejemplo, ahora utilizando un IDbDependencyResolver, como vemos:

Bonus

Bien, una vez hecho público el servicio lo mejor era dar un ejemplo de implementación, por eso, otra de las cosas que he estado haciendo estas vacaciones ha sido la creación de este servicio de pluralización en castellano, aunque por ahora no lo he hecho público puesto que estoy mirando la mejor manera de hacerlo…en cuanto esté os comentaré como podréis utilizarlo….

 

Espero que os gustara la entrada y, como no, os invito a pasaros por el la página del proyecto en CodePlex y a contribuir de las muchas formas en las que se puede…

 

Saludos

Unai