2009-01-31 19 views
6

Actualmente estoy buscando aprender WPF y Silverlight. Hasta ahora he estado desarrollando en Delphi y C# (Winforms). Mientras veo algunos libros sobre WPF y veo algunos videos introductorios en línea, me da la impresión de que esta cosa XAML es un paso atrás en términos de eficiencia y usabilidad (para el desarrollador). Especialmente en los videos en línea, la gente está escribiendo felizmente el código XAML para crear formularios y controles, lo que pensé era una técnica que se volvió obsoleta con la llegada de diseñadores de formas visuales, etc. hace mucho tiempo. ¿Por qué querría crear un botón o una cuadrícula escribiendo una representación textual en XAML cuando el uso de un diseñador de formularios es mucho más rápido? ¿Por qué escribir un color o un nombre de fuente cuando es mucho más rápido elegirlo de una lista desplegable en un inspector de propiedades? ¿Las GUI de aplicaciones del mundo real están realmente desarrolladas por escribiendo XAML?XAML: ¿De qué sirve (escribir)?

estoy seguro de que me estoy perdiendo algo aquí, aunque no puedo averiguar qué ...

+1

No estoy seguro de que haya * realmente * muchas aplicaciones del mundo real que utilicen Silverlight y WPF. Sin embargo, de lo que existe, sí se hace una gran cantidad de XAML codificados a mano. Las herramientas no están realmente allí, pero la gente quiere usar la tecnología ... así que ese es el precio. – BobbyShaftoe

Respuesta

10

tiendo a escribir toda mi XAML manualmente porque no he vuelto competentes en Blend todavía. Pero a algunos de los otros desarrolladores con los que trabajo les encanta usar Blend y es genial para configurar cosas como degradados.

Te recomiendo que descargues la versión de prueba de Blend y pruébalo, funciona muy bien con Visual Studio y te ahorrará mucho tiempo si aprendes cómo usarlo.

4

Bueno, los diseñadores tienden a usar Expression Blend, que es un potente diseñador de XAML. Pero sí, conozco a muchos desarrolladores que editan xaml como texto y lo encuentran más fácil que los diseñadores.

3

Si desea utilizar un diseñador, obtenga Expression Blend.

usted tiene razón, aunque debe haber algún diseñador rudimentaria en VS también.

Silverlight aunque ha llegado desde una dirección diferente, los controles típicos es una cosa reciente en Silverlight y sus primeros días todavía.

Dicho esto como desarrollador en realidad prefieren escribir el código XAML de la misma manera en que yo prefiero escribir HTML. Los diseñadores (y la mezcla no es una excepción) vuelcan demasiadas cosas superfluas en el marcado que preferiría no estar allí.

27

Es más o menos lo mismo que escribir HTML en bruto manualmente en lugar de usar un editor WYSIWYG: tener un control mucho más preciso del resultado, sin necesidad de pasar por bucles innecesarios con el editor.

0

¿Porque funciona mejor en el sistema de control de versiones para que otras personas puedan cambiarlo al mismo tiempo sin conflictos? ¿Porque puedes desarrollar una aplicación completa en emacs? ¿Porque podrías escribir generadores e inspectores para estas cosas fácilmente? ¿Porque es fácil controlar cómo esta GUI buscaría cada pequeño detalle?

12

¿Son realmente las GUI de aplicación del mundo real desarrolladas escribiendo XAML?

En una palabra, sí. Tal vez no muchos, pero definitivamente sucede.

Mi experiencia con los diseñadores visuales es que tienden a agregar paneles innecesarios, tamaños fijos y un posicionamiento absoluto, mientras que se desea un diseño más flexible y con una escala adecuada. Por ejemplo, mira this recent question en stackoverflow

Además, si escribes controles personalizados, a menudo tienes que hacer un trabajo extra para hacerlos compatibles con los diseñadores visuales, este trabajo adicional no es necesario si puedes editar el xaml directamente.

2

XAML podría compararse con Glade XML, un formato para almacenar GUI basadas en GTK +. GTK +, a diferencia de Windows Forms, y como WPF, es realmente sensato ya que usa posicionamiento relativo. Con Windows Forms, el posicionamiento absoluto se convierte en un PITA cuando las personas comienzan a personalizar sus fuentes y su GUI se ve como basura con muchos recortes de texto.

El posicionamiento relativo es fácil de codificar a mano, a diferencia del posicionamiento absoluto, ¡ya que no necesita calcular las coordenadas!

3

Una vez que comprenda cómo usar las diferentes estructuras de paneles que son parte de WPF, entonces escribir el XAML a mano realmente es más fácil que usar un diseñador. Me parece que puedo escribir los controles en una forma mucho más rápida que usar cualquier diseñador, y tengo más control sobre cómo se ve y se presenta el XAML.

Solo uso el diseñador para establecer ocasionalmente una propiedad para un control que ya está en el formulario. Y utilizo Blend para hacer animaciones, ya que todavía no tengo el XAML para eso.

6

Si puede tipo XAML, entonces entender XAML :) (en mi humilde opinión)

El punto de saber cómo escribir es saber cómo depurar ella, refactorearlo, y reorganizar la misma. Todo esto no se puede hacer actualmente en la combinación Expression, y para proyectos grandes los necesita a todos.

El otro problema que se plantea aquí es que la escritura manual de XAML le da más control, no es un punto tan fuerte como en el caso de html. XAML es mucho más estructurado que html y los editores como mezcla de expresiones u otros, dan casi el mismo XAML que escribirías a mano, con algunas excepciones menores.

+1

+1 Escribe it == ¡Apúntalo! – Frozenskys

0

Lo escribo.

Odio nada más que la producción descuidada, no determinista y difícil de controlar de los diseñadores, ya sea HTML, ya sea XAML.

Básicamente, si creo un archivo XAML, lo hago exactamente de la misma manera que escribo cada dos partes del código.

Empiezo por segmentar todo en una grilla, pongo un tamaño de píxel exacto en TODO (excepto el espacio "flotante" impar, donde coloco "*") decido qué va y luego también agrego comentarios y líneas vacías para estructurar el XAML.

Además, rechazo que cada XAML que no cumpla con este estándar como "no utilizable", que tiene un muy buen efecto educativo.

Descuido y negligencia de las mejores prácticas son pecados capitales y nunca los toleré.