Archivo de la categoría: Android

Para tu siguiente reunión en tu casa, utiliza etiquetas NFC o códigos QR para que tus invitados se conecten al WiFi.

Normalmente tienes que decirles el nombre del WiFi y la clave pero hay un par de alternativas que podrían ser más convenientes y que todos te vean como el nerd máximo al mismo tiempo.

Estamos hablando de etiquetas NFC y códigos QR. actualmente sólo funciona con Android.

InstaWiFi y un código QR.

instawifi

InstaWifi es una gran utilidad que permite ofrecer a tus amigos un par de formas de conectarse. La primera y la más fácil es el método del código QR. En la pestaña QR, escribe los detalles de la red y la clave y un código será creado automáticamente. Exporta esto a algún lugar con el botón «Share» (compartir) e imprímelo, el archivo exportado es un JPEG aunque InstaWifi no le pone la extensión.

instawifi2

Pega el código impreso en tu pared y la gente podrá ingresar al WiFi  ni bien entren a tu casa. Podrías agregar estos códigos QR a la invitación a la fiesta para ahorrarte darles detalles de la red y contraseñas a cada uno de manera individual.

InstaWifi y un etiqueta NFC.

instawifi3

Los códigos QR podrían estar bien para los miembros con más experiencia tecnológica de tu grupo de amigos pero las etiquetas NFC puede ser más impresionantes (y menos horribles). Tienes que comprar un lote de etiquetas NFC (aproximadamente $12 dólares por 10 etiquetas y 10 llaveritos, son autoadhesivos ver aquí) y otra vez InstaWifi es la aplicación que tienes que usar. Ingresa la información de la red y deale a «Write to Tag» (escribir a la etiqueta) tienes que acercar la etiqueta para completar el trabajo.

instawifi4

 

Cualquiera que tenga un teléfono Android que soporte NFC puede acercar la etiqueta NFC para conectarse al WiFi. Hay un pequeño detalle, ellos necesitarán tener instalada la aplicación InstaWifi para poder conectarse. Si no es detectada la aplicación, la etiqueta enlazará a la aplicación en el tienda Play de Google, si continúan con la instalación no habrá problemas.

Cuando los teléfonos implementen de manera nativa el soporte para poner la configuración de red usando NFC, ya no será necesario tener que instalar la aplicación, lo cual es todavía un problema.

Esta solución podría ser muy eficáz en un café o en bares donde te entregarían uno de estos «taps» en vez de tener que ver la clave en un papel o en la pared.

Gizmodo – David Nield.

 

Cómo instalar un adelanto de Android L en Nexus 5 o 7.

Google lanzó el primer avance de su última versión de Android. Para aquellos que quieren obtener esta versión aquí están los pasos:

Para comenzar necesitarás tener tu dispositivo desbloqueado «unlocked» y tener instalado ADB y fastboot.

Aquí más información sobre lo que necesitas saber para «root» tu dispositivo Android.

Luego:

  1. Descarga la imagen de fábrica para tu dispositivo aquí.
  2. Descomprímelo y ponlo en una ubicación que te sea fácil de encontrar.
  3. Conecta tu dispositivo a tu computadora vía cable USB y asegúrate que el modo depuración «debug mode» esté activado.
  4. Abre una línea de comando para ADB 1 2.
  5. Tipea adb reboot bootloader para acceder al bootloader del dispositivo.
  6. Navega a la carpeta donde pusiste la imagen de fábrica.
  7. Tipea flash-all para ejecutar el script de instalación.

El script tomará un minuto para ejecutar y tu dispositivo se quedara un rato en la animación de inicio (boot). Una vez que el dispositivo reinicie, ingresa y listo.

Advertencia: Flashear esto borrará tu dispositivo y toda tu información. Asegúrate de hacer una copia de respaldo antes de comenzar.

 Extraído de Lifehacker por Eric Ravenscraft.

Google y Microsoft no dejarán que existan dispositivos con Windows y Android.

Varias compañías anunciaron dispositivos que pueden correr dualmente Android y Windows, Huawei, Samsung y Asus por ejemplo.

De acuerdo a un reporte del Wall Street Journal, ambos Microsoft y Google no permitirán que existan dispositivos duales. Asus ha acatado la orden y sacará algunos productos del mercado como el Transformer Book Duet TD3000.

Android domina los smartphones y no quiere que Windows Phone esté en el mismo dispositivo. Microsoft con su Windows 8 está bajo presión en el escritorio y no quiere que Android se posicione ahí. Ambas compañías tienen maneras para hacer que los OEM cumplan sus deseos. Microsoft provee fondos a los OEM y son importantes para ellos. Y por su lado Google tiene Android como software abierto pero la tienda Play de aplicaciones, Google Maps y otras aplicaciones de Google están bajo el control de Google. Las compañías que no cumplan las peticiones de Google, no podrían conseguir las aplicaciones que necesitan para hacer un producto competitivo.

Microsoft no está felíz con la idea de que empaqueten Android junto con Windows 8 o Windows Phone. Es interesante dado que Microsoft está por lanzar una actualización a Windows Phone que soporta botones en pantalla, lo cual podría significar que hardware para Android pueda ser reutilizado en Windows Phone. Aparentemente intercambiar sistemas operativos en la fábrica está bien, pero permitir a los clientes hacer eso es demasiado.

Estas objeciones de Microsoft y Google son un gran golpe para Intel, cuya arquitectura x86 es el único chip que puede ejecutar Android y la versión completa de Windows 8. El reporte indica que el plan de Intel es ayudar a los OEMs a lanzar PCs y tabletas hacia los canales de distribución sin ningún sistema operativo pre instalado. El dispositivo podría ser cargado con el sistema operativo deseado cuando el cliente haga la orden.

El reporte no menciona Asus Transformer Book Trio, una laptop con Windows 8 y Android que está actualmente en venta. El Trio podría escapar la furia de Microsoft y Google ya que en realidad son dos computadoras completamente separadas disfrazadas como una sola laptop. El Trio tiene todo duplicado, la parte superior e inferior tienen CPU, RAM, almacenamiento, cámaras y conectividad de red pero las dos mitadas se conectan y comparter la pantalla y el teclado.

Todo esto ignora el hecho de que dispositivos con sistemas operativos duales son siempre productos terribles. Windows y Android casi nunca se comunican entre sí, cualquier dispositivo dual significa tener que lidiar con aplicaciones separadas, datos y almacenamiento y dos diferentes paradigmas en la interfaz de usuario. Desde el punto de vista del consumidor, Microsoft y Google realmente están salvando a los OEMs de producir dispositivos que nadie quiere. Dando a los consumidores una elección de sistema operativo es grandioso pero ellos necesitan hacer la elección una sola vez: al momento de la compra.

Extraído de Ars Technica por Andrew Cunningham.

Android 4.4.1 trae mejoras para la cámara del Nexus 5

Google ha anunciado que han empezado ha distribuir Android 4.4.1 para el teléfono Nexus 5. La actualización está dirigida a mejorar la camara del dispositivo.

Google promete un enfoque más rápido (especialmente en condiciones de poca luz), más rápido el balance de blanco, la habilidad de pellizcar para aproximar el visor en el modo HDR+ y un obturador con menos demora.

Para aquellos que no saben, el Nexus 5 viene con un modo HDR+ que automáticamente dispara una rápida ráfaga de fotos y las combina para darte la mejor toma individual. La compañía ha estado promocionando HDR+ desde el debut del dispositivo pero los usuarios se han quejado de que la calidad de las fotos varía.

Se podría decir que el Nexus 5 es el mejor teléfono que $350 dólares pueden comprar pero su cámara no impresionaba, con esta actualización las cosas cambian.

Sólo hace unos años los usuarios de teléfonos celulares eran felices de tener al menos una cámara. Las expectativas han cambiado, ahora la gente espera que su teléfono inteligente tome fotos como las de una cámara DSLR (digital single-lens reflex).

¿Qué tecnología de desarrollo de Microsoft utilizar?

Recientemente ha habido mucho movimiento en relación a las tecnologías para desarrollar de Microsoft, dejando a muchos desarrolladores ponderando en cuáles deberían enfocarse. La resistencia de Microsoft a dejar de lado tecnologías como Silverlight, y en vez de eso dejar que lentamente desaparezcan, sólo añade más confusión. Una manera de darse cuenta es revisar un documento poco conocido llamado Guía Tecnológica .NET para Aplicaciones de Negocios «.NET Technology Guide for Business Applications». Fue publicado a comienzos de este año, la guía ofrece una comprensión de en dónde Microsoft intenta poner sus esfuerzos y qué tecnologías deberían ser evitadas.

Este resumen es un buen lugar para comenzar la exploración de Microsoft y las tecnologías relacionadas.

microsofttecnologies

Tratar de dejar pronto Silverlight y Flash.

Mientras tecnologías antiguas .NET como WinForms y Web Forms han encontrado un lugar. Contenedores de RIA (Rich Internet Applications) tales como Silverlight y Flash están definitivamente de salida. Como se puede ver en la figura. Microsoft no quiere esperar los 10 años del ciclo de vida de Silverlight 5. Ellos intentan deshacerse de los contenedores RIA para finales del 2015.

changinguitecnologies

Para aplicaciones de alto nivel, tecnologías completamente nativas son las preferidas. En el nivel más bajo, las capacidades de HTML5 se espera que continuen creciendo. Mientras no se está empujando a los desarrolladores a ir a un lado o al otro, aquí es lo que ellos tienen que decir sobre la transicion:

  • Si estás haciendo la transición a aplicaciones nativas, puedes utilizar tus habilidades existentes y aún el código si apuntas a XAML/NET nativamente en cualquier dispositivo Windows. Las bibliotecas portátiles (Portable Libraries) permitirán compartir archivos binarios entre diferentes plataformas incluyendo Silverlight.
  • Para aplicaciones basadas en navegador HTML5, Microsoft provee herramientas líderes y marcos de desarrollo para ayudarte a crear aplicaciones para cualquier dispositivo usando los últimos estándares. La interoperatibidad de Silverlight con HTML también permite una transición gradual a través de aplicaciones híbridas.

Móviles

3 opciones iguales pero diferentes para la tienda Windows 8

En el pasado Microsoft ha sido reacio a empujar a los desarrolladores hacia una tecnología específica cuando se trata de aplicaciones tienda Windows 8. La política no ha cambiado, el criterio número uno para escoger entre .NET/XAML, C++ y JavaScript/HTML5 es simplemente con cual el desarrollador se encuentra más familiarizado. Más allá de eso, ellos citan las ventajas en rendimiento de C++. La reusabilidad no es una gran preocupación porque las 3 plataformas son capaces de compartir código y recursos entre Windows Phone y aplicaciones Windows de escritorio.

Opciones nativas para Windows Phone

En Windows Phone las tecnologías reocmendadas son .NET y C++. Otra vez aquí hay una aprobación de la ventaja en rendimiento de C++, pero mayormente ellos les dicen a los desarrolladores que usen lo que les sea más familiar.

Aunque Windows Phone es compatible con PhoneGap/Apache Cordova, eso no es mencionado en ningún lado. Presumiblemente esto se debe a que ven a PhoneGap como algo que tiene peor rendimiento que .NET o C++ en dispositivos pequeños. En la conferencia Build 2013 el rendimiento fue de lejos el tópico más importante, dejando atrás otras consideraciones como usabilidad general, diseño visual y profunda integración con el sistema operativo.

Web Móvil: Todo menos Web Forms

Si buscamos escoger una solución basada en web para trabajar en todos los dispositivos móviles las opciones son numerosas. ASP.NET MVC con Modernizer es la recomendación de referencia, con la opción de construir una aplicación de una sola página (ASP.NET SPA) donde sea apropiado. Microsoft considera SPA a ser nada más que un patrón de diseño que una tecnología, con Knockout y Breeze siendo las librerías más recomendadas.

Para poner rápidamente aplicaciones de estilo CRUD (Create Read Update and Delete) LightSwitch está en la mesa. Esto ofrece poco control sobre el HTML producido pero no requiere el sobrecosto de que los desarrolladores tengan que construir sus propios diseños para varios tamaños de pantalla.

ASP.NET Web Pages son la cuarta opción ofrecida para web móvil. Basado en la sintáxis Razor esto ofrece una experiencia de desarrollo similar a los lenguages de script tales como PHP y el clásico ASP.

Lo que no se menciona es la vieja tecnología ASP.NET Web Forms. Mientra está aún en desarrollo activo y teoricamente capaz de crear HTML específico para un dispositvo, en la práctica Web Forms no llegó a realizar su máximo potencial. El HTML y JavaScript que genera tiende a ser ineficiente y el «View State», el cual es parte integral para sus características más avanzadas puede rápidamente sobrecargar una conexión de red de un teléfono.

Servicios.

Desde que la mayoría de aplicaciones dependen de un almacenamiento de datos externo y procesamiento, el desarrollo del lado del servidor continua siendo una consideración importante. Hay actualmente 6 opciones de tecnologías que Microsoft considera viables.

Primera Elección: ASP.NET Web API

De acuerdo a Microsoft, la opción por defecto para nuevos proyectos debería ser ASP.NET Web API. Esto puede ser utilizado cuando los servicios que se van a desarrollar siguen los patrones REST (Representational State Transfer) y se supone que sea compatible con caches de internet como Akamai, Windows Azure CND, Level3, etc.

Cuando se utilice Web API los desarrolladores deben enfocarse en OData, lo cual estandariza la manera en que los extremos REST (REST endpoints) son expuestos y JSON.

Segunda Elección: WCF

Si no estás amarrado a ningún protocolo de transporte específico o formato de mensaje, WCF se le considera una opción más flexible que Web API. Tú puedes, por ejemplo, tomar ventaja de TCP o named pipes con mensajes binarios para un rendimiento mejorado. El lado malo es que trabajar con WCF puede ser difícil especialmente cuando quieres exponer datos en JSON u otro formato que no está basado en SOAP (Simple Object Access Protocol). WCF fue diseñado como un mecanismo de comunicación tipo RPC (Remote Procedure Call) y empresarial. Mientras un patrón de diseño tipo REST es posible, WCF no es la opción preferida.

WCF con OData

Si estás trabajando en una capa de servicio estilo CRUD y quieres utilizar WCF entonces WCF Servicios de datos es la manera. Esto comparte librerías OData con ASP.NET Web API y es a menudo utilizado con Entity Framework.

Servicios de Flujos de Trabajo (Workflow)

Los servicios workflow son un matrimonio entre Windows Workflow y WCF. La única razón para utilizar esto es si tus servicios ya están utilizando Windows Workflow internamente. Microsoft no cita ninguna otra razón para escoger esta opción.

SignalR y Comunicación de 2 vías.

Si estás usando solamente clientes basados en .NET, WCF ofrece muchas opciones para afinar la comunicación de 2 vías. Si quieres algo que soporte ambos .NET y clientes basados en web entonces SignalR es una opción tentadora.

De acuerdo con Microsoft, SignarlR puede escalar a «millones de usuarios». Para clientes web SignalR utiliza WebSockets pero puede automáticamente hacer una regresión a viejos patrones como «long polling» (consulta larga) si es necesario.

SignalR también tiene un librería para clientes .NET, permitiendo que clientes web y clientes nativos compartan servicios.

LightSwitch, otro proveedor de OData

Es difícil indicar cuánto amor tiene Microsoft para OData. Acabamos de ver OData para ambos WCF y Web API, pero no termina allí. Aunque normalmente utilizado con clientes LightSwitch, podrías imaginar utilizar las capacidades del lado del servidor de LightSwitch para rápidamente generar una capa de servicio.

Microsoft asegura que LightSwitch no requiere codificación pero advierte que eso viene con una pérdida de flexibilidad.

Guía para aplicaciones de negocios pequeñas y medianas.

Microsoft escribió esta guía con estas metas en mente:

  • Velocidad completa y «Tiempo a Mercado» más corto.
  • Productividad y menores costos.
  • Fácil para comenzar.
  • Colaboración e integración con productos del mercado.
  • Agilidad en la nube y oportunidades para reducción de costos.

Traducido esto significa, «hazlo rápido y hazlo barato».

Aplicaciones Web para negocios pequeños/medianos

Para aplicaciones CRUD rápidas, Microsoft continúa empujando LightSwitch como la plataforma que hay que usar. Fue originalmente descrita como una herramienta para programadores principiantes. Muchos lo ven como un reemplazo de Acces multi-capas. Esa visión parece desvanecerse ya que LightSwitch está ahora siendo ofrecido más como una herramienta para departamentos de IT que necesitan rápidamente crear aplicaciones.

Lo siguiente es Web Forms. Sí, la venerable tecnología Web Forms está aún siendo recomendada para usar en nuevos proyectos. Microsoft lo ve como un terreno intermedio entre el fácil pero limitado LightSwitch y la complejidad de ASP.NET MVC. Con características tales como grillas ricas de datos. Web Forms son bien apropiadas para aplicaciones internas de una organización.

ASP.NET Web Pages son mencionadas pero brevemente. Si quieres más control sobre lo que ofrece Web Forms, ASP.NET MVC es la herramienta elegida. Aunque Microsoft advierte de su larga curva de aprendizaje.

Construyendo para el escritorio de Windows

Mientras todos los kits de herramientas basados en C++ como MFC (Microsoft Foundation Classes) y ATL/WTL (Active Template Libraty/Windows Template Library) están fuera de la lista, el original kit de herramientas .NET WinForms es aún considerado una opción viable junto con WPF (Windows Presentation Foundation). Ambos soportan conceptos modernos tales como enlace de datos (data binding), async/await y comunicación de dos vías usando WCF o SignalR

La elección entre WPF y WinForms involucra muchas consideraciones.

Primero es la dificultad. WinForms es mucho más fácil de entender que WPF, aún para desarrolladores avanzados. WinForms utiliza un simple enlace de datos y prefiere un clásico MVC o MVP. WPF por el contrario requiere que el usuario aprenda un complejo marco de enlace de datos para correctamente utilizar el patrón MVVP. Tener éxito con WPF también requiere conocimiento de diccionarios de recursos, convertidores, ICommands y XAML.

Si intentas también apuntar a Windows Phone o tienda Windows 8, vas a tener que aprender como usar XAML. En ese caso, comenzar con WPF hará más probable que se pueda compartir código entre plataformas.

La flexible máquina de visualización en WPF permite hacer aplicaciones que se ven mejor de lo que podría ser hecho generalmente con WinForms. Este tiene un costo ya que generalmente las aplicaciones WPF se ejecutan más lentamente que aplicaciones WinForms comparables.

Mencionado de pasada es el cliente de escritorio LightSwitch. Presumiblemente, éste no puede ofrecer nada que no esté disponible en su cliente web, por lo tanto no parece haber mucha razón para escogerlo.

Cliente-Servidor debería ser evitado.

Cuando Microsoft dice «cliente-servidor» ellos específicamente se refieren a aplicaciones que directamente se comunican con la base de datos. Aunque ellos saben que es aún un patrón muy común, ellos quieren que los nuevos proyectos utilicen un diseño de 3-capas con una capa de servicio que se encuentre en el medio, entre el cliente y la base de datos. Esto provee una mejor escalabilidad sobre el acceso directo a la base de datos y una manera para sobrepasar firewalls (corta-fuegos) y otros obstáculos. Además permite que la aplicación sea migrada a otras plataformas donde los controladores de la base de datos podrían simplemente no estar disponibles.

«Modernización» – Dejando el escritorio de Windows

Microsoft ofrece muchos consejos sobre como «modernizar» aplicaciones de escritorio. Este consejo es mayormente sobre alistar la aplicación para ser migrada a otras plataformas pero hay algunas guías que son útiles aunque no planees en dejar el escritorio de Windows. Aquí un resumen:

  • Utiliza el patrón de diseño Model-View-ViewModel (MVVM). Plataformas de cliente de Microsoft (incluyendo WPF) hacen fácil construir aplicaciones utilizando el patrón MVVM. Con este patrón tienes una fuerte separación de visualización, estado y comportamiento, lo cual te ayudará a crear un código limpio y mantenible que puede ser fácilmente compartido entre múltiples dispositivos.
  • Utiliza librerías de clases portátiles para la lógica del cliente. Las librerías portátiles .NET permiten que los binarios sean compartidos entre múltiples plataformas tales como el escritorio, aplicaciones tienda Windows, aplicaciones de Windows Phone y otros, implementando tu lógica del cliente con librerías portátiles .NET grandemente simplificará la creación de múltiples experiencias en múltiples plataformas.
  • Moderniza tu experiencia de usuario. Conceptos que demandan usuarios de hoy pueden ser implementados con las últimas innovaciones en .NET para el escritorio. Principios de diseño tales como «rápido y fluido», «auténticamente digital» y «haz más con menos» pueden ser aplicados para tus aplicaciones de escritorio existentes empleando una interfáz de usuario moderna para el diseño XAML, utilizando cuidadosamente animaciones e implementando .NET programación asíncrona extensivamente.
  • Mueve la lógica del negocio al servidor. Aplicaciones de 2-capas (cliente/servidor) son significativamente difíciles de extender a nuevos dispositivos. La forma recomendada es separar claramente la lógica del negocio en servicios que pueden ser reutilizados posteriormente en otros dispositivos y plataformas.
  • Extiende a la nube. Una vez separado del cliente, Windows Azure provee múltiples soluciones para mover la lógica del negocio a la nube. Transformando esa lógica en servicios de nube mejora grandemente la elasticidad y escalabilidad de soluciones existentes, alistándolas para abrazar múltiples dispositivos.

.NET en Android e iOS

Microsoft está trabajando con muchos socios para ayudar en el esfuerzo de modernización. Aquí es lo que ello tienen que decir:

  • Xamarin provee maneras de compartir código C# de tus aplicaciones que apuntan a Windows o Windows Phone con dispositivos iOS y Android. Provee acceso a la API para crear vistas personalizadas mientras reutilizando el código de lógica del cliente entre dispositivos.
  • ITR-Mobility iFactr y MonoCross ofrecen una solución para construir aplicaciones móviles empresariales en C# para entrega en la mayor parte de plataformas móviles. Provee servicios tales como Abstract UI y Enterprise Data Synchronization para permitir aplicaciones de negocios cruzando un rango de dispositivos.
  • Mobilize.NET por Art in Soft provee soluciones y servicios para migrar aplicaciones de legado a plataformas modernas incluyendo la web, móvil y la nube, lo hace transformando el código existente en código nuevo sin «runtimes» para la aplicación generada
  • Citrix Mobile SDK para aplicaciones Windows provee un rico kit de herramientas para desarrolladores, permite movilizar aplicaciones Windows línea de negocio (LOB) o escribir nuevas aplicaciones táctiles ejecutándose en servidores centrales (Citrix XenApp/XenDesktop) y accedidas desde cualquier dispositivo móvil como Citrix Receiver

Nota: El hecho de que Microsoft está activamente promoviendo Xamarin y MonoCross debería finalmente poner a descanzar los rumores de que Microsoft intenta hacer una demanda legal a los creadores de Mono.}

Guía para aplicaciones de negocios grandes, de misión crítica.

Cuando se trata de grandes compañías y sus aplicaciones de misión crítica el enfoque cambia de costo y productividad a administración de complejidad y calidad de servicio. Estas guías no se refieren a aplicaciones CRUD u orientadas a datos, los desarrolladores trabajando en esas deberían utilizar la guía para negocios pequeños/medianos. Estas guías son para sistemas con muchas partes interconectadas y sub-sistemas con variadas cantidades de independencia.

Aplicaciones Web en la empresa.

Microsoft es inequívoco sobre este punto, para sitios web de misión crítica deberías utilizar ASP.NET MVC. La única cuestión de arquitectura es si es que va a tener una capa de patrones de diseño aplicación de una sola página (SPA) encima.

Otras tecnologías web tales como Web Forms o Web Pages no deberían ser utilizadas. Simplemente no ofrece el control y testeabilidad que tiene MVC, lo cual además limita la calidad de servicio que puede ser obtenida.

Aplicaciones de Escritorio en la Empresa

Como con aplicaciones pequeñas, Microsoft está incluyendo WPF y WinForms en su lista de recomendados. A esto ellos agregan C++ con Win32 o MFC. El uso de C++ es recomendado para proyectos muy grandes, a largo plazo comparables en escala a Microsoft Office. Uno presume que ellos están pensando sobre la diferencia entre AutoCAD y Paint.NET en términos de escala.

Tienda Windows/Windows Phone en la empresa

Rudamente las últimas 20 páginas de la guía, Microsoft pone a parte la discusión de productos y gira su atención a patrones y prácticas.

Inversión de Control.

Microsoft gasta una sorprendente cantidad de tiempo discutiendo inyección de dependencias y contenedores de inversión de control. Ellos listan 9 separados contenedores de inversión de control, la mayoría de los cuales son proyectos administrados por la comunidad sin afiliación con Microsoft. Debe tener en cuenta que muchos de los marcos de desarrollo que están en la lista no son actualmente contenedores IoC (inversión de control) en vez de marcos de injección de dependencia.

La confusión entre los dos continúa toda la sección sin una clara indicación si Microsoft prefiere raíces compuestas (un patrón DI «dependency inyection») o ubicador de servicios (un patrón contenedor IoC «inversion of control»). Ellos dicen SRP (Single Responsibility Principle) puede resultar en clases que podrían, por ejemplo, tener 15 dependencias listadas en su constructor. Para desconectar estas dependencias ellos sugieren que sean removidas del constructor y en vez de eso sean inyectadas usando un contenedor de inversión de control.

Microsoft también menciona utilizar programación orientada a aspecto (Aspect Oriented Programming) que agregue otra capa de indirección y poder inyectar dependencias.

Bounded Context y Administración de Complejidad

Para controlar la complejidad, Microsoft gasta unas cuantas páginas discutiendo el concepto de un «bounded context». Está basado en el trabajo de Eric Evans, la idea básica es aislar las aplicaciones en pequeñas partes que compartan de manera limitada. En el ejemplo de abajo hay 4 pilas separadas con diferentes back ends y un interfáz de usuario común.

largecomposite

Su recomendación en esta área tiene mucho sentido. Para «bounded contexts» que identifiques como misión crítica puedes usar el más patrón más caro «Command and Query Responsability Separation» (CQRS) o Domain Driven Design (DDD) con pruebas totalmente automatizadas. Mientras «bounded contexts» auxiliares puede utilizar una arquitectura CRUD ligera. Código de legado obtendrá su propio silo donde puede ser aislado y lentamente reemplazado.

Comunicación y Anti-corrupción.

Para compartir información entre «bounded contexts» Microsoft recomienda utilizar mensajería asíncrona donde sea posible. Esto permite que cada silo trabaje de manera independiente aún cuando otros silos fallan. Para escenarios simples, named pipes y Microsoft Message Queues son opciones fáciles mientras para sistemas complejos se necesita un bus de servicio. Microsoft menciona el Windows Server Service Bus, Windows Azure Service Bus y NServiceBus sin ninguna preferencia.

Cualquier servicio expuesto por un «bounded context» debería ser protegido por una capa anti-corrupción. Parecido a como el chequeo de parámetros protege funciones públicas, una capa anti-corrupción de un «bounded context» protege la data interna de mensajes malformados. Esta capa verifica los mensajes entrantes, ejecuta traducciones necesarias y asgura que los datos malos no sean procesados y almacenados. Esto puede hacerse utilizando código normal .NET pero para escenarios complejos con muchas reglas de negocios cambiantes, Microsoft recomienda una máquina de reglas y plataforma de integración tal como BizTalk.

Mitigando Código de Legado.

El primer paso para tratar con código legado es crear una fachada (facade) sobre él. Esta fachada debería utilizar técnicas modernas tales como caches persistentes, escalables y ocultar patrones que el código antiguo utilice. Con el tiempo el código legado será reemplazado y las fachadas redirigidas a la nuevas capas de servicio.

Conclusiones.

Microsoft está respaldando todo lo que sea nativo, web y marcos de comunicación para .NET excepto Silverlight en el navegador y .NET Remoting. Ellos también recomiendan C++ y JavaScript en varios escenarios. Viejas plataformas tales como VB 6 y clásico ASP ya no son mencionados para que las compañías que todavía los utilicen migren a nuevas tecnologías tan pronto como sea posible.

Esperen ver un continuado énfasis en inyección de dependencia, especialmente con ASP.NET MVC y Entity Framework. BizTalk del que se pensó que era una tecnología muerta, está viendo nueva vida con las compañías que tratan de integrar arquitecturas en sus instalaciones y en la nube.

Para leer el artículo original de Jonathan Allen ir a http://www.infoq.com/articles/Microsoft-Stack-2013?utm_source=infoq&utm_medium=popular_links_homepage

La aplicación móvil Quickoffice de Google está disponible gratis.

Al parecer Microsoft no va a hacer que la edición de Office sea gratis en iOS (iPhone) o en Android pero Google sí. Microsoft entrega la aplicación gratis pero requiere de una cuenta Office365 para poder usarla.

Hoy Google hizo su aplicación Quickoffice gratis para todos los usuarios de iPhones, iPads y dispositivos Android

Quickoffice permite crear y editar documentos de Microsoft Office.

Quickoffice fue comprado por Google hace un año y ha permitido editar documentos de Microsoft Office en dispositivos móviles por más de dos años. La aplicación costaba $20 (Versión Pro HD) pero Google lo había dado gratis para las compañías que estén pagando Google Apps for Business. Hoy día es gratis para todos los que tengan una cuenta en Google ya sea que pagues por una subscripción a Google Apps o no.

Google está ofreciendo también 10GB de almacenamiento extra en Google Drive por 2 años a aquellos que registren una cuenta Google para la aplicación Quickoffice hasta el 26 de setiembre.

La aplicación está integrada con Google Drive de tal manera que los archivos puedan ser almacenados en la nube y accedidos desde múltiples dispositivos.

Google le agregó unas cuantas nuevas características a la aplicación, incluyendo la habilidad de crear carpetas comprimidas (ZIP) y poder ver gráficos (charts) en PowerPoint y Excel. Google dijo que la gente que esté usando Quickoffice for Google Apps for Business pueden actualizar a la nueva aplicación.