Hemos construido una aplicación de gran tamaño basado en Composite Application Library y MVVM usando Infragistics controles.¿Cuál es su experiencia con el abandono de MVVM para la arquitectura WPF basada en UserControl?
Para ahorrar tiempo y hacer que la aplicación sea más sencilla, desechó el requisito de MVVM. Ahora tenemos ninguna presentadores o ViewModels y nuestros puntos de vista han convertido UserControls simples que son creados como esto:
BaseEditor.cs:
using System.Windows.Controls;
namespace App
{
public class BaseEditor : UserControl
{
public string Title { get; set; }
public BaseEditor()
{
Title = "This was defined in the Base Editor.";
Loaded += new System.Windows.RoutedEventHandler(BaseEditor_Loaded);
}
void BaseEditor_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
StackPanel sp = new StackPanel();
TextBlock tb = new TextBlock();
tb.Text = Title;
sp.Children.Add(tb);
this.Content = sp;
}
}
}
CustomerEditor.cs:
namespace App
{
public class CustomerEditor : BaseEditor
{
public CustomerEditor()
{
Title = "This was overwritten by the CustomerEditor.";
}
}
}
Window1.cs.xaml:
<Window x:Class="App.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:App"
Title="Window1" Height="300" Width="300">
<Grid>
<local:CustomerEditor/>
</Grid>
</Window>
Aparte de la cuestión la capacidad de prueba y el hecho de que este "se siente sucia" hacer WPF como este, me han sólo se experimenta efectos positivos de esta decisión, por ejemplo:
- podemos heredar nuestra no XAML UserControls entre sí
- que utilizan la mayor cantidad de código subyacente ya que queremos lo que acelera el desarrollo
- adjuntando los controles infragistic directamente a nuestra clase del modelo que viene del servicio web aclaró docenas de pequeños problemas de unión que teníamos con Infragistics vinculante a ObservableCol Lections
- incluso en WPF recta, la falta de ObservableCollections que surjan problemas de not being able to create a simple Menu desaparecen
- estamos sustituyendo el EventAggregator uno por uno con eventos directos utilizando UserControls y código subyacente, que despejó todo tipo de problemas con los eventos
¿Alguien más ha realizado MVVM en WPF ha tenido experiencias similares? ¿Te encontraste con algún problema real a la larga?
Entonces, ¿dónde ubicas la lógica de tu negocio? –
obtenemos datos de nuestros servicios en un ESB, la mayor parte de la lógica de negocios se hace allí –