Vantaggio dell'app WPF rispetto a Winform per app aziendali? [chiuso]


84

Conosco asp.net e lo sviluppo di winform. Non sono il tipo di sviluppatore che salta in una nuova tecnologia solo perché è nuova. Deve darmi vantaggi extra come una maggiore produttività.

Quali sono i vantaggi di WPF rispetto a Winforms per le app aziendali pure? Non mi interessano gli extra per gli occhi, le animazioni, i gradienti, gli effetti di visualizzazione delle immagini e così via forniti da WPF. Le app aziendali sono per l'immissione di dati, la creazione di rapporti sui dati e forse alcuni grafici e la visualizzazione statica di foto.

In che modo WPF aiuterà in queste app? Legame di dati più ricco e migliore? WinForm è una tecnologia collaudata matura e mi piace il fatto di poter fare tutto in Visual Studio rispetto a più IDE per WPF (famiglia VS e Blend). Inoltre penso che WPF non abbia controlli di associazione dei dati così ricchi come le loro controparti Winform (DataGridView..etc). Per quanto ne so, Microsoft continuerà a supportare Winforms per molti anni.

Prova a convincere qualcuno come me a cambiare.


1
Penso che ci siano alcuni validi motivi per passare a WPF. Non voglio ripetere un blog che ho appena scritto , quindi inserirò un collegamento qui.
Andy Brown,

7
Questa è un'ottima domanda. Dovrebbe essere riaperto. Sono uno sviluppatore di winform che sta passando a WPF. La curva di apprendimento è enorme. Ma WPF è il futuro, poiché è un linguaggio dichiarativo per natura, come l'HTML. Winform è principalmente procedurale, che è più adatto per gli algoritmi, ma più dettagliato per la visualizzazione dell'interfaccia utente. Prova a decomprimere un file di stampa .XPS, vedrai WPF xaml lì. Ci sono semplicemente troppe limitazioni con Winforms. Sebbene funzioni ancora, il "piacere per gli occhi" di WPF può aiutare a ridurre il livello di stress dell'utente. Puoi presentare più righe di record in un modo più significativo diverso da listview o datagrid.
Jeson Martajaya

Risposte:


101

Conosco asp.net e lo sviluppo di winform. Non sono il tipo di sviluppatore che salta in una nuova tecnologia solo perché è nuova. Deve darmi vantaggi extra come una maggiore produttività.

Per il mio team, WPF ha dimostrato di essere molto più veloce di WinForms per lo sviluppo di applicazioni. Di recente abbiamo rilasciato un'app di medie dimensioni in 32 giorni uomo. Abbiamo avuto il vantaggio di uno sviluppatore WPF esperto nel team e di ragazzi inesperti desiderosi di apprendere la tecnologia. C'era un grande morale e la produttività era impressionante.

WinForm è una tecnologia collaudata matura e mi piace il fatto di poter fare tutto in Visual Studio rispetto a più IDE per WPF (famiglia VS e Blend).

Ti consideri un programmatore manuale o un programmatore drag-and-drop? Se ti consideri un drag-and-dropper, l'attuale raccolto di strumenti WPF potrebbe non essere adatto a te. Forse aspettare Visual Studio 2010? Lavoro quasi esclusivamente in XAML. La maggior parte degli utenti di WPF sarà probabilmente d'accordo sul fatto che questo è il modo più efficace per creare applicazioni WPF al momento. Ma poi, creo anche il mio HTML a mano, quindi mi sembra naturale ...

Quali sono i vantaggi di WPF rispetto a Winforms per le app aziendali pure? Non mi interessano gli extra per gli occhi, le animazioni, i gradienti, gli effetti di visualizzazione delle immagini e così via forniti da WPF.

La pensavo in questo modo, ma di recente ho sviluppato un'applicazione aziendale che ha gradienti, animazioni di base ed effetti. Queste fantasiose funzionalità sono state aggiunte per migliorare l'esperienza dell'utente. Perché le app aziendali dovrebbero essere Battleship Grey? Perché dovrebbero essere inutilizzabili? Certo, non sono il colore, i gradienti, l'animazione a rendere utilizzabile un'app aziendale, ma l'uso di questi effetti può aiutare l'esperienza dell'utente, e questo è ciò che è importante per me. Avrei potuto fare tutto quello che ho fatto nell'app WPF in WinForms - ci sarebbe voluto molto più tempo.

Legame di dati più ricco e migliore?

Il supporto per l'associazione dati è davvero sorprendente. È la mia caratteristica più amata nella piattaforma. Dai un'occhiata a questo meraviglioso Cheatsheet di Databinding .

Prova a convincere qualcuno come me a cambiare.

Ho deciso che non cercherò di convincere nessun altro a passare a WPF. Gli sviluppatori che ho cercato di "convincere" (tutti sviluppatori Winforms esperti) di solito hanno avuto difficoltà con la piattaforma. Non sono investiti nella tecnologia. Non "capiscono". Incoraggio le persone a controllare la tecnologia per vedere se è giusta per loro come sviluppatori. La curva di apprendimento è enorme. Se impari dai libri, dai un'occhiata a questo post SO per alcune mini-recensioni sui libri WPF. Se impari dai video, controlla i video WPF di windowsclient.net . Se impari con l'esempio, dai un'occhiata a questo o questoinviare. Dimentica tutto quello che sai su WinForms. WPF sembra davvero più vicino a ASP rispetto a WinForms. Crea alcune applicazioni di esempio. Vedi se funziona per te e il tuo team.

Poiché sei multi-qualificato (asp.net/winform skills), potresti vedere il vantaggio di acquisire competenze in WPF in quanto è strettamente correlato a Silverlight. Silverlight colma il divario tra le tue applicazioni rich client e le applicazioni web.

Personalmente ritengo che WPF sia la migliore tecnologia lato client disponibile per il framework .NET e generalmente eviterà di sviluppare in WinForms per lavori futuri. YMMV

Buona fortuna con la vostra decisione.


10
Risposta fantastica Brad: la nostra azienda è alle prese con questa decisione in questo momento. Le tue osservazioni sono ben ponderate e molto coerenti con ciò che abbiamo visto finora. Non siamo ancora giunti a una decisione, ma il tuo paragrafo Corazzata grigia risuona fortemente con noi poiché abbiamo visto l'impatto che un'interfaccia utente di grande impatto ha sulle vendite. Grazie per aver dedicato del tempo a scrivere un'ottima risposta.
gidmanma

3
C'è un'enorme differenza tra avere un unico sviluppatore WPF esperto in un team e non averne affatto uno. Accoppialo con una curva di apprendimento ripida e se gestisci affari non otterrai molto. Realisticamente, WPF è fantastico se hai qualcuno che ti guida e non tanto se stai imparando mentre procedi. E se lo fai, preparati per un importante refactoring.
Sergey Akopov

3
+1 - "Perché le app aziendali dovrebbero essere Battleship Grey?" - Sono completamente d'accordo!
Samuel Slade,

5
-1 Se l'unico motivo per passare a WPF è basato sulla capacità di creare gradienti e cambiare le finestre di dialogo dell'applicazione da "corazzata grigia", allora devi imparare effettivamente a usare WinForms.
deegee

1
+1, risposta completa. Il collegamento ai video WPF di windowsclient.net non è attivo, qualcuno sa dove trovarli?
Damien

11

Ho un po 'di esperienza in Winforms e ho giocato solo un po' con WPF, ma sono venduto.

Perché?

  • MOLTA più flessibilità. Se vuoi fare qualcosa di non standard in winform, ne derivano dolore e sofferenza, ma in WPF è semplice.

  • Associazione dati molto migliore

  • Più facile da sviluppare (una volta compresi i concetti fondamentali, che purtroppo richiederà un po 'di tempo)


4

Quando ho iniziato a guardare WPF, l'ho trattato come "Winforms with Vector Graphics" e sono corso direttamente sul lato della scogliera di apprendimento. Il modo corretto per passare da WinForms a WPF è prendere una dose eroica di qualsiasi narcotico su cui puoi mettere le mani per dimenticare tutto ciò che sai, quindi ricominciare da capo.

Seriamente, però, è molto più pulito e più facile se usi un pattern come Model-View-ViewModel. Ulteriori informazioni su The Orbifold , questo thread di Google Gruppi e Channel9

Poi ad un certo punto avrai un'illuminazione e inizierai a registrare tutto. Il tuo code-behind diventerà non molto più di una chiamata a InitializeComponent ().


4

Grazie per il post. La mia azienda ha un sacco di tempo investito in WinForms. Non riesco a immaginare di ottenere un'applicazione di medie dimensioni in 32 giorni uomo; i nostri periodi di certificazione sono mesi alla fine e cicli di rilascio a volte annuali o più lunghi (nonostante ci atteniamo il più possibile a una filosofia di sviluppo Agile), tale è la natura delle applicazioni che sviluppiamo.

Ho appena giocato con WPF per la prima volta e ho scoperto che posso ottenere alcuni vantaggi di WPF in WinForms usando ElementHost. Ho esteso una casella di testo WPF, quindi ho racchiuso la mia classe estesa in un controllo utente Win Forms e ora ho un'app WinForms che utilizza quella casella di testo WPF, completa di supporto per il controllo ortografico.

Sono impressionato nel vedere che Microsoft ha pensato a questo (ospitare WPF in WinForms e viceversa), dal momento che non riesco davvero a vedere la mia azienda passare a WPF a meno che non possiamo eseguire la transizione per un lungo periodo di tempo; c'è solo troppo investito in WinForms per ricominciare. Con la mia recente esperienza potrei iniziare a parlare con altri sviluppatori della mia recente esperienza e vedere quali sono i loro pensieri. Penso che WPF impiegherà un po 'di tempo per abituarsi e questo sembra coerente con altri commenti.




0

Immagina di poter usare la stessa interfaccia utente (XAML) dalla tua pagina ASP.NET/(Silverlight) con la tua app desktop. Dovresti costruirlo solo una volta ma collegarlo a entrambi ... questo è uno degli intenti di WPF / XAML ... siamo davvero lì? Non ancora, ma sempre più vicino.


4
Cercare di utilizzare la stessa interfaccia utente in Silverlight e un'app desktop è una di quelle cose che suona bene in teoria, ma in pratica penso che porterà a un'interfaccia utente scadente su entrambe le piattaforme.
Orion Edwards

Sì, la sovrapposizione tra WPF e Silverlight2 è ampia, ma non sufficiente per rendere portabile il tuo codice. Le differenze nelle capacità di associazione limiteranno eccessivamente lo sviluppo di WPF.
geofftnz

1
Beh, ho detto che non siamo ancora arrivati ​​... ma questo è l'intento finale.
Webjedi

geofftnz: intendevi limitare lo sviluppo di Silverlight ?
Abdu
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.