is WPF DE keuze voor Windows-apps?

Ik ontwikkel in Ironpython met Visual Studio 2010 via PTVS.

Ik zie dat wpf vrij traag is vergeleken met het Silverlight-equivalent ... althans voor mij. Mijn programma doet veel berekeningen, maar de gebruikersinterface is heel eenvoudig. Ik heb veel wpf vs Silverlight-vragen gelezen en this one ook. Ik hoorde over de out-of-browser modus van silverlight ... Ik weet niet wat ik erover moet denken.

Ik ben een beetje verward , ik moet mijn applicatie snel hebben, ik heb niet veel nodig met betrekking tot de gebruikersinterface. Het is alleen een Windows-app, deze is alleen bestemd voor gebruik op de computer van de gebruiker.

so, is wpf actually the best choice in this case?

Bedankt

10
@dario_ramos: in theorie. In de praktijk betwijfel ik of het ooit gebeurt.
toegevoegd de auteur Ray, de bron
Het is helaas te subjectief om te vragen wat 'het beste' is. Kun je je vraag herformuleren om meer objectief te zijn? Bijv. "Welke voordelen heeft wpf ten opzichte van klassieke Windows-formulieren?"
toegevoegd de auteur Paul Turner, de bron
Als de gebruikersinterface heel eenvoudig is, kunt u deze loskoppelen van uw bedrijfslogica (bijvoorbeeld met het MVP-patroon) en meer dan één weergave hebben (WPF, Silverlight). Uw GUI-toolkit wordt dan een configuratieparameter (uw app wordt "skinnable") en u kunt ze uitproberen en gemakkelijk vergelijken
toegevoegd de auteur dario_ramos, de bron
@Ray: Omdat hij een eenvoudige GUI heeft (d.w.z. klein), dacht ik dat hij de tijd kon veroorloven om meer dan één weergave te implementeren
toegevoegd de auteur dario_ramos, de bron

6 antwoord

Om eerlijk te zijn, in tegenstelling tot alle andere opmerkingen. Ik gebruik wpf zelfs voor eenvoudige toepassingen. In feite helpt het echt om een ​​heleboel noodzakelijke code op andere ui-frameworks te vermijden. Ik vind het leuk dat ik met wpf direct kan denken aan de gegevens die ik ga wijzigen, zonder een aantal gebeurtenishandlers te schrijven om items aan de verzameling toe te voegen, ze in een lijst weer te geven etc. Ook is wpf niet verplicht om MVVM te gebruiken, alleen gebruik een klasse die zowel het kijkmodel als het model combineert. Na het gebruik van wpf alot, kan ik me niet voorstellen Windows-formulieren opnieuw te gebruiken.

Maar dit is natuurlijk mijn persoonlijke mening. Gebruik uiteindelijk altijd de tool die het beste bij uw probleem past. Als u wpf niet kent en u wilt het alleen voor kleine toepassingen gebruiken, zou ik u Windows-formulieren of iets anders aanraden.

16
toegevoegd
+1: een belangrijk punt is dat productiviteit ook gaat om wat je goed kent. Ik schrijf nog steeds de oneven app Win-formulieren, maar verkies nu wpf nu ik veel tijd heb doorgebracht met WPF/Silverlight & Expression Blend. MVVM-binding is zo eenvoudig om mee te werken.
toegevoegd de auteur Gone Coding, de bron
Dit is wat ik probeerde om te zeggen, maar je hebt het zo veel beter gezegd.
toegevoegd de auteur cwharris, de bron

In mijn subjectieve mening nee. De beste optie zou zijn winforms. Ik vind het sneller in ontwikkeling en je hebt meer documentatie en ondersteuning online. wpf is meer gebaseerd op gebruikersinterfaces en gebruikt op natuurlijke wijze het MVVM-paradigma. Voor een eenvoudige app is het gewoon te veel drukte.

2
toegevoegd

Als uw UI echt eenvoudig is en een browser-gebaseerde toepassing geschikt zou zijn, ga dan voor Silverlight, omdat silverlight een uitgeklede versie van .Net gebruikt die sneller gaat werken. Maar ik was onlangs een applicatie aan het schrijven met een redelijk complexe gebruikersinterface met behulp van vrij zware rasters/treeview met veel data en het implementeren van aangepast gedrag, ik heb nooit persoonlijk gemerkt dat de applicatie langzaam draaide of overwoog dat wpf traag was.

Ter vergelijking: het is langzamer dan Silverlight, maar als je gebruikersinterface redelijk eenvoudig is, hoe langzamer zou het dan in werkelijkheid zijn?

Ook omdat silverlight een uitgeklede versie van .Net gebruikt, zijn er functies die je misschien achter de schermen nodig hebt die silverlight niet ondersteunt?

Ik ben het niet eens met @Daniel Casserly dat WPF/MVVM te opgeblazen is voor een eenvoudige applicatie, MVVM scheidt je gebruikersinterface van de logica erachter en maakt uitbreiding van deze applicatie indien nodig mogelijk. Ik geef de voorkeur aan de WPF-manier van databinden en ook het ontwerpen van een gebruikersinterface in XAML via de Winforms-methode, hoewel dit misschien gewoon persoonlijke voorkeur is.

Als u nog nooit wpf hebt gebruikt, is het niet moeilijk om een ​​eenvoudige gebruikersinterface te maken

1
toegevoegd

Als uw gebruikersinterface heel eenvoudig is, zou ik zeggen dat winforms waarschijnlijk eenvoudiger zouden zijn. wpf is erg krachtig maar met kracht komt complexiteit en een leercurve.

Snelheid zou geen probleem moeten zijn, gezien een eenvoudige interface.

1
toegevoegd

WPF is "de" keuze voor Windows-apps wanneer u een ontwerper en een ontwikkelaar hebt die beide wpf goed kennen en die kunnen coderen naar abstracties zonder aan elkaar te hangen bij het ontwikkelen van hun helft van de applicatie.

Anders worden jullie allebei heel boos op elkaar, ontwikkelt de ontwikkeling zich langzaam en vraag je je af waarom je niet alleen goede oude WinForms hebt gebruikt.

De kans is groot, tenzij je een ontwerper hebt die een geweldige visie heeft voor de gebruikersinterface en veel ervaring met WPF, je zult niet profiteren van wat wpf te bieden heeft.

Edit:

Ik heb me gerealiseerd dat u zei dat de gebruikersinterface heel eenvoudig is. Sla nu wpf over, gebruik WinForms en voer het Model View Presenter-stijl uit. Op die manier, als je later moet updaten naar WPF, zal het geen enorme beproeving zijn. (MVP is geweldig voor code-leesbaarheid en testen hoe dan ook).

1
toegevoegd
en de interface van winforms is niet beschikbaar in de visuele studio met Ironpython, ik denk dat ik moet gaan met WPF. (Ik ben de ontwikkelaar en ontwerper)
toegevoegd de auteur prince, de bron

gewoon om te zeggen, met blend en alle tooling krijg je je ui snel klaar. Het leren van winforms is in ieder geval niet voor de toekomst, xaml is overal. wpf neemt relatief veel middelen in beslag en wordt langzaam geladen, maar met eenvoudige async-programmering is het meer dan voldoende performant. Sl uit browser is een andere optie, voor meer lichtgewichtheid.

0
toegevoegd