WPF vs Silverlight [duplikat]

to pytanie ma już odpowiedzi tutaj : Zamknięte 8 lat temu .

Możliwy duplikat:
Jaka jest różnica między WPF a aplikacją Silverlight?

Jakie są dokładne różnice między WPF a Silverlight?

Author: Community, 2009-06-03

4 answers

To bardzo szerokie pytanie. Moja firma niedawno napisała biały dokument opisujący różnice między tymi dwoma technologiami i ma około 70 stron. Niestety nie jest jeszcze opublikowany, bo podałbym ci link.

EDIT: zgodnie z obietnicą, oto link do białej księgi na temat Codeplex:

http://wpfslguidance.codeplex.com /

Postaram się jednak podsumować.

  1. WPF to Gruba platforma kliencka Windows który ma dostęp do pełnego. Net Framework. Silverlight jest technologią opartą na przeglądarce, która ma dostęp do podzbioru.Net Framework (zwanego CoreCLR). Tak więc zauważysz różnice za pomocą pozornie codziennych metod i obiektów w ramach. Na przykład, metoda Split() Na klasie String ma 3 nadpisania w Silverlight, ale 6 W. Net Framework. Często zobaczysz takie różnice.

  2. W ramach WPF wszystkie wizualnie renderujące elementy wywodzą się z Visual base class. W Silverlight ich nie ma; zamiast tego wywodzą się z kontroli. Obie technologie jednak ostatecznie wywodzą się z klasy DependencyObject w hierarchii.

  3. WPF obecnie dostarcza lub ma dostęp do większej liczby kontrolek użytkownika niż Silverlight; chociaż ta różnica jest łagodzona przez Zestaw Narzędzi Silverlight i nadchodzące wydanie Silverlight 3.

  4. WPF obsługuje 3 typy routowanych zdarzeń (bezpośrednie, bulgotanie i tunelowanie). Silverlight obsługuje tylko bezpośrednie i bulgotanie.

  5. Istnieje sporo różnic w powiązaniu danych, które zostaną nieco złagodzone w następnej wersji Silverlight. Obecnie Silverlight nie obsługuje trybu wiązania, OneWayToSource ani Explict UpdateSourceTriggers. Dodatkowo, Silverlight domyślnie używa OneWay databinding, jeśli nie jest ustawione, podczas gdy WPF używa domyślnego trybu określonego przez właściwość zależności.

  6. Silveright nie obsługuje Multibindingu.

  7. Silverlight obsługuje xmldataprovider, ale nie Obiektdataprovider. WPF obsługuje oba.

  8. Silverlight może wykonywać tylko asynchroniczne połączenia sieciowe. WPF ma dostęp do pełnego stosu sieciowego. Net i może wykonywać dowolne połączenia. Ponadto obecnie Silverlight obsługuje SOAP, ale nie może poradzić sobie z wyjątkami błędów SOAP natywnie (może to ulec zmianie w Silverlight 3).

  9. Istnieją ogromne różnice w kryptografii (Silverlight ma 20 klas w przestrzeni nazw, podczas gdy WPF ma dostęp do 107). Zasadniczo Silverlight obsługuje tylko 4 algorytmy haszujące i protokół szyfrowania AES.

  10. Silverlight nie obsługuje jeszcze: polecenia, walidacji, drukowania, dokumentów XPS, mowy, 3D, obiektów Zamrażalnych lub interpunkcji z pulpitem Windows; wszystkie z nich są dostępne w WPF.

  11. Silverlight obsługuje przeglądarkę interop, więcej opcji strumieniowania multimediów, w tym znaczniki osi czasu i głęboki Zoom. WPF nie Obsługa tych funkcji jeszcze.

W żadnym wypadku nie jest to kompletne, ponieważ próbowałem zredukować 70-stronicowy dokument do punktorów.

Wreszcie, nawet przy tych wszystkich różnicach, Microsoft próbuje zamknąć lukę między tymi dwoma technologiami. Zestaw Narzędzi Silverlight i zestaw narzędzi WPF rozwiązują niektóre niedociągnięcia każdej z technologii. Silverlight 3 będzie dodawać wiele funkcji niedostępnych obecnie(np. powiązanie danych element-element). Jednak ze względu na różnice w podstawowych bibliotekach, zawsze będą pewne różnice Framework.

 205
Author: SergioL,
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
2010-11-16 00:01:59

WPF jest technologią pulpitu Windows do tworzenia aplikacji Windows w. Net framework.

Silverlight jest technologią internetową, która jest w pełni obsługiwana przez wtyczkę przeglądarki zarówno na Windows, jak i MAC (w podobny sposób jak Flash). Istnieje również plugin do uruchamiania Silverlight na Linuksie (Moonlight).

Chociaż istnieją podobieństwa między funkcjonalnością dostarczaną zarówno przez WPF, jak i Silverlight (pod względem komponentów interfejsu użytkownika i obsługi XAML) Silverlight jest znacznie mały framework, zawierający podzbiór funkcjonalności WPF. Nowsze wersje Silverlight zawierają pewne funkcje, których nie ma w WPF, więc nie jest to już prawdziwy podzbiór.

 9
Author: samjudson,
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
2009-06-03 13:06:15

Rzeczy, które WPF ma, czego Silverlight nie ma: pełny silnik 3D oparty na DirectX, integracja z systemem Windows, taka jak miniatury paska zadań Windows 7 i dostępność rejestru systemu, a także dostęp do pełnego. NET Framework, w tym obsługa baz danych Oracle. Ponadto SL działa w bezpiecznej piaskownicy, która uniemożliwia dostęp do rzeczy, takich jak cały system plików, w którym aplikacje WPF mogą uruchamiać pełne zaufanie z pełnym dostępem do systemu.

Jak wspomniano powyżej, SL był pionierem niektórych technologii, takich jak VisualStateManager, który tworzy swoje zostały wtórnie do WPF za pośrednictwem wspieranego przez Microsoft zestawu narzędzi WPF.

Jeśli chcesz ocenić, która technologia jest odpowiednia dla Twojego projektu, Oto prosty sposób na to: jeśli piszesz aplikację, która ma działać po odłączeniu od Internetu, lub jeśli piszesz aplikację, która potrzebuje dostępu do określonych funkcji systemu Windows, takich jak wymienione powyżej, to WPF jest najlepszym rozwiązaniem. Dla platform-agnostycznych, aplikacje internetowe Silverlight to właściwy wybór. Hth.

 3
Author: James Cadd,
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
2009-06-03 13:43:02

Można powiedzieć, że jest to [bardzo] z grubsza analogiczne do różnicy między Flex i Adobe Air, ale jest to nieco mylące.

WPF odnosi się do zestawu technologii (narażonych przez API), do których użytkownicy.NET Framework 3.0 i nowszych mają dostęp w celu rysowania na ekranie.

Wiele interfejsów API WPF jest dostępnych dla aplikacji Silverlight.

Istnieje oczywiście wiele innych API oprócz WPF, które są dostępne pod Silverlight, ponieważ aplikacje SL będą musiały wiele zrobić więcej niż tylko rysować na ekranie.

 1
Author: Andz,
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
2009-08-27 09:33:58