Znalazłem this, aby być naprawdę miłym omówieniem plusów i minusów próbowania "dyskretnego" z strona Knockout.
Tradycyjnie jestem zwolennikiem utrzymywania Javascriptu jako dyskretnego, jak to tylko możliwe, a przy moich wyrażeń typu Knockout staram się utrzymywać je możliwie jak najmniejsze i uporządkowane, przenosząc ciężki urywek do funkcji na moim modelu widoku i tworząc własne powiązania, które zawierają logikę DOM - ale jestem głęboko przekonany, że samo podejście deklaratywne (takie jak domyślne użycie atrybutu "data-bind"), gdy jest używane rozsądnie, jest drogą do zrobienia.
Być może to dlatego, że moje wprowadzenie do Knockout to "port" aplikacji internetowej, nad którą pracowałem, a powiązania Knockout mojej strony stają się zaskakująco bliskie odpowiednikom XAML, ponieważ uczę się więcej o tym, jak wykorzystać Knockout wdzięcznie. Po prostu uwielbiam być w stanie przyciągać znaczniki i widzieć na pierwszy rzut oka prawdziwą logikę biznesową związaną z oceną widoku, a nie specyfikacją tego, jak jQuery lub cokolwiek fizycznie buduje to w odpowiedzi na pewne zdarzenie kliknięcia połączone w wielką duszę niszczącą Javascript plik.
Kiedy ponownie odwiedzam niektóre z moich tradycyjnych witryn MVC, które wykorzystują wiele proceduralnych jQuery, aby je połączyć, myślę, że tak, znaczniki są uporządkowane, ale wracając do niego po 6 miesiącach nawet ja mam trudności ze zrozumieniem, co miałem na myśli. z tymi wszystkimi selektorami jQuery, wywołaniami zwrotnymi i przewijaniem DOM. Sądzę, że skuwałbym dynamicznie tylko wiązania Knockout, gdybym musiał, tj.gdyby istniała sytuacja, w której moja logika powiązania byłaaby sama w sobie dynamiczna - ale i tak prawdopodobnie można by to osiągnąć inaczej za pomocą dynamicznych szablonów.
To jest moje 2 centy na dyskretnym aspekcie twojego pytania, a jeśli twoje doświadczenie przechodzenia na MVVM Javascript jest podobne do mojego było w ciągu ostatnich kilku miesięcy, nie spojrzysz za siebie.
Teraz * Jestem * trochę zdezorientowany: nie. NET MVC i WebAPI mają różne cele? Mam na myśli, że MVC jest dla webappów i stron, a WebAPI dla, dobrze, API (i usług i tak dalej). Dlaczego ktoś miałby migrować z MVC do API? czego mi brakuje? –
To niekoniecznie musi być prawda. To po prostu inny sposób robienia rzeczy. Możesz mieć Web API, który jest używany przez dowolnego klienta - w tym, ale nie tylko, twoją stronę internetową! – georgiosd
Ale w takim przypadku nadal potrzebujesz witryny jako interfejsu, prawda? Oznacza to, że projekt WebAPI będzie działał jak * warstwa usługi *. –