Elementos comunes en Xamarin.Forms: Páginas

Buenas!

Como hemos comentado en el post donde introducimos Xamarin.Forms, esta plataforma nos permite escribir solamente una vez el diseño y comportamiento de nuestras pantallas para que luego podamos ejecutarlas en distintos sistemas operativos. Para lograr este cometido nos ofrece un conjunto de elementos predefinidos y de cierta forma generales, es decir que tienen un equivalente similar en todas las plataformas.

La documentación oficial de Xamarin.Forms establece los distintos tipos de controles:

  • Páginas
  • Layouts
  • Vistas
  • Celdas

En este post veremos las páginas, el elemento inicial que nos permitirá definir la estructura general de nuestras pantallas y su flujo de navegación.

Páginas

Son el elemento de más alto nivel en Xamarin.Forms y define el comportamiento general que tendrá una pantalla o un conjunto de ellas.

Las alternativas que tenemos disponibles son las siguientes:

XamarinFormsControles - Pages.png

Como podemos ver por los iconos de cada una de ellas, tienen un comportamiento característico. Lo muy bueno de esto es que todas ellas tienen un equivalente en todas las plataformas que Xamarin.Forms soporta y nos abstrae de cómo se implementa en cada una. Nosotros solo definiremos que use esquema con sus propiedades generales,

El más básico es el ContentPage, el cual es una pantalla básica donde podremos agregar cualquier tipo de contenido pero sin ningún comportamiento particular del mismo como si sucederá con los demás. En el ejemplo que vimos en el post inicial de Xamarin.Forms estamos usando este tipo de página:

Seguir leyendo “Elementos comunes en Xamarin.Forms: Páginas”

Azure Functions: Azure Bootcamp 2017 en Corrientes

Azure Functions: Azure Bootcamp 2017 en Corrientes

Buenas!

El pasado sábado tuve la suerte de poder participar del Azure Bootcamp 2017 en Corrientes junto con Sebastián Henzenn. En el mismo estuvimos dando una charla sobre Azure Functions, una de las nuevas funcionalidades que ofrece Azure.

Los temas que tratamos sobre esta funcionalidad son los siguientes:

  • Definición de Azure Functions
  • Ejemplo de aplicación
  • Debug en Visual Studio 2017 (para funciones en C#)
  • Deployment continuo de las Azure Functions

 

El link del repositorio donde está el código y documentación adicional es el siguiente: https://github.com/diegobersano/bootcamp-corrientes

 

Además de las diapositivas en cuestión que expusimos:

 

Finalmente agradecer y felicitar a José Fernandez por la invitación y por la gran organización que llevaron adelante, un lujo haber podido participar!

Documentación automática en ASP.NET WebApi y soporte para arquitectura en capas

Buenas!

Como vimos en el post anterior, es muy sencillo el poder tener una documentación automática y detallada de nuestras WebApi’s. Sin embargo, el enfoque propuesto solamente nos sirve cuando todas las clases involucradas están en el mismo proyecto web.

Esto muchas veces no necesariamente es así. En una arquitectura en capas normalmente tendremos un proyecto separado con las clases que representan las entidades del dominio de nuestra aplicación, las cuales formarán parte tanto de requests y responses de la API. Además de que este esquema (con las clases de entidades separadas en otro proyecto) nos permite compartirlas de forma directa (a través de la DLL resultante) a los clientes de la API, por lo cual es una alternativa más que válida para cualquier caso real de implementación.

Veamos el siguiente ejemplo, donde tenemos nuestro proyecto web (WebApi) y una biblioteca de clases con nuestras entidades que interactuan en la API (WebApi.Contracts). En la API tenemos el controlador UsersController que retorna/recibe instancias de User:

DocumentacionWebApiOtrasAssemblies - EstructuraProyecto

Donde la clase User de contratos tiene el siguiente contenido:

Al ejecutar nuestra aplicación e ir a la documentación de la API, veremos que están las propiedades de la clase pero no la documentación que nosotros le hemos agregado:

Seguir leyendo “Documentación automática en ASP.NET WebApi y soporte para arquitectura en capas”

ASP.NET WebApi: Documentación automática de nuestras API’s

ASP.NET WebApi: Documentación automática de nuestras API’s

Uno de los puntos importantes en el desarrollo de nuestras API’s RESTfull es tener una documentación adecuada para permitir y facilitar la tarea de integración de distintos clientes. Esto se debe de cierta forma a la diferencia que existe con respecto a un servicio SOAP, donde sí existe un archivo que contiene toda la definición del servicio y se utiliza para su integración.

En el caso de ASP.NET y sus servicios WebApi, esta funcionalidad viene integrada de forma nativa en el proyecto básico de este tipo. Luego de crearlo podremos ver la existencia del área HelpPage, la cual se encarga de crear la estructura de documentación asociada a nuestra API.

WebApiDoc - Area

Si ejecutamos la aplicación veremos en el menú superior el acceso API, el cual nos redirigirá al contenido de esa área.

WebApiDoc - Access

Seguir leyendo “ASP.NET WebApi: Documentación automática de nuestras API’s”

Genymotion, un emulador alternativo y liviano de dispositivos Android

Genymotion, un emulador alternativo y liviano de dispositivos Android

Buenas!!

Cuando trabajamos en el desarrollo de aplicaciones móviles, un punto a tener en cuenta es cómo probarlas, debido a que necesitamos correrlas en un dispositivo con el sistema operativo para el cual estemos haciendo nuestro desarrollo.

En el post anterior vimos una de las alternativas con las que contamos, que son los emuladores disponibles en el Android Virtual Device Manager (o AVD Manager). Esta es la alternativa oficial de Android con la que contamos por defecto. Sin embargo, aunque han ido mejorando en el último tiempo, el rendimiento de los emuladores no es el mejor, necesitando que tengamos un hardware de muy alto nivel o usemos configuraciones de celulares con muy pocos recursos que no son representativos de la realidad que necesitamos emular.

Ante esto contamos con un emulador alternativo, el cual es el que uso a nivel personal: Genymotion. La gran ventaja que nos ofrece es que las imágenes de los dispositivos corren sobre VirtualBox, aprovechando de forma mucho más eficiente los recursos con los que contamos permitiendo probar aplicaciones de forma realmente fluida. Además nos ofrece muchas opciones de personalización sobre la configuración y ejecución del dispositivo, las cuales veremos más adelante. Otro gran punto a favor es que es multiplataforma, por lo cual podremos usarla tanto en Windows, Linux y Mac. Eso si, es gratuita pero siempre para uso personal.

Lo primero que debemos hacer es ir a la página de Genymotion y crearnos un nuevo usuario. Luego de realizado esto accederemos al siguiente link para seleccionar la opción a descargar, pudiendo elegir la versión que cuenta con VirtualBox integrado o la que no lo tiene (esto depende de si ya tenemos VirtualBox instalado en nuestro equipo). Una vez descargado realizamos normalmente la instalación.

Genymotion - Download

Seguir leyendo “Genymotion, un emulador alternativo y liviano de dispositivos Android”

Android en Xamarin: Conceptos generales, consideraciones y configuraciones

Android en Xamarin: Conceptos generales, consideraciones y configuraciones

En el post anterior vimos cómo crear nuestra aplicación con Xamarin.Forms, corriendo en Android una de las aplicaciones target. La idea de este post es explicar cómo configurar el entorno de desarrollo y las consideraciones que tenemos que tener en cuenta sobre la misma.

Para ello hay tres aspectos que debemos tener en cuenta:

  • Dependencias según las versiones de Android que usemos
  • Configuración del proyecto Android en Visual Studio
  • Correr la aplicación en emuladores

Veamos en detalle cada uno de estos puntos:


Android SDK Manager

Esta es una de las partes fundamentales para el desarrollo de aplicaciones Android en general ya que es donde vamos a poder descargar todas las dependencias necesarias para el desarrollo.

Algo que hay que explicar como introducción es que en Android existe un concepto muy importante que son los API Levels, que es lo que habitualmente acostumbramos a mencionar como las diferentes versiones de Android disponibles en general. Actualmente tenemos disponibles los recursos desde la API 7 (Android 2.1) hasta la API 25 (Android 7.1.1). En el Android SDK Manager los distintos recursos se encuentran agrupados por cada API Level disponible, teniendo los siguientes recursos disponibles para descarga:

Seguir leyendo “Android en Xamarin: Conceptos generales, consideraciones y configuraciones”

¿Cómo crear una aplicación Xamarin.Forms?

¿Cómo crear una aplicación Xamarin.Forms?

Buenas!

Continuando con el conjunto de posts asociados a Xamarin vamos a ver cómo crear una aplicación del tipo Xamarin.Forms.

Como hemos mencionado en el post anterior, Xamarin.Forms es la variante de enfoque que nos permite reutilizar código asociado a la lógica de presentación. Con el mismo podremos llegar al extremo (dependiendo del caso es posible de que sea así) de desarrollar solamente una vez el código para múltiples plataformas.

Lo primero que deberemos hacer es crear el tipo de proyecto asociado. Para ello dentro de las opciones para crearlo seleccionamos Cross-Platform > Blank App (Xamarin.Forms portable):

xamarinformsinicial-crearproyecto

Seguir leyendo “¿Cómo crear una aplicación Xamarin.Forms?”