none
Para qué sirve el Windows Presentation Foundation RRS feed

  • Pregunta

  • Hola:

    ¿Para qué sirve realmete el Windows Presentation Foundation?

    ¿Realmente vale la pena usarlo?

    de mialgro he colocado un botón y un label para poder decir Hola mundo, que es totalmente diferente a lo normal.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace Prueba01
    {
        /// <summary>
        /// Lógica de interacción para Window1.xaml
        /// </summary>
        public partial class Window1 : Window
        {
            public Window1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, RoutedEventArgs e)
            {
                label1.Content = "Hola mundo";
            }
        }
    }
    Me pegué un tiempo adivinando como se hace ya qu eno se utiliza lo de siempre que es label1.Text = "Hola  mundo";

    En fin, quiero información de vuestras propies experiencias sobre ellas, porque habiendo lo normal, ¿para qué hicieron esto?

    Saludo.

    http://electronica-pic.blogspot.com
    viernes, 22 de mayo de 2009 22:38

Respuestas

  • Hola, efectivamente WPF es considerablemente distinto a WinForms, esto se debe a que es su sucesor por ende, difieren en muchas maneras, empezando por el patrón de diseño que utiliza, MVVM (model view view model) sin embargo lo más notable es que sepra completamente el código de la funcionalidad con la de la interfaz de usuario.

    un proyecto de WPF esta definido por un lenguaje declarativo nombrado XAML, Extensible Application Markip Language, Matthew Stoecker lo describe de la siguiente manera:

    [sic]
    "WPF is a major step forward in desktop application development. Not only does WPF allow unprecedented control of the user inferface through the user of advanced graphics, but the separation of code between the presentation layer and the business logic layer allows development to be split between designers and developers, enabling rapid development."
    En términos generales y para tódo público, WPF intercambia la forma en como se desarrollan aplicaciones de escritorio, otra forma de pintar pixeles en pantalla, una nueva forma de interactuar con los eventos que ocurren (RoutedEvents) nueva forma de obtener y mostrar datos (Bindings) y toda una gama enriquecida de tipos dinámicos como las colecciones observables, vistas de colecciones entre otros.

    otro aspecto destacable es que con WPF el código en lenguaje administrado (C# o Visual Basic) es menor y las declaraciones en XAML hacen el resto. Además que dado su patrón de diseño exige un exhaustivo uso de la programación orientada a objetos.

    Por ejemplo:

    <ComboBox Margin="0,0,8,0"
              Height="23" Width="120"
              HorizontalAlignment="Right" VerticalAlignment="Center"
              ItemsSource="{Binding Source={StaticResource Months}, Mode=OneWay}"
              SelectedIndex="{Binding Path=CurrentMonth, Mode=TwoWay}"/>
    Entonces en un contexto de datos tu tendrás algo así:

    public class Demo
    {
        private ObservableCollection<string> _months;
        public ObservableCollection<string> Months
        {
            get { return _months; }
        }
    
        private int CurrentMonth { get; set; }
    
        public Demo()
        {
            _months = new ObservableCollection<string>();
            CurrentMonth = DateTime.Today.Month - 1;
        }
    }
    Entonces en tiempo de ejecución XAML toma los valores de su "ViewModel" o contexto de datos y bindea la aplicación haciendo aún más fexible el desarrollo.

    Espero te ayude esta info,
    Saludos,
    Profesionista Microsoft VIP México
    Blog Técnico
    Small Business Website
    World Wide Finalist Imagine Cup 2007
    Microsoft Student Partner
    C#, WPF, WCF
    LinkedIn
    • Marcado como respuesta Metaconta sábado, 23 de mayo de 2009 17:19
    sábado, 23 de mayo de 2009 17:16

Todas las respuestas

  • Hola, efectivamente WPF es considerablemente distinto a WinForms, esto se debe a que es su sucesor por ende, difieren en muchas maneras, empezando por el patrón de diseño que utiliza, MVVM (model view view model) sin embargo lo más notable es que sepra completamente el código de la funcionalidad con la de la interfaz de usuario.

    un proyecto de WPF esta definido por un lenguaje declarativo nombrado XAML, Extensible Application Markip Language, Matthew Stoecker lo describe de la siguiente manera:

    [sic]
    "WPF is a major step forward in desktop application development. Not only does WPF allow unprecedented control of the user inferface through the user of advanced graphics, but the separation of code between the presentation layer and the business logic layer allows development to be split between designers and developers, enabling rapid development."
    En términos generales y para tódo público, WPF intercambia la forma en como se desarrollan aplicaciones de escritorio, otra forma de pintar pixeles en pantalla, una nueva forma de interactuar con los eventos que ocurren (RoutedEvents) nueva forma de obtener y mostrar datos (Bindings) y toda una gama enriquecida de tipos dinámicos como las colecciones observables, vistas de colecciones entre otros.

    otro aspecto destacable es que con WPF el código en lenguaje administrado (C# o Visual Basic) es menor y las declaraciones en XAML hacen el resto. Además que dado su patrón de diseño exige un exhaustivo uso de la programación orientada a objetos.

    Por ejemplo:

    <ComboBox Margin="0,0,8,0"
              Height="23" Width="120"
              HorizontalAlignment="Right" VerticalAlignment="Center"
              ItemsSource="{Binding Source={StaticResource Months}, Mode=OneWay}"
              SelectedIndex="{Binding Path=CurrentMonth, Mode=TwoWay}"/>
    Entonces en un contexto de datos tu tendrás algo así:

    public class Demo
    {
        private ObservableCollection<string> _months;
        public ObservableCollection<string> Months
        {
            get { return _months; }
        }
    
        private int CurrentMonth { get; set; }
    
        public Demo()
        {
            _months = new ObservableCollection<string>();
            CurrentMonth = DateTime.Today.Month - 1;
        }
    }
    Entonces en tiempo de ejecución XAML toma los valores de su "ViewModel" o contexto de datos y bindea la aplicación haciendo aún más fexible el desarrollo.

    Espero te ayude esta info,
    Saludos,
    Profesionista Microsoft VIP México
    Blog Técnico
    Small Business Website
    World Wide Finalist Imagine Cup 2007
    Microsoft Student Partner
    C#, WPF, WCF
    LinkedIn
    • Marcado como respuesta Metaconta sábado, 23 de mayo de 2009 17:19
    sábado, 23 de mayo de 2009 17:16
  • Me ha ayudado algo, por lo que he interpretado, ahorra mucho código de C#, para mi es como empezar de nuevo :).

    Si esa es la ventaja, ahorrar códigos, no está mal. Lo que a nadie veo que use mucho este método. Tenía en mente que en realidad es para hacer interfaz como lo hace Office 2007, que se ve muy bonito.

    Saludo.

    http://electronica-pic.blogspot.com
    sábado, 23 de mayo de 2009 17:30
  • Hace unos días empecé a usar WPF, y debo reconocer que al principio pense lo mismo. Que era como empezar de nuevo con windows forms y que era complicado y no valia la pena tanto sacrificio para mejorar la interfaz de usuario. Pero asi como critico algunos productos de Microsoft como Windows Vista, reconozco cuando hacen algo bien. WPF es simplemente sensasional. Uno puede fácilmente hacer interfaces de usuario extraordinarias, con pocas líneas de código, y separar nuestras interfaces de usuario con el codigo manejador de eventos. No es dificil aprender WPF si uno utiliza visual studio 2008 gracias al intelisense excelente y a la ayuda dinámica cuando uno hace click en un método o un evento. Yo pense que iba a ser complicado como asp.net pero me sorprendi gratamente. Ahora quiero hacer todas las interfaces de usuario con WPF, y el código de la lógica de negocios y de la conexión a datos la manejo en otras capas. Ahora mis programas visten de Armani, mientras los demas usan ropa de taiwan.
    Aconsejo utilizar WPF, proximamente voy a subir tutoriales en video para mostrarles porque lo recomiendo.
    saludos.
    sábado, 20 de junio de 2009 3:02
  • Jajaja, que los usuarios de winforms y microsoft no te lean decir que vestimos - visten de taiwan :D jajaja
    lunes, 22 de junio de 2009 7:30
  • Con una aclaración así, hace mucho que hubiese empezado a usar WPF, sin embargo la idea no es nueva, ya que Delphi hacía algo similar.

    Alberto Inch

    viernes, 28 de diciembre de 2012 4:26