WPF czy WinUI 3? Porównanie i koszty migracji aplikacji
Jeśli wykonawca proponuje przejście z WPF na WinUI 3, zanim zaakceptujesz wycenę, ustal jedno: co po tej zmianie będzie działało lepiej w Twojej firmie? Czy pracownicy łatwiej wykonają swoje zadania, czy da się dodać potrzebne funkcje, czy zespół będzie mógł sprawniej rozwijać program?
WPF warto rozwijać dalej, jeśli aplikacja spełnia potrzeby firmy, a jej problemy można usunąć bez wymiany całego interfejsu. WinUI 3 warto rozważyć przy nowej aplikacji Windows lub większej przebudowie ekranów i sposobu obsługi. W działającym programie trzeba przy tym uwzględnić koszt przeniesienia funkcji, testów i wdrożenia zmiany u użytkowników.
WPF a WinUI 3 - różnice ważne dla firmy
WPF, czyli Windows Presentation Foundation, oraz WinUI 3 służą do tworzenia interfejsów aplikacji Windows: okien, formularzy, tabel i przycisków. WinUI 3 jest częścią Windows App SDK, zestawu narzędzi Microsoft dla aplikacji Windows. WPF działa na .NET Framework i współczesnym .NET, więc sama nazwa WPF nie oznacza, że program korzysta ze starego środowiska.
| Kryterium | WPF | WinUI 3 |
|---|---|---|
| Rozwój istniejącej aplikacji WPF | Można zachować obecne ekrany i poprawiać wybrane części programu. | Trzeba przenieść lub przebudować interfejs i sprawdzić działanie jego funkcji. |
| Nowa aplikacja Windows | Wybór zależy od potrzebnych funkcji, dostępnych dodatków i umiejętności zespołu. | Microsoft rekomenduje WinUI 3 dla nowych aplikacji tworzonych bezpośrednio dla Windows. Dopasowanie do konkretnego projektu nadal wymaga oceny. |
| Wybrane nowe funkcje Windows | Można dodać funkcje Windows App SDK bez wymiany WPF, jeśli projekt spełnia wymagania. | Korzysta z Windows App SDK. Dostępność funkcji trzeba sprawdzić dla wersji Windows używanych przez klientów. |
| Rozbudowane tabele i inne elementy ekranów | Przy aktualizacji trzeba sprawdzić, czy używane dodatki nadal działają poprawnie. | Nie wszystkie elementy WPF mają bezpośrednie odpowiedniki; część wymaga zamiany lub dodatkowej pracy. |
| Działanie poza Windows | Samo WPF nie zapewnia wersji dla macOS ani Linuxa. | Samo WinUI 3 również nie zapewnia wersji dla macOS ani Linuxa. |
Rekomendację dla nowych projektów opisuje dokumentacja WinUI 3. Możliwości dodawania funkcji przy zachowaniu WPF wyjaśnia dokumentacja Windows App SDK dla istniejących projektów.
Czy WPF jest nadal wspierane?
Microsoft nadal wspiera WPF na współczesnym .NET. Nie trzeba przechodzić na WinUI 3, żeby dalej rozwijać aplikację WPF. W przewodniku modernizacji Microsoft opisuje także aktualizację .NET i dodawanie funkcji z zachowaniem dotychczasowego interfejsu.
Trzeba jednak sprawdzić wersję .NET i dodatki używane w Twoim programie. Starsza wersja może wymagać aktualizacji nawet wtedy, gdy pozostajesz przy WPF. Wykonawca powinien wskazać, co konkretnie wymaga zmiany i z jakiego powodu.
Czy WinUI 3 przyspieszy aplikację WPF?
Przejście na WinUI 3 nie gwarantuje szybszego działania całej aplikacji. Najpierw trzeba ustalić, co powoduje opóźnienia.
Jeśli pracownik czeka na otwarcie zamówienia, problem może dotyczyć pobierania danych, ich przetwarzania albo wyświetlania. Wymiana samych ekranów nie skróci czasu oczekiwania na odpowiedź innego systemu. Jeżeli natomiast opóźnienie powstaje przy wyświetlaniu dużej tabeli, warto sprawdzić sposób jej działania.
Przed obietnicą przyspieszenia wykonawca powinien zmierzyć tę samą czynność w obu rozwiązaniach, na porównywalnych danych i komputerze. Dopiero taki wynik pozwala ocenić, czy proponowana zmiana pomoże użytkownikom.
Kiedy migracja z WPF do WinUI 3 ma sens?
Migrację warto rozważyć, gdy potrzebne zmiany obejmują znaczną część interfejsu. Jeśli na przykład nowy sposób obsługi zamówień wymaga przeorganizowania większości ekranów, WinUI 3 może być jednym z wariantów do porównania z przebudową w WPF. W obu przypadkach firma powinna wiedzieć, jakie zadania użytkowników staną się łatwiejsze i ile pracy wymaga zmiana.
Gdy problemem jest jeden niewygodny formularz, porównanie można zacząć od kosztu jego poprawy w obecnej aplikacji. Podobnie przy brakującej funkcji: najpierw warto ustalić, czy da się ją dodać do WPF.
Przy większej przebudowie znaczenie mają też dostępne dodatki. Obsługa rozbudowanej tabeli, wydruku czy kilku okien może wymagać innego rozwiązania. Microsoft opisuje różnice między WPF i WinUI 3, które trzeba uwzględnić w zakresie prac.
Od czego zależy koszt migracji z WPF do WinUI 3?
Sama liczba ekranów nie wystarcza do wyceny. Prosty formularz i tabela z filtrowaniem, eksportem oraz wydrukiem wymagają innego nakładu pracy. Znaczenie mają też połączenia z innymi systemami i sposób instalacji programu.
W wycenie powinny znaleźć się:
- Przeniesienie potrzebnych funkcji - również wydruków, skrótów klawiaturowych, uprawnień i obsługi błędów.
- Dodatki i połączenia z innymi systemami - co można zachować, co trzeba kupić lub napisać oraz jak sprawdzić współpracę z urządzeniami.
- Testy i wdrożenie - sprawdzenie codziennych zadań użytkowników, instalacja na ich stanowiskach i możliwość powrotu do poprzedniej wersji. Jeśli zmienia się sposób zapisu danych, powrót wymaga również sprawdzenia ich zgodności.
- Praca podczas przejścia - utrzymanie starej wersji, czas pracowników na testy i ewentualne szkolenie. Trzeba też uzgodnić, które nowe funkcje powstaną w czasie migracji, a które poczekają.
Znaczenie testów dobrze widać przy modernizacji aplikacji desktopowej TimeCamp, rozwijanej w C++ i wxWidgets. W Software Logic łączymy tam modernizację wybranych części z dalszym rozwojem funkcji. Przed wydaniem sprawdzamy między innymi rejestrowanie czasu i pracę z projektami. W budżecie modernizacji trzeba uwzględnić taką pracę: po zmianie użytkownik nadal musi móc wykonać czynności, od których zależy jego dzień pracy.
Jak sprawdzić wybór przed większym wydatkiem
Przed zleceniem pełnej migracji można przygotować fragment aplikacji w WinUI 3. Powinien obejmować ważne zadanie użytkownika i elementy, które mogą sprawić trudność przy przenoszeniu. Jeśli pracownicy korzystają głównie z rozbudowanej tabeli, ona będzie lepszym sprawdzianem niż proste okno logowania.
Przykładowo w aplikacji do obsługi zamówień próba może obejmować wyszukanie dokumentu, zmianę danych, zapis i wydruk. Kryteria odbioru powinny określać poprawny wynik, dopuszczalny czas operacji, obsługę błędów oraz instalację na komputerze użytkownika.
Po tej próbie wykonawca powinien umieć wskazać, co można przenieść, co wymaga dodatkowej pracy i jak wpływa to na wycenę. Jeśli korzyści nie uzasadniają kosztu migracji, można zostać przy WPF i przeznaczyć budżet na potrzebne funkcje.
Co zlecić na początek
Do pierwszej rozmowy przygotuj opis czynności sprawiających problem, listę planowanych funkcji oraz ograniczenia dotyczące wdrożenia. Nie musisz sam ustalać wersji .NET ani sporządzać listy dodatków - wykonawca może sprawdzić je podczas przeglądu.
W Software Logic w ramach modernizacji istniejącego oprogramowania pomagamy ocenić, które części aplikacji warto zachować i gdzie potrzebne są zmiany. Pierwszy etap powinien dać Ci uzasadniony zakres prac, warunki ich odbioru i podstawę do wyceny. Z tymi informacjami łatwiej zdecydować, czy rozwijać WPF, czy przejść na WinUI 3.


