zbudowaliśmy dużych aplikacji w oparciu o Composite Application Biblioteki i MVVM korzystając Infragistics kontroli.Jakie są twoje doświadczenia z porzuceniem MVVM dla architektury WPF opartej na UserControl?
Aby zaoszczędzić czas i uprościć aplikację, złapaliśmy wymóg MVVM zezwalając na . Mamy obecnie żadnych Prezenterzy lub ViewModels i nasze poglądy stały się proste UserControls, które są tworzone tak:
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>
Oprócz kwestii sprawdzalności i faktu, że „czuje się brudna” robi WPF tak, mam doświadczył tylko pozytywne skutki od tej decyzji, np:
- możemy odziedziczyć naszą non-XAML UserControls od siebie
- używamy tak dużo kodu, jak chcemy, który przyspiesza rozwój
- dołączenie kontroli infragistic bezpośrednio do naszej klasy modelu pochodzących z serwisu internetowego wyjaśnione dziesiątki małych problemów wiążących mieliśmy z wiążących Infragistics do ObservableCol lections
- nawet w prostej WPF, brak ObservableCollections sprawiają problemy jak not being able to create a simple Menu odejść
- jesteśmy zastępując EventAggregator jeden po drugim z bezpośrednich wydarzeń wykorzystujących UserControls i kodu tyłu, który wyjaśni wszystkie rodzaje problemów z imprez
Czy ktoś inny robiący MVVM w WPF miał podobne doświadczenia? Czy w dłuższej perspektywie spotkałeś się z prawdziwymi problemami?
Więc, gdzie umieścisz swoją logikę biznesową? –
otrzymujemy dane z naszych usług na ESB, większość logiki biznesowej jest tam wykonywana –