Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,549

    [.net] il futuro con WPF

    salve a tutti
    secondo voi visto che nella mia ditta usiamo SOLO windowsForm, ne vale la pena studiare WPF o meglio iniziare su un'altra piattaforma?

    WPF è una grossa novità, sebbene sono quasi 10 anni dalla sua entrata ho iniziato a studiarlo da qualche mese, ci voleva una ventata di novità, in confronto a WindowsForm è una rivoluzione e copre tutti i "buchi".

    nella mia ditta non ho molta crescita, quindi mi sono dilettato a fare qualcosa di "piccolo" con WPF, mi è piaciuto, solo che mi sembra già (quasi) abbandonato, in quanto per creare APP oramai anche Xamarin sia in abbandono.
    Oramai ci sono piattaforme sempre piu performanti ed efficenti per fare APP, oramai tutto è diretto al WEB
    consigli?

    grazie
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Quote Originariamente inviata da Kahm Visualizza il messaggio
    secondo voi visto che nella mia ditta usiamo SOLO windowsForm, ne vale la pena studiare WPF o meglio iniziare su un'altra piattaforma?
    Dipende. Qual è il problema con Windows Forms?

    Quote Originariamente inviata da Kahm Visualizza il messaggio
    WPF è una grossa novità, sebbene sono quasi 10 anni dalla sua entrata [...]
    Non è una novità: è stato introdotto con .NET 3.0 nel 2006... parliamo di quasi 17 anni fa!

    Quote Originariamente inviata da Kahm Visualizza il messaggio
    ho iniziato a studiarlo da qualche mese, ci voleva una ventata di novità, in confronto a WindowsForm è una rivoluzione e copre tutti i "buchi".
    Non è una rivoluzione, è semplicemente un framework differente, nato infatti per costruire applicazioni diverse da quelle che si possono ottenere con Windows Forms.

    La "rivoluzione" si concretizza se WPF viene utilizzato per creare applicazioni in grado di sfruttare il framework: se fai applicazioni Windows con dei Form e dentro ci metti la solita toolbar e una griglia agganciata ai dati, al netto di qualche sfumatura di colore, quello che fai con WPF lo puoi fare anche con Windows Forms, con meno sforzo e con una architettura ben più semplice.

    Quote Originariamente inviata da Kahm Visualizza il messaggio
    nella mia ditta non ho molta crescita, quindi mi sono dilettato a fare qualcosa di "piccolo" con WPF, mi è piaciuto, solo che mi sembra già (quasi) abbandonato, in quanto per creare APP oramai anche Xamarin sia in abbandono.
    E' il bello delle tecnologie Microsoft: ovunque io vada, mi rinfacciano che il mio ambiente di sviluppo costicchia, mentre da Microsoft, Google e Apple sono distribuiti gratuitamente, poi si finisce a usare tecnologie che servono solo a spingere il sistema operativo o il servizio del momento, che sia VB6, o WPF, o Silverlight, o UWP, o Xamarin... poi ecco che magicamente non sono più soluzioni "strategiche" per il fornitore e ci si ritrova con due scelte: migrare verso la nuova piattaforma di punta, riscrivendo il codice il più delle volte (e senza essere pagati per farlo), oppure continuare a usare una versione vecchia dell'ambiente di sviluppo, che ancora consente di utilizzare quella tecnologia deprecata, senza però il supporto tecnico e l'assistenza del fornitore.

    Quote Originariamente inviata da Kahm Visualizza il messaggio
    Oramai ci sono piattaforme sempre piu performanti ed efficenti per fare APP, oramai tutto è diretto al WEB
    consigli?
    Per dare consigli, bisognerebbe anche capire qual è l'esigenza.
    Nonostante gli scenari apocalittici tracciati, sia Windows Forms sia WPF al momento ci sono, e sono utilizzabili.
    Essendo che ovviamente non si può avere la "sfera di cristallo" e prevedere il futuro, qual è la necessità?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    Oltre ad avere introdotto un metodo più semplice per "disegnare" l'interfaccia grafica rispetto a "WinForm", WPF ha rafforzato il concetto di separazione degli strati dell'applicazione con il suo motore di binding. Questo ovviamente non significa che non sia possibile separare gli strati con altre piattaforme, ma rispetto a ad altri (sopra tutto al tempo in cui esordii) gli strumenti per promuovere questo tipo di architettura sono davvero avanzati.
    Inoltre (e questo risponde anche alla tua affermazione che possa essere tempo sprecato imparare WPF) la cosa principale da imparare con WPF è la sintassi per il famoso XAML, unitamente al pattern MVVM. Non che sia obbligatorio, sia chiaro, ma imparando questi concetti spostarsi su altre piattaforme e spesso condividere lo XAML (quindi le istruzioni per l'interfaccia grafica) oltre che i vari altri strati quali Model e spesso anche il ViewModel (anello di congiunzione tra la View e il Model nel pattern MVVM), diventa molto più semplice, ovviamente se ben separati gli strati. Per cui se impari questi concetti, allora il tutto ti servirà anche per entrare più semplicemente nel multipiattaforma (nativa) con Xamarin, che per altro anche se dovesse "morire" lo farebbe a favore di MAUI, che ne è in pratica il successore ma con delle "migliorie" (riduttivo per indicare delle grosse differenze), ma i concetti alla base di entrambi sono molto simili. Ancora, una volta appresi i concetti di separazione degli strati, ti dovrebbe venire molto più semplice anche spostare parte del codice (View esclusa) nel web tramite Blazor, anche se la parte grafica andrà riscritta per produrre il risultato grafico per il browser.
    In conclusione a parere mio faresti bene ad imparare WPF se non altro per proiettarti in un modo di programmare più "strutturato", ma per questo scopo potresti imparare anche direttamente con MAUI o a limite Xamarin. Ma se il tuo intento (o quello di chi ti paga) è quello di adottare novità solo in quanto tali e non per le loro caratteristiche, allora non ha molto senso perderci tempo. Se invece si vuole aprire "un mondo" il più delle volte non visibile se non si è mai provato, allora imparare questi concetti migliorerà di gran lunga la qualità del codice prodotto; la suddivisione dei compiti nel team; il testing; la semplicità di manutenzione; la migrazione verso altre tecnologie; le modifiche del prodotto oltre che la "ramificazione" del software verso altre versioni mantenendo una base comune.

  4. #4
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    . (problema ultimo post)

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Quote Originariamente inviata da U235 Visualizza il messaggio
    La cosa principale da imparare con WPF è la sintassi per il famoso XAML, unitamente al pattern MVVM.
    Esattamente: è una delle cose a cui mi riferivo con l'affermazione "creare applicazioni in grado di sfruttare il framework".

    Da un lato, dovrebbero essere applicazioni business di alto livello o comunque moderne: se devi utilizzare la solita griglia, WPF rimane senz'altro sottosfruttato. Dall'altro, si dovrebbe fare tesoro dell'approccio MVVM, che - come hai giustamente sottolineato - viene spinto in WPF pur non essendo una prerogativa del solo WPF, perché realizzabile anche in WinForms e addirittura in ASP.NET Web Forms (per mia esperienza).

    Infatti, al netto di scegliere framework e librerie di ampio respiro o che negli anni abbiano garantito una maggiore longevità, per rimanere aperti verso il futuro bisogna puntare teoricamente (e idealmente) a suddividere nel modo corretto modelli, logica di business e presentazione affinché quest'ultimo layer sia il più sottile e ridotto possibile.

    Questo garantirà sempre la maggior flessibilità nella migrazione di codice a/da altri linguaggi, librerie e/o framework, con tutta una serie di vantaggi tangibili.

    Quote Originariamente inviata da U235 Visualizza il messaggio
    Se invece si vuole aprire "un mondo" il più delle volte non visibile se non si è mai provato, allora imparare questi concetti migliorerà di gran lunga la qualità del codice prodotto; la suddivisione dei compiti nel team; il testing; la semplicità di manutenzione; la migrazione verso altre tecnologie; le modifiche del prodotto oltre che la "ramificazione" del software verso altre versioni mantenendo una base comune.
    Concordo al 100% (ma se potessi, anche al 110).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    Quote Originariamente inviata da alka Visualizza il messaggio
    ...
    Sono d'accordo. La differenza tra strutturare bene un software e farlo senza strutturare troppo, la vedo simile alla produzione industriale vs artigianale, è chiaro che la seconda è sempre più "vicina" a come la vorrebbe un "committente" o quanto meno più "pronta" alle esigenze, ma questo rende difficile altri aspetti data la diversa architettura (più o meno complessa), in particolare con il passare del tempo e degli eventi (leggasi: modifiche; manutenzione e riparazione nel tempo).
    Sarebbe meglio una Ferrari o il prototipo "veicolo-razzo" fatto apposta per battere il record di velocità? Sicuramente il razzo, che è nato artigianalmente solo a questo scopo, è meglio... per il suo scopo! , ma già se lo metti nei tornanti... ma non solo, anche ammettendo che sia superiore per prestazioni, rimane difficile la manutenzione; modifiche e riparazioni in quanto necessita di interventi specifici al posto dei "generici" () meccanici che riparano Ferrari. (leggasi anche: reperibilità dei pezzi ecc.)
    Alla fine qual è meglio tra le due? Dipende... la devi usare per fare un unica gara? un campionato con più gare? usarla in città? Un po quello che dici tu: senza conoscere le necessità non puoi stabilire se una cosa sia migliore dell'altra.
    Ultima modifica di U235; 07-03-2023 a 20:57

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.