Newsgroup: it.comp.lang.visual-basic
Titolo: Windows Presentation Foundation.

Ciao a tutti,
stavo raccontando ad un amico programmatore il mio nuovo approccio con .NET e mi ha detto che essendo io alle prime armi, tanto varrebbe che mi dessi subito alla tecnologia in oggetto. Windows form è obsoleto.
Cosa ne pensate di questa "innovazione"?


Guarda, senza entrare nel merito specifico di cosa è obsoleto e cosa no, che qualcuno ti illustrerà sicuramente meglio di me, personalmente sono sempre un po' scettico nell'approccio "Già che stai cominciando a imparare X, tanto vale iniziare subito con tecnologia avanzata di X"...
Se sei abituato ad ambiente di sviluppo concettualmente simili a Windows Form, trovo più produttivo assimilare bene i fondamenti di .NET(ma vale per qualunque linguaggio) prima in una forma che ti è familiare, e poi casomai passare agli step successivi
A quel punto capirai meglio perchè hanno deciso un paradigma diverso, quali limitazioni di X volevano superare usando Y, e sei anche in grado di decidere con cognizione di causa quale è più conveniente per i tuoi scopi.


Sono d'accordo con il consiglio del tuo amico.
Ti conviene partire subito con WPF. All'inizio ti sembrerà ostico ma, una volta entrato nella giusta forma mentis, vedrai che sviluppare sarà molto semplice.
 
Nicola

"Nicola Ottomano"  ha scritto nel messaggio 
news:4f9e5e33$0$1386$4faf...@reader2.news.tin.it...

************************
 
+1
 
--
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
 
http://www.maurogsc.eu/
 
 



Ho compreso perfettamente il tuo concetto. Grazie!


Guarda, è da ieri che ho cominciato a studiarlo e mi sembra di aver trovato la soluzione che cerco da una vita.
Questo il paradigma MVVM e il relativo linguaggio XAML mi piacciono moltissimo e studiarli mi diverte, addirittura!


Google 1 eh!?
;-)

Il giorno domenica 29 aprile 2012 18:35:42 UTC+2, Fabrizio Alessandri ha scritto:

Mi piacerebbe leggere altre opinioni.
Qualcuno sviluppa già con questa tecnologia?
Vi è capitato di implementare WPF, su una preesistente struttura WinForm?
Grazie a tutti ragazzi.

"Fabrizio Alessandri"  ha scritto nel messaggio 
news:6482262.374.1335787806394.JavaMail.geo-discussion-forums@yny11...

***************************
 
Se il progetto è nato Form, rimane Form;
poi dipende dal contesto,
ma tendenzialmente è così.
L'utente ha familiarità con le Form,
io non voglio affrontare e proporre
nuove spese al cliente e ....
... quello che va bene, non si cambia!!!
;-)
 
Le cose nuove, solo WPF.



Certo Mauro.
Mi riferivo al caso dove viene chiesta una modifica/aggiunta. Se si è appreso il modello MVVM, si può intervenire facendo coesistere le due tecnologie inglobando l'una all'altra, o addirittura sovrapponendo la WPF al Form. Ovvio che va valutato il tempo, quindi i costi di tale operazione. Per fare una form nuova, non vedo le difficoltà ad inserirla con WPF, integrandola con le altre Form.
Considera anche che sono rimasto talmente affascinato da questa novità, che da ieri ho proseguito a studiare sino alle 4:00 stamani, quindi non sono certo un'esperto.

 Grazie a tutti ragazzi.
 
.m
 
-- 
blog @ //
milestone.topics.it
 
 
 

 semplicemente la manna dal cielo :-)
Avrei voluto usare le tue stesse parole, ma essendo io neofita non me la sono sentita :)
Per ora mi limito a raccogliere i Vs. preziosi pareri.
Da ciò che ho letto, mi ha entusiasmato il nuovo approccio d'astrazione e la conseguente ecletticità.
Mauro, hai qualcosa che ritieni opportuno segnalarci, in positivo o negativo?
Da stasera provo a scendere nel pratico. Non vedo l'ora!

 
 
Certo Mauro.
Mi riferivo al caso dove viene chiesta una modifica/aggiunta. Se si è 
appreso il modello MVVM, si può intervenire facendo coesistere le due 
tecnologie inglobando l'una all'altra, o addirittura sovrapponendo la WPF al 
Form. Ovvio che va valutato il tempo, quindi i costi di tale operazione. Per 
fare una form nuova, non vedo le difficoltà ad inserirla con WPF, 
integrandola con le altre Form.
Considera anche che sono rimasto talmente affascinato da questa novità, che 
da ieri ho proseguito a studiare sino alle 4:00 stamani, quindi non sono 
certo un'esperto.
*****************
 
I miei sono piccoli progetti.
Preferisco riscrivere e non sovrapporre.
 
Se penso ad un personaggio che ha postato qui poco tempo fa
e lo confronto con te, ti faccio davvero i complimenti per
l'entusiasmo e la positività che ci metti e per come
stai affrontando la cosa.


;-)

Fabrizio Alessandri ha spiegato il 30/04/2012 :

l'altra campana è la mia...se vuoi....
ho familiarità con winform perchè il mio target c'ha ancora parecchi 
xp!
Eppure anche se non lo chiamo MVVM ...ho anche io una separazione fra 
strati abbastanza netta....
 
Odio silverlight+IE.... sviluppo per web....ultimamente parecchio in 
php...
 
WPF lo uso solo per progetti nuovi e ben mirati...mai per il web....
 
Alla fine però
una interfaccia è sempre e soltanto una interfaccia...pensa che gli 
ultimi 2 progetti son stati sposati dentro un server web proprio per 
far fare data entry e visualizzazione dati a pc linux,Mac,windows.
Zio Bill il compianto jobs i team manager di Ubuntu...tutti ci danno 
sotto la scrivania o sopra dei mega-iper-N-core a mille-mila 
GHZ...nella realtà in italia non è così!
 
Io trovo wpf inutile in progetti da vista in giù! o multi 
pc...ovviamente non sarà così...però per ora mi tengo stretto winform 
pur esseno pronto a cambiare appena mi conviene: perchè poi nella 
professione il metro sono i soldi e la lungimiranza per incrementarli!
:D
 
-- 
----- Italliaaaaa 3227! -----
Ho visto cose che voi umani non potreste immaginare... navi da 
combattimento in fiamme al largo dei bastioni di Orione. E ho visto i 
raggi B balenare nel buio vicino alle porte di Tannhauser. E tutti quei 
momenti andranno perduti nel tempo come lacrime nella pioggia. È tempo 
di morire...
 
Unità NEXUS6 Roy Batty N6MAA10816 Ment.LEV A
 
 

 una interfaccia è sempre e soltanto una interfaccia...
Hai detto nulla! Non è cosa di poco conto, anche se per gli sviluppatori è difficile metabolizzarlo, ma ha ed avrà sempre maggior importanza. Le applicazioni le usano le persone, non i computer. E WPF si propone proprio di colmare questo aspetto, creando una nuova figura professionale, di cui si sente davvero la mancanza.
Grazie!

Correva il 03/05/2012 e rincorrendolo Fabrizio Alessandri scriveva:
zac
 
 
Una interfaccia è solo una interfaccia....è un pezzo dell'applicazione 
che interagisce con l'utente.
 
Se il sw è fatto bene....io c'ho messo parecchio per imparare a 
farlo...
considera l'interfaccia come un pezzo OPZIONALE dell'applicazione...può 
non esserci...o puoi cambiarla quando vuoi!
 
Se ti trovi bene con WPF falla con quello...con winform...ok...in C++ 
...ok...in html+css ok...
 
Il problema casomai è che spesso l'interfaccia non è 
"ergonomica"...trovi su questo ng spessissimo "programmatori" che 
mettono 100 controlli in un form!!!Lo fanno NON per fare programmare un 
controller di stazione ferroviaria su monitor al plasma da 32 pollici 
eh!....ma per fare una gestione fatturazione su un 15 pollici!
Oppure trovi ciclicamente il post di quello che aggancia la tabella 
articoli riempita di 10.000 voci simili di riparelle e bulloni 
(distinte solo da un complicato codice) al combobox e poi non sa come 
filtrare il tutto perchè una combobox siffata è praticamente inutile 
per il cliente!
 
Per questi wpf o winform o html pari è!
 
-- 
----- Italliaaaaa 3227! -----
Il coraggio ce l'ho. E' la paura che mi frega.
(Totò)
 
 

 "ergonomica"... 
Esattamente. L'ergonomia è forse la scienza che maggiormente mi affascina sin dai tempi del buon vecchio "Gundam" ( ! ), dove ancora bambino, disegnavo le interfacce comandi per pilotare un robot con movimenti, appunto, umani!
Fra l'altro io (tenetevi forte) come formazione accademica e come attività principale, "sarei" un grafico. Quello che è venuto dopo è stato per necessità di adattamento.
Ecco anche perchè mi affascina il WPF.
 
P.S.
tanto per sdebitarmi, se qualcuno avesse problemi sulla grafica in senso lato, sarei lieto di aiutarlo e magari gli lascio il link dei forum dove scrivo.


Premetto che non sono ancora molto esperto di .NET  (sono più pratico di
VB6)
 
Non ancora del tutto "ambientato" nel .NET ho provato ad usare WPF.
 
La creazione dell'interfaccia ovviamente non è un problema... e qualche
*piccola* modifica la posso fare anche direttamente nel codice.
 
Personalmente mi sono scontrato con le troppe differenze nell'usare i
controllo o nel fatto che non tutti i controlli sono presenti...
Ovviamente ho sbagliato in pieno nel decidere di provare WPF con un
progetto piccolo (fin qui OK) ma che contavo di chiudere in pochissimo
tempo.
 
Per ora sono ritornato al WF e il WPF lo rispolvererò con qualche
progetto su cui non ho particolarmente fretta e dove quindi avrò più
possibilità di soffermarmi a studiare :-)
 
 
-- 
Daniele Pinna  (leva oops. per rispondere)
Utente Skype: dapinna
Sito Web: 
http://www.dapinna.com
 
Il Docfa in Pillole:  
http://www.ildocfainpillole.it
 
DAPINNA.COM
 su Facebook:
www.facebook.com/pages/Sassari-Italy/DAPINNACOM/110085322371199
 
-----
*** And Now Powered by Linux KUbuntu 12.04 "Precise Pangolin" ***
 

 controllo o nel fatto che non tutti i controlli sono presenti...
Non ho capito. Puoi provare a spiegarmi meglio? Mi interessa.
Grazie in anticipo.


Non ricordo i dettagli :-(
 
Ho trovato differenze nell'uso di alcuni controlli e altri controlli, mi
pare una griglia, che non trovavo... o meglio avrei dovuto usarne
un'altra da collegare ad un DB per popolarla.
 
In alternativa potevo usare dei controlli di terze parti a pagamento.
 
Tra l'altro poi sul NG mi avevano dato un esempio su come popolare
quella griglia senza collegarla realmente ad un DB, ma ormai stavo
rifacendo il progetto in WF :-)
 
Ovviamente ho provato quell'esempio e ha funzionato...


 
 
Probabilmente ti riferisci alla DataGrid che, con il FW 3.5 non era presente nativamente ma bisognava installare il toolkit (comunque gratuito) o, in alternativa, utilizzare la listview.
Con il FW 4.0 la Datagrid è stata aggiunta direttamente nel framework.
 
Nicola

Mi sapete dire se WPF su WinXP, viene rappresentato come su Seven, con angoli arrotondati, trasparenze, etc. (non ho una macchina XP dove fare le prove)? 
Grazie!

 Grazie!


        Dim A As MauroGentile
        While A = A
            MsgBox("Grazie Mauro!")
        End While

Vorrei fare il punto, ad oggi.
 
Seppur concettualmente trovi WPF illuminante (sono un grafico) e che consenta grandi cose, oltre alle lodi ci sono anche le critiche; guai se mancassero.
Anche in rete il sentore non è molto positivo e nell'ultimo anno, si aggiunge la presunta poca longevità della tecnologia, a vantaggio dell'adozione dell'HTML5. Quest'ultima possibilità, non la vedrei nemmeno inopportuna.
Per quanto mi riguarda non è un problema, cominciando ora, anche se devo riconoscere che a volte sono rimasto davvero spiazzato.
Stasera ho completato il mio primo "CommandBindings" ed ho capito perchè mi trovassi così poco a mio agio con WPF. Immagino sia normale. Però mi pare di intuire che chi ha dimestichezza con l'OOP, è avvantaggiato. Viceversa, chi come me (non sono un esperto) proviene da un linguaggio procedurale (VB). Forse è per questo che rimane ostico a molti.
 
Tornando al command binding, il solo fatto della "disponibilità" del comando è eccezionale. Pensate che avevo scritto il seguente codice, per gestire la pulsantiera di navigazione dei record e diventandoci scemo:
 
    Public Sub ControllaRecord(pulsante As Button)
 
        Select Case pulsante.Name
            Case Is = "Avanti"
                If MagazzinoViewSource.View.CurrentPosition < CType(MagazzinoViewSource.View, CollectionView).Count - 1 Then 'se è il penultimo o inferiore
                    MagazzinoViewSource.View.MoveCurrentToNext()
                    Me.InizioRecord.IsEnabled = True
                    Me.Indietro.IsEnabled = True
                    Me.Avanti.IsEnabled = True
                    Me.FineRecord.IsEnabled = True
                    'MessageBox.Show(MagazzinoViewSource.View.CurrentPosition & "  " & CType(MagazzinoViewSource.View, CollectionView).Count)
                    If MagazzinoViewSource.View.CurrentPosition = CType(MagazzinoViewSource.View, CollectionView).Count - 1 Then 'se è l'ultimo
                        Me.InizioRecord.IsEnabled = True
                        Me.Indietro.IsEnabled = True
                        Me.Avanti.IsEnabled = False
                        Me.FineRecord.IsEnabled = False
                    End If
                End If
            Case Is = "Indietro"
                If MagazzinoViewSource.View.CurrentPosition > 0 Then ' se è il 2° o superiore
                    MagazzinoViewSource.View.MoveCurrentToPrevious()
                    Me.InizioRecord.IsEnabled = True
                    Me.Indietro.IsEnabled = True
                    Me.Avanti.IsEnabled = True
                    Me.FineRecord.IsEnabled = True
                    If MagazzinoViewSource.View.CurrentPosition = 0 Then 'se è il 1°
                        Me.InizioRecord.IsEnabled = False
                        Me.Indietro.IsEnabled = False
                        Me.Avanti.IsEnabled = True
                        Me.FineRecord.IsEnabled = True
                    End If
                End If
            Case Is = "InizioRecord"
                MagazzinoViewSource.View.MoveCurrentToFirst()
                Me.InizioRecord.IsEnabled = False
                Me.Indietro.IsEnabled = False
                Me.Avanti.IsEnabled = True
                Me.FineRecord.IsEnabled = True
            Case Is = "FineRecord"
                MagazzinoViewSource.View.MoveCurrentToLast()
                Me.InizioRecord.IsEnabled = True
                Me.Indietro.IsEnabled = True
                Me.Avanti.IsEnabled = False
                Me.FineRecord.IsEnabled = False
                'Case Else
        End Select
 
    End Sub
 
Con il CanExecute lo fai molto più semplicemente e con una logica "scaricata da responsabilità". Sono oggetti aggiornati automaticamente, allo scatenarsi di alcuni eventi.
Se mi aspettano altre sorprese simili, non vedo l'ora !
 
Mi farebbe piacere sentire pareri al riguardo.
 
F.

 di alcuni eventi. Se mi aspettano altre sorprese simili, non vedo l'ora !
 
I command sono una figata pazzesca, non sono nulla di nuovo, chi arriva 
da Delphi adora le Action che sono la stessa cosa concettualmente, la 
figata dei command ï¿œ la potenza che ottieni quando uniti con il 
processo di Data Binding.


 processo di Data Binding.
 
Adesso sto appunto approfondendo questo aspetto.
 
Grazie dell'intervento Mauro.

Ciao a tutti,
documentandomi in rete su WPF, mi sono imbattuto in questo thread, peraltro recente:
http://www.hwupgrade.it/forum/showthread.php?p=38139002
 
 
Mi farebbe piacere conoscere i Vs. pareri, dato che si tratta del confronto di velocità con WinForm.
Grazie.

 di velocitï¿œ con WinForm. Grazie.
 
ho letto la domanda e immediatamente chiuso la pagina...che cosa ci 
azzecca li in mezzo WPF?
 
quello carica un file di testo e lo risalva non dice neanche se ha, non 
tanto come ma proprio neanche se ha, una interazione con la UI...quello 
ï¿œ un maga fail in partenza :-D


 blog @ //
milestone.topics.it
 
 
Edddddai, fai uno sforzo, che la UI viene trattata (poco...)!
Po ti sei perso il meglio, cioè l'attribuire la colpa dei rallentamenti all'adozione del paradigma MVVM! :-D
Allora posso dormire sonni tranquilli?!

 Allora posso dormire sonni tranquilli?!
 
ï¿œ demenziale, fine.


Grazie:-)

 Allora posso dormire sonni tranquilli?!
 
Ribadisco quanto scritto da Mauro: il caricamento di un file non ha alcuna
interazione con l'interfaccia. Il programma avrebbe prestazioni identiche sia
che fosse un exe da console, che un Windows Forms che un WPF.
Questo, ovviamente, a patto che non si facciano cappellate particolarmente
suicide come leggere una riga e assegnarla ad una ObservableCollection in
binding con l'interfaccia.
 
In ogni caso, si, puoi dormire sonni tranquilli altrimenti avrei problemi di
insonnia anche io che sviluppo un sw in WPF che digerisce su alcuni clienti
quei 100.000.000 (cento milioni) di record per volta. ;-)
 
Nicola

HEHEHEH!
Ammettilo dai, ti sei fatto due risate?!
La parte relativa al MVVM è la miglior battuta di sempre o no?! :-D
 
Grazie 100.000.000 Nicola, grazie a te butterò via le camomille ;-)
F.