¿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

Leer más »

Anuncios

Esquemas de reutilización de código en Xamarin

Dentro del desarrollo multiplataforma que plantea Xamarin hay dos puntos claves donde podremos plantear reutilización del código de nuestras aplicaciones: la lógica de negocio y la lógica de presentación. Esto implica que sobre dos de los puntos claves de una aplicación mobile podremos aplicar reutilización de código, reduciendo tiempos de desarrollo y facilitando el mantenimiento.

A su vez estos puntos son complementarios entre sí, pudiendo utilizar ambos de forma simultánea. Lo que si quedará en nuestras manos es la decisión sobre cuando utilizar cada una de estas formas y que funcionalidad tener como compartida entre las distintas plataformas, ya que como en todo desarrollo si planteamos compartir algo que realmente no corresponde nos estaremos complicando sin necesidad.

 

Lógica de negocio:

Este será el punto de reutilización elemental de Xamarin, ya que no hay existe prácticamente escenario donde no sea provechoso reutilizar la lógica de negocio de una aplicación.

A aquellos que ya hayan hecho desarrollos móviles en distintas plataformas, ¿no les ha pasado de que terminan haciendo exactamente la misma lógica de aplicación en distintos lenguajes y con distintos frameworks, resolviendo los mismos problemas pero de distintas formas? Acá está el punto original sobre el cual Xamarin a venido a ayudarnos.

La clave aquí está en desarrollar toda nuestra lógica de aplicación a través de proyectos separados a lo que son las capas de presentación, y desde estás últimas referenciar a dichos proyectos. En los proyectos compartidos donde desarrollemos toda nuestra lógica de aplicación por ejemplo podremos hacer lo siguiente (solo por mencionar algunos usos comunes):

Leer más »

Shared Project: un tipo de proyecto para compartir código y recursos

Con la aparición de Visual Studio 2015 Preview hace ya un tiempo que tenemos disponible un nuevo tipo de proyecto, el cual puede sernos muy útil: Shared Project.

Como su nombre nos insinúa, los Shared Projects tienen como objetivo el compartir contenido entre otros proyectos y aplicaciones. Si nos ponemos a pensar, esto es algo que normalmente podríamos hacer con una biblioteca de clases, la cual tiene la lógica que querramos tanto encapsular como compartir entre otros proyectos. Y esta biblioteca de clases generará su propio Assembly.

Sin embargo el enfoque de un Shared Project es totalmente distinto. En el mismo solamente tendremos aquellos recursos que querramos compartir entre otros proyectos, más bien como un repositorio de contenidos. Luego dichos recursos estarán compilados o asociados directamente a aquellos proyectos donde haya referencias al Shared Project en cuestión. Esto es algo totalmente distinto a lo que normalmente hacemos, en el que nuestro código es compilado en el proyecto donde pertenece, lo cual es particularmente útil (y en varios casos necesario) cuando tenemos en una misma solución proyectos de aplicaciones para diferentes plataformas. Además vale la aclaración de que no necesariamente debe haber código C#, también podemos tener archivos JavaScript, Xaml e imágenes, entre otros.

En este post vamos a trabajar con una aplicación Android en Xamarin y una de consola (esto solo a fin de tener dos aplicaciones target diferentes). A su vez vamos a tener un requerimiento particular: tener clases parciales en nuestro proyecto compartido, las cuales luego las aplicaciones target deberán completar. Si usaríamos una librería de clases esto no sería posible, ya que los distintos componentes de una clase parcial deben contenerse y compilarse en un mismo Assembly.

Leer más »

ActionLink y RedirectToAction para áreas en ASP.NET MVC

En las últimas entradas de este blog estuvimos viendo distintos puntos asociados a los helpers en ASP.NET MVC. Uno de los puntos importantes que vimos en “Helpers en ASP.NET MVC, reutilizando código en nuestras vistas” es el poder quitar código repetitivo o simplificar ciertas operaciones.

Allí recordé el comentario que había dejado @maxilovera en la entrada “Áreas en ASP.NET MVC – Una forma de organizar nuestras aplicaciones“:

Solamente hay que acordarse del parámetro de @area en los links para no volverse loco con las redirecciones. Aquí podría armarse un helper para facilitar la codificación

Este comentario venía a raíz de que para el Html Helper ActionLink como para las redirecciones (método RedirectToAction en los controladores) usando áreas, debíamos acordarnos de establecer como un atributo diferenciado el área a usar:

Area - ActionLink
Ejemplo de uso de áreas en el armado de un link
Area - RedirectToAction
Ejemplo de uso de áreas en la redirección

Esto puede ser propicio a olvidarnos de declarar ese atributo, además de que es algo repetitivo a realizar constantemente. Así que veamos cómo mejorar la situación con lo aprendido en los post’s anteriores.

Lo primero que vamos a definir es que para esta solución utilizaremos los Html Helpers, extendiendo lo ya definido en el namespace Html. Para ello crearemos el helper de la siguiente forma:

HelperAreas - HelperActionLink
Helper extendiendo ActionLink para áreas

Leer más »

Crear Razor Helpers en ASP.NET MVC

Siguiendo lo visto en el post inicial sobre reutilización en nuestras vistas ASP.NET MVC y en el de Html Helpers en esta entrada veremos los Razor Helpers, la alternativa que nos permite realizarlo directamente desde nuestra vistas.

Lo primero que vamos a ver es la sintaxis del mismo. Al ser código Razor, el mismo deberá estar ubicado en una vista. La declaración es muy similar a una función, salvo que inicia con la palabra clave @helper, seguida del nombre del mismo y los parámetros que recibe. A la vez que su ámbito se define con corchetes. Luego el contenido es como si estuviéramos escribiendo una vista en Razor de forma normal.

Siguiendo con el ejemplo del post anterior vamos a ver cómo quedaría el helper en cuestión para renderizar una lista de elementos HTML con esta alternativa:

RazorHelpers - HelperEnVista
Sintaxis de un Helper Razor

Como se puede apreciar, es muy sencilla la escritura del mismo. Y el uso también lo es, veámoslo en la siguiente imagen:

Leer más »

Crear Html Helpers en ASP.NET MVC

Si hay algo que en general podemos estar conformes (y de mi parte muy conforme) con ASP.NET MVC es la capacidad de extensión que nos brinda en distintos puntos. Siguiendo con lo que iniciamos en el post “Helpers en ASP.NET MVC, reutilizando código en nuestras vistas“, hoy vamos a veres cómo crear nuestros propios Html Helpers en C# para facilitar la escritura de nuestras vistas, evitando tener que repetir código en las mismas.

Lo primero que vamos a comentar es que por defecto tenemos muchos helpers a disposición, son todos aquellos que usamos bajo el namespace Html. Algunos ejemplos de uso son los que podemos ver a continuación, sacados de una de las vistas asociadas a la autenticación en el template inicial de ASP.NET MVC:

Helpers - Ejemplos
ASP.NET MVC Helpers

Algunos de los más comunes y usados son (por nombrar solo algunos):

  • BeginForm()
  • EndForm()
  • Label()
  • ActionLink()
  • TextArea()
  • TextBox()
  • CheckBox()
  • RadioButton()
  • ListBox()
  • DropDownList()
  • Hidden()
  • Password()
  • Display()

Para mayores detalles pueden ver todos los disponibles y cómo usarlos en la documentación oficial.

Básicamente el objetivo de un helper es generar código HTML de forma simple y parametrizada, evitando repetir código (lo cual siempre es un objetivo fundamental), además de permitirnos que nuestras aplicaciones queden mucho más ordenadas, prolijas y mantenibles.

Ahora bien, veamos qué debemos hacer para crear nuestros propios helpers.

Leer más »

Helpers en ASP.NET MVC, reutilizando código en nuestras vistas

Como generalmente suele suceder cuando estamos desarrollando nuestra aplicación, un objetivo primordial es la reutilización de la mayor cantidad posible de código, logrando de esta forma que nuestras aplicaciones queden ordenadas, prolijas y mucho más mantenibles. Además de simplificar el trabajo que realizamos al momento de escribir nuestro código.

Cuando hablamos de vistas, hay distintas alternativas que tenemos disponibles, entre ellas los helpers. Un helper es una herramienta de extensión de ASP.NET MVC que nos permite crear código HTML de forma personalizada y parametrizada. Sus principales objetivos son:

  • Reutilizar comportamientos comunes que se repiten a lo largo de las vistas.
  • Facilitar la escritura de nuestras vistas, permitiendo que determinadas porciones de código queden definidas en un solo lugar.

Si bien son similares los puntos planteados anteriormente, con el primero hacemos incapié en cuestiones donde hay una mayor cantidad de lógica asociada a variantes de visualización. Con el segundo, a aquellos aspectos donde siempre escribimos el mismo HTML pero con pequeñas variantes.

Ahora bien, cómo hacemos nuestros helpers? Aquí tenemos dos alternativas disponibles, complementarias entre si:

  • Html Helpers
  • Razor Helpers

Veamos una descripción mínima, luego haremos un post detallado para cada una.

Leer más »