Nasz zespół jest w tej kwestii podzielony i chciałem uzyskać opinie stron trzecich.
Budujemy aplikację i nie możemy zdecydować, czy chcemy używać aplikacji .Net WPF Desktop z serwerem WCF, czy aplikacji sieci Web ASP.Net za pomocą jQuery. Pomyślałem, że zadam pytanie tutaj, z pewnymi specyfikacjami, i zobaczę, jakie byłyby zalety / wady korzystania z obu stron. Mam swoją ulubioną i czuję się stronniczy.
Idealnie chcielibyśmy zbudować pierwszą wersję oprogramowania tak szybko, jak to możliwe, a następnie zwolnić i poświęcić trochę czasu na zbudowanie dodatkowych funkcji / komponentów, które chcemy później. Przede wszystkim chcemy, aby oprogramowanie było szybkie. Użytkownicy przeglądają zapisy przez cały dzień, a opóźnienia w ładowaniu zapisów lub odświeżaniu ekranów zabijają ich produktywność.
Szczegóły aplikacji:
- Szacuję około 100 różnych ekranów dla początkowej wersji, a plany dotyczące wielu dodatkowych ekranów zostaną dodane później po początkowej wersji.
- Chcemy wykorzystać dwukierunkową komunikację w systemach przypomnień i zdarzeń
- Obecnie musi obsługiwać około 100 użytkowników, chociaż powiedziano nam, że możemy pozwolić na wzrost do 500 użytkowników
- Mamy wiele lokalizacji
Przedmioty do rozważenia (może początkowo nie w niektórych przypadkach, ale w przyszłych wydaniach):
- Miejsce na dodatkowe komponenty, które zostaną dodane po początkowej wersji (jest ich wiele ... być może działają tutaj niż początkowa aplikacja)
- Nawigacja za pomocą klawiatury
- Wydajność jest koniecznością
- Szybkość produkcji do wersji początkowej
- Niskie koszty utrzymania
- Przyszłe wsparcie
- Integracja softphone / skanera
Nasi programiści:
- Mamy 1 programistę, który uczy się WPF w ciągu ostatnich kilku miesięcy i był tym, który zasugerował, aby użyć do tego WPF.
- Mamy drugiego programistę, który zna ASP.Net i który może pomóc w projekcie w przyszłości, chociaż nie będzie nad nim pracował aż do pierwszej wersji, ponieważ jego czas poświęca na utrzymanie obecnego oprogramowania.
- Jestem ja, który pracował z oboma i czuję się swobodnie w obu
- Mamy firmę zewnętrzną zajmującą się zarządzaniem projektami i są one firmą ASP.Net.
- Planujemy zatrudnić 1-2 innych, jednak najpierw musimy wiedzieć, w jakim kierunku zmierzamy
Środowisko:
- Użytkownicy ogólni korzystają z serwera Windows 2003 z usługami terminalowymi. Łączą się za pomocą cienkich klientów WYSE za pośrednictwem połączenia RDP. Pracownicy administracyjni mają własne komputery z XP lub wyższym. Użytkownicy mogą określać własną rozdzielczość, chociaż ograniczają się do używania IE jako przeglądarki internetowej.
- Inne lokalizacje łączą się z naszą siecią za pośrednictwem połączenia MPLS
Na tej podstawie, co byś wybrał i dlaczego?
Odpowiedzi:
Z pewnością brzmi dla mnie jak aplikacja WPF, z dużą ilością interakcji użytkownika i potencjalnie interakcji ze sprzętem. Możesz dostarczyć aplikację za pomocą Click-Once, więc wdrożenie nie jest w większości kwestią. Twoja aplikacja WPF może uzyskać dostęp do usługi WCF i dostarczać dane w postaci binarnej, dzięki czemu wydajność będzie doskonała. Chciałbym zacząć czytać o WPF i jak najszybciej się z nim zapoznać.
źródło
Szaleńcza odpowiedź: oboje. Właściwa warstwa usługi, łatwo jest mieć grubego klienta, który robi wszystko (WPF) i szybkiego klienta WWW, który wykonuje najczęściej używane czynności (ASP.NET). Pozostawia drzwi otwarte dla klienta mobilnego itp. W dół drogi.
źródło
Jeśli masz tylko jednego programistę, który uczy się WPF i zastanawiasz się nad tym, aby Twój zespół skoczył na WPF, to dlaczego nie skorzystać z Silverlight? Dostajesz wiele zalet WPF, ale nadal możesz pozostawić swój projekt jako aplikację internetową. Ponieważ szukasz dużego projektu modułowego, warto zastosować PRISM z WPF lub Silverlight, aby uprościć MVVM.
Mój zespół niedawno zdecydował się na użycie Silverlight przez asp.net. To był dla nas fantastyczny wybór. Początkowo mieliśmy tylko jednego programistę, który znał jakieś srebrne światło. Potem wszyscy wzięliśmy tygodniowy kurs treningowy, który był w większości bezużyteczny, ale przynajmniej zmoczył nam stopy. Ostatecznie musieliśmy zatrudnić dwóch kontrahentów, którzy pomogliby nam w stworzeniu większości naszego środowiska interfejsu użytkownika. Większość naszego zespołu wciąż nie jest pewna swoich umiejętności w srebrnym świetle. Ja, początkowy członek zespołu ze znajomością Silverlight, i dwaj wykonawcy wykonują większość prac nad SL. Następnie mamy dwóch oddanych członków zaplecza. Powiedziałbym, że zajęło nam około 2 miesięcy po podjęciu decyzji o przeprowadzce do Silverlight, że naprawdę mieliśmy wszystko razem. Jednak, teraz mamy wspaniały produkt, który przypomina bardzo aplikację kliencką, która działa wewnątrz przeglądarki internetowej i nie jest instalowana na żadnej maszynie lokalnie. W sumie prace rozwojowe trwają krócej niż rok i jesteśmy prawie gotowi do wydania pierwszego kandydata.
Kilka rzeczy do rozważenia:
WPF lub silverlight, cokolwiek wybierzesz, będzie spora ilość, której Twoi programiści będą musieli się nauczyć.
W razie potrzeby Silverlight może zabraknąć przeglądarki. Jeśli to zrobisz, konfiguracja jest bardzo łatwa, więc jeśli kiedykolwiek uruchomisz nową wersję, zainstalowany program przeglądarki SL automatycznie się zaktualizuje.
Silverlight nie obejmuje wszystkich elementów sterujących, które ma WPF.
Moja ostatnia uwaga jest taka, że jeśli chcesz usunąć kod tak szybko, jak to możliwe, to oczywiste, że powinieneś korzystać z ASP.NET. Moje główne problemy z ASP to to, że jeśli nie zdyscyplinujesz swojego zespołu, projekt ASP.NET łatwo jest zaśmiecony i bałagan. Jeśli uważasz, że będziesz w stanie poradzić sobie z początkowym narzutem związanym z przyspieszeniem z technologiami, wówczas Silverlight lub WPF da ci wiele wspaniałych możliwości.
źródło
Ta część dotyczy:
WPF nie jest świetny w przypadku połączeń pulpitu zdalnego / cienkiego klienta. Animacje nie będą płynne, a wszelkie złożone obrazy (nawet gradienty) spowolnią reakcję interfejsu użytkownika na indeksowanie. Pracownicy administracyjni z typowymi maszynami w stylu retro XP najprawdopodobniej również będą mieli problemy z wydajnością złożonych aplikacji WPF (z powodu niewielkiej ilości pamięci RAM i złych układów GPU).
Jeśli wybierzesz ścieżkę WPF, aby uzyskać bogatą grafikę, przygotuj się na hacki wydajności w ostatniej chwili, gdy dowiesz się, że docelowe maszyny mają dziesięć lat. Trzymaj się statycznych ekranów i używaj .NET 4.0, ponieważ wydajność WPF znacznie się poprawiła od wersji 3.5.
źródło
Technicznie uważam, że połączenie WPF / WCF jest lepszym rozwiązaniem.
Jednak nie jestem przekonany, że twój istniejący programista WPF naprawdę ma doświadczenie w tym projekcie. WPF jest dość przesunięciem w programowaniu procesów myślowych od programowania Winform, więc musisz długo i intensywnie zastanowić się, czy naprawdę masz wystarczające umiejętności w zespole, aby zapewnić tę drogę.
źródło
Ciekawy. To brzmi uderzająco dobrze w aplikacji, którą właśnie uruchomiliśmy w mojej firmie (integracja telefonu i skanera i wszystko inne).
Wybraliśmy opcję Silverlight ze szczególnym uwzględnieniem SOA, aby w razie potrzeby można było wykonać aplikację WPF.
Używamy MEF w warstwie usług i budujemy punkty rozszerzeń (interfejsy wtyczek opisujące niektóre punkty, w których planujemy rozszerzalność lub integrację z innymi systemami)
Żaden problem.
Jakiego rodzaju wydajność? Czy dostrzegasz wydajność (zgryźliwość) czy chrupanie liczb? To ostatnie może stanowić problem z aplikacją web / silverlight. W przypadku tych pierwszych nasza aplikacja przechodzi wiele rekordów, takich jak Twoja, ale jesteśmy w stanie je przewidzieć i pobrać rekordy, gdy użytkownicy pracują na bieżących. Czasy ładowania są zerowe dla tej sekcji naszej aplikacji.
Zależy od zestawu umiejętności. Ale realistycznie, każdy zawsze chce dostać się na rynek tak szybko, jak to możliwe, więc to nie jest argument.
Podobnie jak szybkość produkcji, nie jest to również argument i sprowadza się do praktyk projektowania i kodowania. Jeśli mówisz o konserwacji sprzętu, możesz chcieć skorzystać z aplikacji w chmurze.
Nie jestem pewien, co to znaczy.
Silverlight 4 umożliwia teraz dostęp do kamery internetowej / mikrofonu (mamy nadzieję na przeprowadzenie wideokonferencji między aplikacjami, a także integrację sip), więc jeśli używasz serwera telefonicznego, możesz sam go napisać. Nie znam żadnych istniejących, ale to może pomóc.
W przeciwnym razie może być konieczne brzydkie włamanie (nie ma już odniesienia do artykułu / ów, przepraszam) lub nie masz innego wyboru, jak mieć aplikację WPF, która może współpracować z systemem plików. SL4 może wyjść poza przeglądarkę, ale może uzyskać dostęp tylko do niektórych części systemu plików. Żaden z nich prawdopodobnie nie będzie częścią, której potrzebujesz do interakcji z telefonem.
Masz na myśli skaner dokumentów? Nie jestem co do tego pewien. Używamy skanerów ręcznych / kodów kreskowych, które działają jak każde inne urządzenie wejściowe i nie stanowią problemu.
źródło
czy potrzebujesz wysoce responsywnej aplikacji do korzystania przez cały dzień? użyj WPF; łatwiej będzie ponownie używać komponentów GUI w WPF przez ASP / MVC (IMHO)
tak, jquery i inni są świetni, silverlight jest fajny, ale aplikacje komputerowe są jeszcze bardziej wydajne
dla zaplecza, WCF jest w porządku
źródło
Będę musiał zalecić użycie WCF dla warstwy usług ze względu na skalowalność i bezpieczeństwo. Jeśli chodzi o warstwę prezentacji, której można użyć Silverlight lub ASP.NET, Silverlight jest podobny do Flasha, ale na początku jest trudny do zrozumienia i ma wysoką krzywą uczenia się, głównie podczas pracy z danymi. ASP.NET jest łatwiejszy w użyciu, ale będziesz potrzebował dużo ulepszeń i javascript, aby móc go efektywnie używać.
źródło