Ondřej Linhart

Vývojářský blog Ondřeje Linharta



Podle kategorie

Jak se rozhodnout mezi Windows Forms nebo WPF

Ondřej Linhart       21. 5. 2013       C#, VB.NET       9371 zobrazení

Pro tvorbu uživatelského rozhraní v desktopových aplikacích na platformě Microsoft .NET je možné použít buď klasické Windows Forms, nebo novější Windows Presentation Foundation (WPF). Oba grafické systémy asi není třeba představovat, alespoň minimální představu o nich musí mít každý vývojář desktopových .NET aplikací.

Budete-li vyvíjet nějakou desktopovou aplikaci s uživatelským rozhraním, budete stát před rozhodnutím, kterou z těchto dvou věcí použít. Bezhlavě trvat na tom, že se použije novější WPF je stejně hloupé, jako použít Windows Forms tam, kde se svými schopnostmi plně využije potenciál WPF.

Proto jsem sestavil tabulku hodnocení, která by měla usnadnit rozhodnutí o použitém grafickém systému.

 

Windows Forms

WPF

Ano

Ne

Ano

Ne

1. Mají vývojáři dostatečné zkušenosti s daným grafickým systémem? 1 -1 1 -1
2. Mají vývojáři zkušenosti s jazykem HTML? 0 1 1 -1
3. Bude aplikace používána na zařízeních s různým DPI? -1 0 1 0
4. Bude aplikace používána na zařízeních s dotykovým ovládáním? -1 0 1 0
5. Bude v aplikaci použito přizpůsobení standardních ovládacích prvků? 0 0 1 0
6. Bude v aplikaci používána vektorová grafika? -1 0 1 0
7. Budou v aplikaci používány animované efekty? -1 0 1 0
8. Bude v aplikaci použit Data binding? 0 0 1 0
9. Bude uživatelské rozhraní aplikace používat Windows API? 1 0 -1 0
10. Bude aplikace lokalizována do více jazyků? 1 0 -1 0
11. Bude aplikace provozována na málo výkonném hardware? 1 0 -1 0
12. Budou uživatelé aplikace používat vlastní přizpůsobení vzhledu operačního systému (WindowBlinds, atd.)? 1 0 -1 0

U každé otázky připočtěte k Windows Forms a WPF hodnotu podle odpovědi Ano/Ne. Pokud si nejste jisti, vyberte pravděpodobnější možnost. Následující tabulky ukazují, jak jsem se rozhodoval při vývoji aplikací TorrentControl (nahoře) a Friends Watcher (dole).

  Windows Forms WPF
1. 1 -1
2. 1 -1
3. -1 1
4. 0 0
5. 0 0
6. 0 0
7. 0 0
8. 0 0
9. 0 0
10. 1 -1
11. 0 0
12. 0 0
Celkem 2 -2

  Windows Forms WPF
1. 1 -1
2. 1 -1
3. -1 1
4. -1 1
5. 0 0
6. 0 0
7. 0 0
8. 0 1
9. 0 0
10. 1 -1
11. 0 0
12. 0 0
Celkem 1 0

 

hodnocení článku

0       Hodnotit mohou jen registrované uživatelé.

 

Nový příspěvek

 

kontakt

Pane autore, rád bych se s Vámi (nebo jiným WPF expertem) spojil ohledně možné spolupráce. Pokud to bude možné ozvěte se mi na tomas@trueapps.cz.

Předem díky a doufám, že tímto neporušuji pravidla publikování...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Diskuse: Jak se rozhodnout mezi Windows Forms nebo WPF

Díky za článek, ale mám pár otázek k jednotlivým otázkám. :-)

2) Podle mě byste měl uvést i znalost XAML, protože ne všichni se znalostí XAML mají zároveň znalost HTML, byť je to dost podobné.

8) Nemělo by být u WinForms -1? Nebo se tam snad také používá Data Binding?

10) U WinForms je lepší podpora pro lokalizaci do více jazyků? Můžete to trochu rozvést, nebo odkázat na nějakou dokumentaci?

12) Asi to samé, jako u 10, proč WPF vadí použití vlastního vzhledu systému?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

2) Zbytečné, protože HTML je odpovídající nejen syntaxí, ale i stejnou filozofií layoutování, data bindingu, atd. Tudíž týpci, kteří se normálně živí plácáním webiki (vytvářením webových "aplikací") budou ve WPF jako doma.

8) Samozřejmě že tam data binding je, ale ne tak pokročilý jako ve WPF.

10) Lokalizace u WPF je naprostá katastrofa. Je toho tolik špatného, že to ani nebudu všechno rozepisovat.

12) Protože to není nativní uživatelské rozhraní Windows, ale vektorové omalovánky, na které nemají skoro žádný vliv změny standardního uživatelského rozhraní ve Windows, tudíž se ve WPF aplikaci neprojeví.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dobrý deň, p. Linhart, moja otázka je trošku mimo tejto témy ale zaujímal by ma Váš názor na používanie komponentov iných výrobcov napr. Telerik, Devexpress, Infragistics, Componentfactory ..... , či už pre Winform alebo WPF, alebo odporúčate radšej používať štandardne dodávané s VS ? Ďakujem.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ne, pokud se dá požadovaná funkčnost vytvořit bez nutnosti komponent třetích stran bez větších komplikací, ano v opačném případě. WPF je v tomto ohledu lepší než Windows Forms, ve WPF se spíše bez nich obejdete.

Pokud nechcete mít UI super vytuněné, obejdete se ve většině případů bez komponent třetích stran jak ve Windows Forms, tak ve WPF.

Pokud by nebylo na zbyt a měl bych si vybrat něco komerčního, volil bych věci od DevExpress.

nahlásit spamnahlásit spam -13 / 13 odpovědětodpovědět

Ďakujem za Váš názor

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Určitě použít komponenty od třetích stran, protože za "pár" korun dostanete nevídané možnosti vůči standartním prvkům.

Viz můj projekt

http://www.dekosoft.cz/Viz.html

Kompletně VB.NET, Winforms a DevExpress Winforms Suite

Roman Rak

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Strčte si tu reklamu tam, kam slunce nesvítí. Jak už jsem psal, tak ve většině případů postačují standardní ovládací prvky, i pomocí nich se dá vytvořit profesionální UI. A to co předvádíte v těch svých aplikacích, se dá s přehledem vytvořit pomocí Qios.DevSuite.Components a to je vážený pane, hodně muziky zcela zadarmo.

nahlásit spamnahlásit spam -14 / 14 odpovědětodpovědět

Koukám ,že žijete v nějakém sebestředném žívotě (jak jsem říkal ... a já jsem bůh). A pokud chcete srovnávat DX komponenty s tím pokusem Qios.DevSuite.Components, tak mi je Vás upřímně líto. Placené sady jsou k tomu, aby mi ušetřily stovky hodin, než to matlat ve standartních komponentech. To je zase můj názor. Zkuste občas naschlouchat druhé straně a trochu vice pokory vůči jiným názorům by take neškodilo.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Sežeňte lepší sadu UI komponent za 0,- Kč. Srovnávat to nebudu, pouze konstatuji, že s tím lze udělat stejně dobré UI.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tu sa diskutovalo na rovnakú tému :

http://www.vbnet.cz/forum-tema--5503-vyh...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback