Dzięki za pytanie.
John, jako autor HT, zaoferował odpowiedź. Ja, jako dyrektor projektu Breeze, jestem skłonny się z nim zgodzić :)
HotTowel tworzy podstawę, na której możesz się oprzeć. To nie jest sam budynek.
Jest to podstawa przeznaczona dla konkretnego rodzaju aplikacji, aplikacji CRUD opartej na specyficznym zestawie współpracujących technologii JavaScript i ASP.NET. Breeze jest współtwórcą ... ale nie jedynym. Knockout, ze swoją konstrukcją MVVM i dwukierunkowym wiązaniem danych, jest szczególnie dobrze dostosowany do zadań wprowadzania danych typowych dla aplikacji CRUD.
Oczywiście istnieją inne rodzaje SPA. Istnieje ważna klasa aplikacji, które w większości prezentują informacje i akceptują niewielki wkład użytkownika. Takie aplikacje nie odnoszą tak dużego pożytku z powiązania danych, a ludzie, którzy je piszą, mogą być dość wrogo nastawieni do powiązań danych w ogóle, a w szczególności do KO.
Chodzi mi o to, że HT jest ukierunkowany na określoną klasę aplikacji ... która jest ogromnie udana, przynajmniej jeśli mierzy się ją ciągłą popularnością. Dostarcza towary dla osób, które budują te aplikacje. To może nie być właściwe miejsce początkowe dla innych rodzajów aplikacji.
To prawda, że prosta droga do Breeze przebiega przez Web API, EF i relacyjną bazę danych. Zabierz je i możesz napisać więcej kodu na serwerze (i trochę więcej na kliencie). To może być idealny kompromis dla ciebie.
Autorzy Breeze chcieliby ułatwić tę drogę. Nie sądzę, BreezeJS sprawia, że trudniej. Nie rozumiem twojego oświadczenia "Powiew staje się bardzo trudny w użyciu." Próbowałeś tego?
Twój klient może komunikować się z dowolnym zasobem HTTP w dowolny sposób. Łatwo jest używać istniejących kontrolerów Web API (choć łatwiej z kontrolerami Breeze Web API). Możesz użyć amplify.js, jeśli wolisz (btw, możesz powiedzieć Breeze, aby wykonywał połączenia AJAX ze wzmocnieniem). Nie musisz nawet używać Breeze EntityManager
do wysyłania zapytań i zapisywania danych, jeśli nie chcesz tego robić.
Reszta BreezeJS może nadal mieć wartość dla Ciebie. Pozostaje wiele pracy do wykonania po tym, jak zorientujesz się, jak będziesz pobierać i przechowywać dane oraz czy wolisz styl Entity-ChangeSet czy styl Command/Query.
Będziesz musiał znaleźć odpowiedzi na te pytania:
- Jak będzie kształtować surowych danych JSON do Bindable obiektów?
- W jaki sposób utrzymasz te obiekty i udostępnisz je na wielu ekranach, nie robiąc zbędnych podróży do serwera?
- W jaki sposób będzie można przechodzić od jednego obiektu do powiązanego obiektu, tak jak w przypadku wiązania adresu z combobox StatesAndProvinces?
- Jak będziesz śledzić zmiany?
- W jaki sposób je zatwierdzisz?
- Jak przechowywać niektóre lub wszystkie dane w pamięci lokalnej, gdy aplikacja "nagrobki"?
Breeze może pomóc w tych obowiązkach, nawet jeśli nie chcesz, aby zapytanie i oszczędzanie dla Ciebie.
A jeśli odpowiedź pozostaje „Zrobię wszystko to ja dziękuję” ... dobrze, usuwając Breeze z projektu HotTowel jest tak proste, jak:
Uninstall-Package breeze.webapi
Na marginesie ... Wzmocnienie, choć fantastyczne, nie zbliża się do tego, co robi Breeze. –
Dzięki za szczegółową odpowiedź. Sądzę, że używam Hot Towel bardziej jak próbny starter niż szablon. Widzę jednak twoje punkty. Dla mnie Breeze wchodzi w drogę, ponieważ mam już bogatą sieć WebAPI do połączenia. Dla innych być może jest lepiej. Świetnie spisałeś się przy układaniu Durandala, a powłoka Hot Towel jest wyjątkowo ostra. Łatwo było mi wymienić części, których nie chciałem, więc wszystko jest w porządku. Poważnie - zaoszczędziło mi to wiele kłopotów. Dziękuję Ci!!! –
+1 W tym moment.js. Doskonała biblioteka. –