Poszukuję implementacji MVVM dla ASP.NET. Jak mam się do tego podejść? Czy możesz zaproponować dowolny projekt rozwiązujący ten problem, szczególnie w przypadku formularzy sieci Web ASP.NET?Wzór MVVM dla formularzy sieci Web ASP.NET?
Dzięki.
Poszukuję implementacji MVVM dla ASP.NET. Jak mam się do tego podejść? Czy możesz zaproponować dowolny projekt rozwiązujący ten problem, szczególnie w przypadku formularzy sieci Web ASP.NET?Wzór MVVM dla formularzy sieci Web ASP.NET?
Dzięki.
Spójrz na ASP.NET MVVM on CodePlex.
Autor ram również mówi o tym trochę w Presentation Model in Action.
Wielu operatorów MVC robi coś podobnego do modelu widoku w tym sensie, że zamiast zwracać obiekty domeny do kontrolera, ma spłaszczoną strukturę danych (model widoku) wszystkich danych potrzebnych do tego widoku niezależnie od tego, ile obiektów domeny zawiera wartość danych. W tym względzie model widokowy jest bardzo wykonalny w MVC i jestem pewien, że można go również wykorzystać w formularzach sieciowych. Jednak nie ma sposobu, aby wiedzieć, aby wykonać dwukierunkową agregację danych/poleceń/zdarzeń, która jest związana z MVVM w WPF.
Chociaż nie znam żadnej implimentations Webform można spróbować niektóre z metod opisanych tutaj:
Jimmy Bogard - How we do MVC
Oto bardzo interesujący artykuł na temat jak to zrobić MVP w WinForms:
Castle Windsor's MVP with ASP.NET
Być może możesz utworzyć hybrydę tych dwóch podejść za pomocą formularzy internetowych.
Wypróbuj DotVVM.
Nie jest kompatybilny z Web Forms, ale dzieli się swoimi zasadami (postbacks, kontrole serwera itp.), Rozwiązuje największe problemy (czysty HTML, brak stanu wyświetlania, testowalne modele widoków) i obsługuje zarówno pełny .NET Framework (przez OWIN) i .NET Core.
Nie musisz nawet pisać żadnego javascriptu, używa Knockout JS w tle, framework rozwiązuje dla ciebie wszystko, co dotyczy komunikacji klient-serwer.
Ma również ładne Visual Studio integration i jest open source.
Widoki wyglądać następująco:
<div class="form-control">
<dot:TextBox Text="{value: Name}" />
</div>
<div class="form-control">
<dot:TextBox Text="{value: Email}" />
</div>
<div class="button-bar">
<dot:Button Text="Submit"
Click="{command: Submit()}" />
</div>
A ViewModel jest czystym C# klasa.
https://github.com/Zhestokus/dotNet-ASP.NET.TwoWayModel mała biblioteka, zapewnia funkcjonalność na wzór podobnego MVC/MVVM bez osoba trzecia JavaScript Ramki
np można wiązać pewne właściwości sterowania do właściwości klasy
<asp:TextBox runat="server" ID="tbxEmail" Property="{SubscriberModel.Email=Text}" />
mógłbyś odpowiedzieć http://stackoverflow.com/questions/8851933/event-bubbling-and-mvp-asp-net? – Lijo