CSharp for Markup en Xamarin Forms

Sobre el tema:

csharp for markup - Luis Matos from luismts.com
Contenido

CSharp for Markup (Código CSharp para el Marcado) en Xamarin Forms. Siempre se ha podido utilizar código CSharp (C#) para crear vistas en Xamarin Forms, pero la verdad es que con todas las características que tiene XAML a favor puede ser un poco difícil para los nuevos el tomar la decisión para utilizar CSharp.

Con el aparecer de nuevos Frameworks como Flutter o SwiftUI hemos notado como los desarrolladores han aceptado y adaptado el crear Interfaces de Usuario (UI) de manera declarativa.

Es por ello que vengo a presentaros CSharpForMarkup para crear estilos declarativos en C# en lugar de XAML en Xamarin Forms.

«El objetivo es hacer que Xamarin Forms sea más atractivo para desarrolladores que no tienen habilidades / preferencias por XAML.

CSharpForMarkup es por definición más rápido que XAML, incluso en comparación con XAML con XAML pre-compilado y enlaces compilados. En esencia, XAML es solo un formato de serialización de objetos, construido sobre la API de UI a la que accedes directamente desde C# cuando tu usas CSharpForMarkup. Tu simplemente omites la capa XAML, y el compilador optimiza tu marcado C# mejor que XAML

Vincent Hoogendoorn

CSharp for Markup

CSharpForMarkup simplemente es un archivo con algunas extensiones que nos ayudan a poder crear UI declarativas de manera muy fluida y entendible a través de una API que puede ser modificada o extendida de manera muy simple.

Estas extensiones se crearon con el propósito de mejorar la legibilidad al crear UI en Xamarin Forms con CSharp. Además, tienen buena documentación.

Comparativa entre código C# y XAML

Realmente el código entre lenguajes es muy similar y un desarrollador con un poco de experiencia puede en pocas horas adaptarse a este entorno. Veamos:

XAML

C# parecido a XAML

C# acortado

Ventajas

  • Más rápido que XAML
  • HotReload con LiveSharp
  • Mejor compatibilidad con el IDE
  • Diseñado para la legibilidad humana.
  • Nuevos desarrolladores no necesitan aprender XAML
  • Mejor IntelliSense (por ejemplo, los márgenes en XAML son strings)
  • No afecta al diseño MVVM ya que literalmente solo cambia el XAML por CSharp
  • Si trabajas con XAML actualmente, es fácil adaptarte ya que la sintaxis es muy parecida.
  • Si ya trabajas con Xamarin Forms solo tienes que aprender una simple API que puedes modificar o adaptar.
  • Elimina los mecanismos de enlace. No necesita XAML Extensions, Value Converter, Triggers, XAML Compilation o Compiled Bindings.
  • Puedes seguir separando la UI y la lógica de tu UI en clases parciales/archivos separados, por ejemplo HomePage.cs + HomePage.logic.cs.

Resumen

Siempre he pensado que tener varias opciones para hacer las cosas son una ventaja. En lo personal no he utilizado CSharpForMarkup pero empezaré a utilizarlo en un principio con los controles personalizados para ver que tal va y si me gusta quizás deje de lado un poco el XAML para variar.

Cada vez que tengo que crear controles personalizados, se me hace más fácil en XAML que en CSharp, cuando estos son pequeños los escribo en CSharp y no pasa nada. Todo esto porque en XAML hay un pequeño costo que tenemos que pagar en rendimiento. Pero ahora con CSharpForMarkup puedo crear esos controles y hacer que mis vistas sean más fluidas.

Como mencione antes, siempre es bueno tener varias opciones y mas si sabes cuando utilizar cada una. Esta funcionalidad esta siendo apoyada para incluirse y ser soportada en Xamarin Forms aquí.

Apoya esta grandiosa iniciativa y démosle la oportunidad de ver como evoluciona. Reventemos el botón de Me gusta, celebremos, démosle amor, despeguemos este proyecto y sobre todo compartamos con toda la comunidad para que se entere.

Creo que este puede ser el inicio de grandes cosas para un futuro cercano. Lo mismo dije con Visual y Shell antes del lanzamiento oficial y no me equivoque.

De interés…

[bucket id=»11045″ title=»Gracias por leer»]

¿Qué opinas de este contenido?
 
Luis Matos

Luis Matos

I help professionals and companies to create value solutions. I am a Systems Engineer, blockchain executive, and international mobile application speaker. Founder of the Malla Consulting Agency and several international technology communities.
Suscribirte
Notificar de
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x

Buscar en el sitio