El dia de hoy veremos una Introduccion a WPF y C# mediante la arquitectura MVVM, sino sabes de que te hablo no te preocupes termiando de leer este Articulo lo sabras :yum:. Como Introduccion te digo que con estos 3 podremos crear aplicaciones atractivas a los ojos del usuario, con WPF crearemos las Vistas UI, con C# la logica de nuestra aplicacion y todo esto siguiendo una estructura que nos permita obtener lo mejor de lo mejor de estas tecnologias ( MVVM – Model/ View / View Model – ) Asi que no te desesperes vamos ya a la Informacion..
Que es WPF?
WPF ( Windows Presentation Foundation ) es una Tecnologia de Microsoft para el desarrollo de Vistas UI para el usuario Final y que tiene toda la potencia de las Aplicaciones Windows y Aplicaciones Web. Con WPF podemos desarrollar aplicaciones de apariencia visual muy atractivas para el usuario final, wpf introduce un nuevo lenguaje de marcado similar a XML llamado XAML con el cual podemos separar completamente la logica de la aplicacion de nuestras vistas.
Caracteristicas:
- Direct3D
- DataBinding
- MediaServices
- Plantillas
- Animaciones
- Imagenes
- Efectos
- Interoperabilidad
Mas informacion detallada en Wikipedia.
Como Luce el Codigo XAML? ( Obviamente tiene su asistente de Diseñador, pero te recomiendo aprenderlo )

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.
Udemy<UserControl.InputBindings> <KeyBinding Key="Enter" Command="{Binding ConvertTextCommand}"/> </UserControl.InputBindings> <StackPanel Height="336"> <Label Foreground="Blue" Margin="5,5,5,0">Text To Convert</Label> <TextBox Text="{Binding SomeText, UpdateSourceTrigger=PropertyChanged}" Margin="5"/> <Label Foreground="Blue" Margin="5,5,5,0">History</Label> <ListBox ItemsSource="{Binding History}" Height="200" Margin="5"/> <Button Command="{Binding ConvertTextCommand}" Margin="5">Convert</Button> </StackPanel>
XAML es un lenguaje completamente declarativo, esto es que el diseñador unicamente declara comportamiento y no se mete en el Codigo de la Aplicacion para el «COMO».
Que es MVVM?
La Arquitectura Model – View – View Model es una forma de desarrollar Aplicaciones que nos permite obtener lo mejor y nos ayuda a en el proceso de Desarrollo y Mantenimiento de nuestros Proyectos. MVVM surgio despues de otros Modelos como MVC ( Modelo Vista Controlador) y MVP ( Modelo Vista Presentador ) para obtener el maximo provecho del desarrollo de Aplicaciones con WPF ( Windows Presentation Foundation ) por lo cual al desarrollar con WPF es recomendado utilizar esta Arquitectura :yum:
En este Modelo se Obtiene una Completa Separacion entre la Vista, el Modelo de Vista y el Modelo,
En la Vista ( View ): se realizara unicamente lo relacionado con Ventanas, controles UI, layouts y estilos. No se debe de tener codigo detras ( Code Behind ) en C# ( o VB o cualquiera ) relacionado a la vista. La vista referencia al ViewModel mediante la propiedad DataContext. Se establece el enlace de datos ( databinding ) asociado a cada Control.
En el Modelo de Vista ( ViewModel ): Encapsula la logica y datos para la Vista. Implementa Propiedades y Comandos.
En el Modelo ( Model ): Se establece la Logica del negocio y los Datos. Provee eventos y notificaciones mediante INotifyPropertyChanged y INotifyCollectionChanged. Provee control de Validacion y Error mediante IDataErrorInfo y INotifyDataErrorInfo.
Estas 3 capas son independientes una de otra.
Como luce esta Estructura en nuestro Proyecto en Visual Studio?
Esceneario
Ahora que tenemos una idea de que es WPF y MVVM ahora lo que sigue sera poner en practica todo esto mediante un ejemplo que nos acerque mas a comenzar a desarrollar nuestro proyectos nosotros solos. Lo que Haremos sera una sencilla aplicacion que nos permita guardar, editar y eliminar registros, con lo cual utilizaremos Vistas, Modelos, Modelos de Vistas, databindings ( enlaces de datos ) comandos, Notificaciones y mas..
En esta parte puedes tomarte un descanso antes de comenzar si nunca habias visto este temas para que analizes bien lo aqui explicado y no te cueste mas trabajo entender lo siguiente ( se que te mueres por seguir leyendo :yum: ).
Como bien Mencionamos desarrollaremos una pequeña aplicacion para editar, eliminar y modificar registros utilizando WPF para las Vistas, C# para la Logica de la Aplicacion y todo estructurado mediante MVVM para obtener lo mejor, asi que comenzemos.. pero mejor aun, te dejo que estudies un poco lo aprendido hoy :yum: y en el siguiente desarrollaremos la aplicacion con todas las formas de enlaces de datos y mas..
Parte 2 ( Proximamente )
Referencias Hello World WPF