od wewnątrz na zewnątrz, są to nasi MVC warstwy aplikacji:ASP.NET MVC: Gdzie można utworzyć model widoku dla widoku?
- MS SQL/Stoły/views/Przechowywane Procs
- Entity Framework 4.1 (ORM) z POCO generacji
- Repository
- Service (odzyskać) oraz Funkcje sterujące (SAVE)
- Routing -> Sterownik -> Razor Zobacz
- (klient) JQuery Ajax z Knockout.js (MVVM)
Wszystko jest w porządku, dopóki nie trzeba tworzyć pojedynczą ViewModel do kroku 5, aby nakarmić zarówno widok Razor jak również JSON/Knockout ViewModel:
- nagłówek, który zawiera wszystkie Rozwijanej opcje listy i wybory do pola poniżej
- Items - tablica cokolwiek wysłać do klienta, który staje ViewModel
Ponieważ kontroler nie będzie mieć dostęp do repozytorium bezpośrednio to znaczy utworzyć usługę dla każdego za nd każdy widok, który umożliwia edycję treści? Będę musiał pobrać POCO z repozytorium oraz wszystkie opcje dla każdego typu pola w razie potrzeby.
Po prostu wydaje się zbędne tworzenie oddzielnych usług dla każdego widoku. Na przykład viewModel do edycji adresu i oddzielnego viewModel do edycji nieruchomości, która również ma adres. Możemy mieć tuzin formularzy, które edytują ten sam adres POCO.
Aby ułatwić udzielenie odpowiedzi na to pytanie, czy kontroler ma bezpośredni dostęp do repozytoriów z powodu nieszczelnej abstrakcji?
Czy lubisz nokauty? zawsze chciałem znaleźć powód, aby go użyć i nigdy nie miałem. –
@nathan Powinieneś sprawdzić ten film http://channel9.msdn.com/events/mix/mix11/frm08. Pomoże znaleźć powody, by z niego skorzystać. Zmniejsza to kod do około połowy. –