En MVVMCross, tanto las uniones fluidas como las uniones suizas/del Tíbet se utilizan para la unión de datos, pero difieren en su enfoque y uso. Si bien no hay información explícita sobre las diferencias de rendimiento entre estos dos tipos de enlaces, podemos analizar sus características para comprender las posibles implicaciones:
uniones fluidas
Las uniones fluidas son una sintaxis basada en C#que permite a los desarrolladores crear enlaces en el código. Este enfoque es particularmente útil en plataformas como iOS y OSX, donde los archivos de diseño XML no son fácilmente editables humanos. Los enlaces fluidos proporcionan una forma segura de unión de las propiedades, lo que puede ayudar a reducir los errores de tiempo de ejecución capturando desajustes de tipo en el momento de la compilación. Sin embargo, dado que se definen en el código, pueden requerir más gastos generales en términos de mantenimiento del código en comparación con los enlaces declarativos como Swiss/Tibet.ANIZACIONES SWISS/TIBET
Las fijaciones suizas y del Tíbet son declarativas, lo que significa que se definen en formatos XML o de cadena. Estos enlaces son más concisos y se pueden incrustar fácilmente en archivos de diseño. La sintaxis de unión del Tíbet, en particular, ofrece un lenguaje de expresión más rico con características como llamadas de convertidor de valor de función, múltiples vínculos y sintaxis del operador simple. Este enfoque declarativo puede ser más eficiente en términos de legibilidad y mantenibilidad del código, ya que los enlaces son claramente visibles en los archivos de diseño.Consideraciones de rendimiento
Si bien no hay datos específicos sobre las diferencias de rendimiento entre los enlaces fluidos y suizos/del Tíbet, los siguientes factores podrían influir en el rendimiento:-Resolución de tiempo de compilación versus tiempo de ejecución: en general, las uniones que se resuelven en el tiempo de compilación (como algunos aspectos de las uniones fluidas debido a su naturaleza segura) pueden ofrecer un mejor rendimiento en comparación con la resolución de tiempo de ejecución. Sin embargo, los enlaces MVVMCross generalmente se resuelven en tiempo de ejecución.
- Sobre la cabeza de la reflexión: las uniones fluidas y suizas/del Tíbet probablemente usan la reflexión para resolver los nombres de las propiedades. Sin embargo, las uniones fluidas pueden tener una ligera ventaja debido a su naturaleza segura, lo que potencialmente reduce la necesidad de una reflexión extensa en tiempo de ejecución.
- Complejidad de las expresiones de unión: las uniones del Tíbet permiten expresiones más complejas, lo que podría introducir sobrecargas adicionales debido al análisis y la evaluación de estas expresiones. Sin embargo, esta complejidad también proporciona capacidades de enlace de datos más potentes.
En resumen, si bien no hay puntos de referencia de rendimiento explícitos que comparan las uniones fluidas y suizas/del tibet en MVVMCross, las uniones fluidas pueden ofrecer ligeras ventajas debido a su naturaleza tipo segura y reducción potencial en la reflexión del tiempo de ejecución. Sin embargo, la naturaleza declarativa de las enlaces suizos/del Tíbet puede mejorar la legibilidad y la mantenimiento del código, lo que podría afectar indirectamente la eficiencia del desarrollo y el rendimiento general de la aplicación al reducir los errores y mejorar la calidad del código. En última instancia, la elección entre estos métodos vinculantes debe basarse en las necesidades específicas del proyecto, como la complejidad de la UI, la plataforma dirigida y la preferencia por los enlaces basados en código versus los enlaces declarativos.
Citas:[1] http://slodge.blogspot.com/2013/06/tibet-binding.html
[2] https://github.com/mvvmcross/mvvmcross/issues/1342
[3] https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/data-binding/Compiled-Bindings?view=netmaui-9.0
[4] https://blog.ostebaronen.dk/2018/01/mvvvmcross-kinding-target.html
[5] https://stackoverflow.com/questions/46522577/mvvmcross-issues-with-fluent-sninging
[6] https://www.reddit.com/r/businessintelligence/comments/ky0dq9/is_it_a_best_practice_to_connect_with_views/
[7] https://www.mvvmcross.com/documentation/fundamentals/data-sninging
[8] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[9] https://www.mvvmcross.com/documentation/fundamentals/value-converters
[10] https://stackoverflow.com/questions/48422489/mvvmcross-tibet-nebet-to-viewmodel-itself