+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Windows Form vs WPF, cosa ne pensate?

  1. #1
    L'avatar di alextyx
    alextyx non è in linea Moderatore Globale
    Luogo
    Prato
    Post
    2,585

    Windows Form vs WPF, cosa ne pensate?

    In questo periodo sto svolgendo alcuni lavori tecnici, non di programmazione ma più legati a questioni documentali e hardware, tuttavia proprio ieri ho assistito a una discussione sulla opportunità di usare WPF in luogo di Windows Form, definita addirittura come 'deprecata'. Per adesso non ho molto approfondito l'argomento e, tempo fa, avevo solo seguito qualche articolo o filmato su youtube, nel quale si presentava la nuova tecnologia. Ho rifatto una carrellata di letture, googlando, per rinfrescarmi la memoria ed effettivamente qualche vantaggio WPF sembra averlo, ma mi sembra quantomeno esagerato buttare alle ortiche la vecchia tecnologia.
    Mi farebbe comodo e piacere che chi avesse opinioni o, meglio ancora, esperienze diretta del confronto in oggetto, le esprimesse in modo da permettere a me e ad altri di operare una eventuale scelta, la più informata possibile.
    Grazie

  2. #2
    persichetti non è in linea Scolaretto
    Luogo
    Piacenza
    Post
    238
    Mah guarda, io non sono certo un programmatore "sopraffino", nel senso che sviluppo applicativi legati al mondo dell'automazione industriale, quindi roba grezza.
    Però mi è capitato di lavorare un po' con WPF perchè un mio cliente voleva che l'applicazione avesse un look and feel particolare (bottoni non rettangolari, piccole animazioni, colori con gradienti), tutta roba che farla con i classici form c'era da mettersi le mani nei (pochi) capelli che ho, quindi mi è sembrato naturale esplorare WPF.
    Alla fine ce l'ho fatta però non è stato indolore, almeno per uno come me un po' tradizionalista. La curva di apprendimento di WPF non è particolarmente agevole e ci si scontra con concetti non banali (bisogna cambiare alcuni punti di vista e sicurezze acquisite nel progettare l'interfaccia grafica).
    Diciamo che è molto potente e ti permette di fare "cinema" in modo tutto sommato agevole (dopo che ti sei rotto il testone inizialmente) e, importante, sei costretto a tenere completamente separati la parte grafica ed il codice, il che non è affatto male.
    Quello che penso è che, se non devo appunto utilizzare effetti speciali, opto sicuramente ancora per una applicazione winform, magari dall'aspetto professionale.
    Il mio collega che proprio in questi giorni stà lavorando su una applicazione che girerà su un touch-screen e che dovrà essere particolarmente user friendly, sta utilizzando WPF. Ogni tanto mi arrivano delle bestemmie dalla sua scrivania ma sembra che il risultato sia buono.
    Chissà perchè non ho cambiato mestiere quando ero ancora giovane!

  3. #3
    L'avatar di alextyx
    alextyx non è in linea Moderatore Globale
    Luogo
    Prato
    Post
    2,585
    Grazie del tuo contributo!
    Anch'io sento arrivare qualche imprecazione dalla scrivania accanto alla mia

  4. #4
    HopeFirst non è in linea Scolaretto
    Post
    218
    Beh.. guarda...l'effetto c'è, e con un look migliore riesci ad accontentare il cliente in modo doppio, per la veste grafica in primis, ed infine per il classico lavoro svolto dell'applicazione.
    Diciamo che ho notato un influenza psico-visiva abbastanza piacevole per l'uso di applicazioni quotidiane.(ma di certo non con WPF).
    Per il semplice motivo e svantaggio di dover lavorare il doppio, per la parte grafica dei controlli, per ottenere qualcosa che con WinForms era molto più semplice.
    L'unico consiglio che posso darti è quello di continuare ad utilizzare WinForms ed utilizzare controlli sviluppati da parti terze, sia gratis che a pagamento, oppure come faccio io i controlli li creo con design personalizzato, in modo da poterli riutilizzare in altre applicazioni in modo semplice e veloce.

  5. #5
    L'avatar di alextyx
    alextyx non è in linea Moderatore Globale
    Luogo
    Prato
    Post
    2,585
    Quote Originariamente inviato da HopeFirst Visualizza il messaggio
    Beh.. guarda...l'effetto c'è, e con un look migliore riesci ad accontentare il cliente in modo doppio, per la veste grafica in primis, ed infine per il classico lavoro svolto dell'applicazione.
    Diciamo che ho notato un influenza psico-visiva abbastanza piacevole per l'uso di applicazioni quotidiane.(ma di certo non con WPF).
    Per il semplice motivo e svantaggio di dover lavorare il doppio, per la parte grafica dei controlli, per ottenere qualcosa che con WinForms era molto più semplice.
    L'unico consiglio che posso darti è quello di continuare ad utilizzare WinForms ed utilizzare controlli sviluppati da parti terze, sia gratis che a pagamento, oppure come faccio io i controlli li creo con design personalizzato, in modo da poterli riutilizzare in altre applicazioni in modo semplice e veloce.
    Grazie anche a te.
    Quantunque si dica in giro che i pregi di WPF siano anche la vera vettorizzazione, un efficace data binding e una netta separazione tra codice e disegno dell'interfaccia. Non so dire, però, quanto WPF sia migliore, se lo è, sotto questi punti di vista.

  6. #6
    Dev-01 non è in linea Scolaretto
    Post
    445
    Onestamente trovo il databinding l'antitesi della best practice.

    La maggior parte di quello che fai con WPF puoi farlo tranquillamente da WinForm (a parte qualche effetto particolare che lascia il tempo che trova considerando che un'applicazione deve rispondere all'input e restituire un nuovo stato nel minor tempo possibile) e spesso basta definire una classe da poter riutilizzare ed un custom control base da ereditare per ottenere ottimi risultati.

    Trovo più utile concentrarsi sullo sviluppo di codice ben ingegnerizzato.

    Per quanto riguarda il tanto declamato disaccoppiamento, ormai da qualche anno Visual Studio consente di lavorare in team e di riflettere in maniera immediata eventuali modifiche a tutti i livelli (almeno puoi testare subito il codice).

    Punto di forza di WPF sta nello snellire il lavoro del processore poiché l'interfaccia grafica viene elaborata dalla GPU, poi però il processore deve riaccoppiare i routedevent scatenati dalla GUI (che nel frattempo li tiene fermi in memoria) al codice esecutivo.

    Un altro fattore poco conosciuto è che ogni controllo Winform crea un proprio handle in memoria come si trattasse di una finestra a se stante mentre WPF crea un solo handle per tutto ma pure questo, con un poco di lavoro iniziale, è un problema che si può ridurre almeno in parte pur sapendo che non si giungerà mai a quel risultato.

    In tutta onestà, considerando la potenza computazionale delle CPU odierne (e di quelle a venire) e una quantità di memoria media che si aggira fra i 4 e gli 8 giga almeno (ormai ampiamente superata anche nel mercato consumer di fascia medio-alta), i benefici in termini pratici mi appaiono all'incirca irrilevanti.

    Credo che la scelta ricada molto sul risultato auspicato nel prodotto finale in relazione alla macchina sulla quale questo dovrà girare; tuttavia propenderei per consigliare il cliente su una buona architettura hardware ampia e di notevole fattura piuttosto che su una medio-bassa che comprenda una GPU superveloce.

  7. #7
    L'avatar di alextyx
    alextyx non è in linea Moderatore Globale
    Luogo
    Prato
    Post
    2,585

  8. #8
    Dev-01 non è in linea Scolaretto
    Post
    445
    Figurati.

  9. #9
    Luogo
    Lazio
    Post
    1,596
    Blogs
    21
    Personalmente non ho mai avuto occasione di usare WPF ma quando era un novità diedi qualche letta
    e c'era un esempio che mi è rimasto impresso.

    Si trattava di scegliere un pianeta:
    si può sciegliere da una listbox cliccando sul nome
    oppure, come nell'esempio WPF, cliccando sulla sua orbita attorno al sole.

    Penso che la seconda sia decisamente più ad effetto e che a seconda del mercato
    possa fare una notevole differenza in questo mondo di apparenze.

    Se, per esempio, si dovesse informatizzare un qualche evento a fini scientifici/divulgativi
    secondo voi il responsabile sceglierebbe il programma con la listbox o quello con wpf ?

    P.S.
    va da sè che la "fatica" di farlo in wpf (...sapendo già come 'muoversi' )
    non sembrava esageratamente spoporzionata rispetto
    alla realizzazione della banale listbox del windows form
    Ultima modifica di sspintux; 16-02-2019 01:14 
    Ciao sspintux
    ------------------------------------------------------------

    O Santo Protettore dell'informatico quadratico medio, se puoi allontana da me questo cetriolo amaro!
    Azz! ... questo è un grande porck-around; potremmo addirittura farlo passare per una funzionalità avanzata

  10. #10
    Dev-01 non è in linea Scolaretto
    Post
    445
    Quote Originariamente inviato da sspintux Visualizza il messaggio
    Penso che la seconda sia decisamente più ad effetto e che a seconda del mercato
    possa fare una notevole differenza in questo mondo di apparenze.
    Perfettamente d'accordo. Come già detto:

    "Credo che la scelta ricada molto sul risultato auspicato nel prodotto finale... "

    E' chiaro che certe cose si facevano anche prima, comunque conoscendo lo strumento risulta ovvio tentare di sfruttarne i punti di forza quando se ne presenti l'opportunità.

    WPF risulta comunque più leggero in memoria e questo potrebbe portare risultati positivi in termini di performance in particolar modo quando si utilizza intensivamente la grafica e/o grandi moli di dati (dipende anche dalla qualità della programmazione alla base dell'applicazione e dalla base dati scelta).

    Tuttavia occorre tener presente che programmare graficamente un custom control non banale in WPF può risultare particolarmente tedioso se non si conosce benissimo lo strumento con buona pace della produttività soprattutto volendo garantire il risultato finale.

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi