/ / Co jest z pustymi kodami? - wpf, mvvm, kodowanie

Co z pustymi kodami? - wpf, mvvm, opóźnienie kodu

Rozumiem korzyści płynące z testów jednostkowychpreferowanie modelu widoku niż kodu. Nie rozumiem jednak obsesji na punkcie całkowicie pustych kodów. W czasie kompilacji kod z tyłu i XAML są łączone, więc w rzeczywistości są one tym samym. Uwielbiam używać XAML ze względu na jego deklaratywny charakter, który jest bardzo fajny. Ale czy faktycznie istnieje jakiś praktyczny powód, aby nalegać, aby cały kod związany z widokiem był XAML, a nie C #?

Odpowiedzi:

4 dla odpowiedzi № 1

Korzystanie z tej opcji wiąże się również z pewnymi korzyściamitego, co Blend może zrobić w czasie projektowania z XAML, ale tak naprawdę jest to bardziej XAML vs (ten sam kod) w argumencie „za kodem”. Dla argumentu „bez kodu”, ponieważ dotyczy on MVVM prawdziwym celem, tak jak ty „jak już wspomniałem, jest przeniesienie kodu do klas takich jak ViewModels, które mogą być testowane i ponownie używane. Jak w przypadku wielu rzeczy, często doprowadza się to do skrajności, a ludzie ostatecznie nalegają, aby nigdy nie istniał żaden kod, kiedy to, co naprawdę jest potrzebne, to nie mieć logika biznesowa w kodowaniu, pomijając to, że często też Logika interfejsu użytkownika także.

XAML jest bardzo bogaty i pozwala na wieledeklaratywnie, ale nadal istnieją pewne specyficzne dla interfejsu użytkownika rzeczy (np. procedury obsługi zdarzeń, niektóre funkcje animacji), których nie można wykonać bez użycia kodu. Zwykle można przenieść ten kod w inne miejsce niż kod za pomocą takich elementów, jak niestandardowy kontrolki, dołączone właściwości itp., ale jeśli nie uzyskasz żadnych korzyści z ponownego użycia, prawdopodobnie lepiej jest użyć kodu zamiast do wykonania tej logiki interfejsu użytkownika.

Wzory takie jak MVVM to ogólne zasady przewodnie, a nie zbiór ścisłych zasad, których należy obsesyjnie przestrzegać - są to tak zwane języki programowania. :)


1 dla odpowiedzi nr 2

Dobry powód jest taki, że w przypadku WPF i XAML Microsoft dąży do tego, aby zachować oddzielne zadania graficzne i kodowania. W ten sposób programista i projektant interfejsu użytkownika mogą łatwo pracować.


1 dla odpowiedzi nr 3

Chodzi przede wszystkim o testowalność. Trudno (prawie niemożliwe) jest jednostkowe przetestowanie twojego kodu. Za pomocą MVVM możesz tworzyć uprzęże testowe, które w pełni testują Twój model i ViewModel.

Biorąc to pod uwagę, jestem fanem pragmatyzmu. Niektóre zdarzenia interfejsu użytkownika są niedźwiedziem do konfigurowania za pomocą poleceń, a dla nich czasami wpadam w głupotę.


0 dla odpowiedzi nr 4

Model widoku jest kod z tyłu dla XAML. Przynajmniej tak o tym myślę. Jest to plik za kodem, który można przetestować bez XAML.

Z drugiej strony, jak mógłby to ująć Ben Johnson, nikt oprócz głupca nigdy nie wdrożył metody „przeciągnij i upuść” w modelu widoku.