Dlaczego warto przejść do aplikacji WPF dla firm zamiast używać Winforms

Nasz zespół ma doświadczenie w pracy nad Winforms i ASP.net projekty.

Jako co inni programiści w programmers stack exchange polecają mi przeskoczyć do WPF dla naszego zespołu kolejne projekty zamiast używać WinForms dla naszych aplikacji biznesowych opartych na kliencie.

Teraz zaczynam rozwijać mój pierwszy projekt przy użyciu WPF, to trochę trudne dla mnie jako jego pierwsza próba użycia tego.

Możesz podać znacznie głębsze informacje, dlaczego musimy przejść do WPF zamiast używać winforms?

Muszę przekonać naszego menedżera, że możemy kopać na WPF dla naszych projektów opartych na klientach.

Używamy VS 2008.

Author: BoltClock, 2012-03-09

3 answers

  1. Wybierz dobry Framework MVVM. Osobiście używam Microsoft Prism. W przypadku innych alternatyw, spójrz na to pytanie Stoskoverflow .

  2. routowane zdarzenia są przeznaczone tylko do widoku. Na przykład, jeśli chcesz przewijać do końca wielowierszowego pola tekstowego po zmianie tekstu.

  3. polecenia są używane do wiązania zdarzeń, w których logika znajduje się w modelu widoku (logika biznesowa)... Na przykład submit guzik.

  4. Jeśli masz projektantów w swoim zespole, poproś ich, aby zaczęli bawić się mieszanką ekspresji i rozumieniem stylów/układu. Funkcja Expression Blend umożliwia korzystanie z przykładowych danych do wyświetlania układu aplikacji bez konieczności ich ciągłego uruchamiania.

  5. Zrozumieć różnicę między ContentControl a ContentPresenter.

  6. Zrozum, jak to działa. Istnieje różnica między SelectedItem, SelectedValue, oraz SelectedValuePath.

  7. Spójrz na wiele exmaples online. Dr. Wpf, WPFTutorial.net, Josh Smith na WPF , itd.

  8. Jeśli planujesz skorzystać z Code UI Testing (aby przetestować rzeczywisty interfejs użytkownika), upewnij się, że nazwałeś kontrolki, które mają znaczenie (większość samouczków MVVM mówi ci, że nie powinieneś nazywać żadnych kontrolek). Jeśli nie planujesz testowania kodowanego interfejsu użytkownika, nie nazywaj kontrolek, chyba że musisz się do nich odwoływać z samego widoku.

  9. IValueConverter i IMultiValueConverter powinny być używane tylko do konwersji właściwości na elementy związane z widokiem. Najczęściej używanym konwerterem jest konwerter BooleanToVisiblity.

  10. TargetNullValue, FallbackValue, i StringFormat są ważne przy stosowaniu wiązań. Nie zakładaj, że Powiązane Dane będą zawsze dostępne i poprawne.

  11. Prawie zawsze będziesz wystawiał ObservableCollection<T> lub ReadOnlyObservableCollection<T> ze swoich Modeli widoku. Bardzo rzadko można kiedykolwiek zwrócić inny typ z kolekcji, w tym IEnumerable<T>.

  12. Bądź ostrożny w wyborze swojego BindingMode: OneWay, OneTime, TwoWay, OneWayToSource (Uwaga: OneWayToSource jest trudne... nadal wymaga gettera, ponieważ jest , a nie wiązaniem tylko do zapisu).

  13. Dobrym darmowym narzędziem do debugowania jest Snoop . Jest podobny do Eksploratora DOM dla uruchomionej aplikacji WPF. Bardziej zaawansowanym (i nie darmowym) narzędziem, które jest nieco potężniejsze jest Kret .

Na razie tylko o tym myślę... A jeśli wpadniesz na bloki, StackOverflow jest twoim przyjacielem:) [27]}
 8
Author: m-y,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:10

Napisałem serię na WPF z MVVM specjalnie skierowaną do programistów, którzy mają tło Windows Forms i planują przeskoczyć statek.

Przechodzi przez niektóre z podstaw WPF, pokazując, w jaki sposób pozwala ci podejść do twojego rozwoju inaczej niż Windows Forms, w tym wprowadzając (delikatnie) szablony, polecenia i inne koncepcje, które wiążą się z znacznie lepszym powiązaniem danych w WPF.

To byłoby miłym wprowadzeniem do WPF, i pokazać, dlaczego może to być lepsze dla aplikacji biznesowych niż formularze Windows.

 4
Author: Reed Copsey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-09 01:56:54

Dla tych, którzy czytają i zastanawiają się "dlaczego WPF" zamiast Winforms, odpowiedź jest taka, że databinding WPF sprawia, że jest to o wiele łatwiejsze. MVVM naprawdę jest po prostu po to, aby pomóc ci w pełni z niego korzystać, ale nie potrzebujesz go ściśle.

Jako ktoś, kto dopiero się uczy, polecam po prostu wziąć WPF na przejażdżkę, otworzyć projekt i zacząć robić to, co zrobiłeś w WinForms, ręcznie przypisując właściwości i obsługując zdarzenia. To zadziała. Ale gdy już się zorientujesz, że WPF robi to automatycznie dla ciebie, nagle zaczniesz mieć pretensje do starego sposobu, a skończysz podążając wesołą ścieżką MVVM.

 2
Author: TJ Bandrowsky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-23 14:59:34