Domanda

Sembra che Silverlight/WPF rappresentino il futuro a lungo termine per lo sviluppo dell'interfaccia utente con .NET.Questo è fantastico perché, come posso vedere, il vantaggio di riutilizzare le competenze XAML sia sul lato client che su quello dello sviluppo web.Ma guardando WPF/XAML/Silverlight sembrano tecnologie molto grandi e quindi qual è il posto migliore per iniziare?

Vorrei sentire qualcuno che abbia una buona conoscenza di entrambi e possa consigliare quale sia un punto di partenza migliore e perché.

È stato utile?

Soluzione

Dovresti prima imparare ASP.NET o Winforms?ASP o MFC?HTML o VB?C# o VB?

Metti da parte l’idea che esista una progressione logica attraverso quello che è diventato un insieme di tecnologie intrecciate altamente complesso, fai un passo indietro e poniti una serie di domande:

  • Quali sono i tuoi obiettivi;come vuoi bilanciare il profitto con il divertimento
  • Sei orientato al breve termine o al lungo termine
  • Sei il tipo di persona a cui piace diventare bravo in qualcosa e farlo spesso o ti annoi una volta che lo capisci appieno?

Il passo successivo e più difficile è arrivare ad accettare che qualsiasi consiglio ti venga dato è destinato a essere sbagliato;e più lungo è l'orizzonte temporale, più è probabile che sia errato.Se il consiglio dura da più di sei a 12 mesi, la probabilità che il consiglio sia completamente errato si avvicina a 1.

Posso solo raccontarvi la mia storia, velocemente.Nel 2000 ero felice come consulente lavorando con profitto in C++ su applicazioni Windows, scrivendo di ASP.NET e WinForms.poi ho visto C# e il mondo si è capovolto.Non sono mai tornato indietro.

Due anni fa ho avuto lo stesso tipo di rivelazione, solo un ordine di grandezza più grande, più forte e con più convinzione su Silverlight.Sì, WPF è magnifico e può darsi che io sia tutto bagnato per questo, ma credo nel mio istinto che Silverlight cambi tutto.Non c'erano dubbi allora e non ci sono dubbi oggi che Silverlight sia la piattaforma di sviluppo più importante per Microsoft dai tempi di .NET (certamente) e forse dal passaggio al C++.

In poche parole, ecco perché.Non capisco dove siano i suoi limiti.Con la maggior parte delle piattaforme faccio:puoi fare questo, ma non puoi fare quello.WPF è un ottimo esempio calzante, così come ASP.Net e WinForms e, beh, davvero tutto fino ad ora.
Con Silverlight non vedo ancora i confini.Silverlight è già passato dal desktop ai telefoni e non vedo alcun motivo per cui si fermi qui.Sì, è vero, è vincolato dal browser, ma lo vedo meno come una cella di prigione che come un carro armato in cui Silverlight percorrerà un sacco di terreno (dev'essere molto tardi, dovrei andare a letto).

In ogni caso, per ora, imparare Silverlight è un gas, c'è molto materiale sul Sito Silverlight.net, e la cosa migliore dell'apprendimento di Silverlight è che se non vedi ciò di cui hai bisogno puoi contattarmi e mi assicurerò che tu lo ottenga abbastanza rapidamente.

Divertiti, buona fortuna e il piccolo sporco segreto è che starai bene qualunque cosa tu scelga.È tutto solo software.

-Jesse


Jesse Libertà"Geek di Silverlight"

Altri suggerimenti

Direi di andare prima con Silverlight!

Ho già programmato con WPF e Silverlight.

Ma poiché Silverlight è un file sottoinsieme di WPF se vai troppo in profondità e provi a passare alla scrittura di applicazioni Silverlight, ti gratterai la testa cercando quel "tag" che hai imparato ad amare in WPF ma che non è disponibile in Silverlight.

Quando padroneggi prima le cose di base in Silverlight, il meccanismo/trigger/qualsiasi funzionalità extra in WPF sarà semplicemente aggiungere alla maggior parte di ciò che già sapevi.

Silverlight in WPF differisce in termini di caratteristiche livello, non solo alcuni controlli o animazioni mancanti.Prendiamo ad esempio il meccanismo di trigger WPF, che non è completamente disponibile in Silverlight.

Quindi, imparando prima il sottoinsieme più piccolo, puoi estendere quella conoscenza al set completo in seguito, ma se hai iniziato con il set completo e diventi dipendente da alcune delle sottigliezze disponibili, avrai problemi in futuro quando qualcuno ti chiederà di trasferire le tue app WPF progettate e utilizzate in Silverlight.

Andrò controcorrente e dirò di imparare prima WPF.

Ecco il mio ragionamento:

  • Per WPF sono disponibili molte più risorse rispetto a Silverlight, ad esempio libri, blog e documentazione msdn

  • Non hai a che fare con un bersaglio Beta in movimento

  • Non devi occuparti di lavorare solo con chiamate asincrone

  • Non limitato dalla mancanza di funzionalità come Dizionari uniti, Trigger, TileBrush, ecc.

  • Non devi preoccuparti di reimparare a fare le cose correttamente a causa della mancanza di funzionalità in SL

Silverlight è una versione ridotta di WPF, quindi dovrebbe contenere meno cose da imparare al suo interno.D'altra parte, le due piattaforme hanno target diversi (web e rich client), quindi immagino che dipenda da quale app costruirai.
Se vuoi solo imparare da solo (nessuna app nel prossimo futuro) sceglierei Silverlight perché sarebbe meno da assimilare.Tuttavia, Silverlight è praticamente un obiettivo in movimento, molto più di WPF, quindi dovrai tenere il passo con alcuni cambiamenti di tanto in tanto (le gioie di essere uno dei primi ad adottarlo :)).
WPF ha molte più cose che probabilmente vorrai utilizzare prima o poi, ma aspetterei prima che si presentino le necessità.

Tutti gli esperti del settore che ho sentito in podcast, blog e interviste consigliano l'apprendimento Innanzitutto Silverlight per poi passare gradualmente a WPF, che è un enorme framework di interfaccia utente.

Silverlight è leggero e ti consente di lavorare su un sottoinsieme più piccolo di controlli e funzionalità in modo da farti capire questo nuovo paradigma di creazione dell'interfaccia utente basato su:

  1. Modelli
  2. Associazione dati
  3. Stili

Aggiornamento:07/2011

Odio dirlo, ma negli ultimi tempi Microsoft si è concentrata maggiormente su HTML5, Javascript e CSS portando avanti le potenzialità di IE 9 e IE 10, nonché del prossimo Windows 8.

Sempre più sviluppatori e CTO sono scettici riguardo a Silverlight come piattaforma applicativa LOB con il passare del tempo; sospettiamo che Silverlight sarà limitato a Windows Phone e ad aree di dominio di nicchia come l'assistenza sanitaria di applicazioni relative alla grafica piuttosto che a una normale app LOB.

Come sembra in questo momento, a partire dall'estate 2011, il futuro potrebbe apparire frammentato con maggiori opportunità per le tecnologie web pure (HTML5, JS e CSS) rispetto a plugin e tecnologie di interfaccia utente specifiche del sistema operativo.

Inizierei imparando XAML, leggendo alcuni tutorial e giocando con XAMLPad.Questo ti darà un'idea delle nozioni di base prima di creare effettivamente un'app.

Inizierei con WPF e eseguendo esempi di familiarizzazione del controllo molto semplici.Il tuo obiettivo dovrebbe essere quello di imparare XAML e Binding.Pertanto, se crei solo alcune app per finestre WPF di base, la tua velocità di apprendimento verrà avviata.Quindi alla fine puoi passare a Silverlight.Sì, come altri menzionati qui, Silverlight è un sottoinsieme di WPF.

Beh, dipende da cosa lavorerai.Se stai lavorando su client/server, allora sceglierei WPF.Se lavori in un ambiente in cui puoi garantire che .Net sia installato su tutte le macchine, allora sceglierei anche WPF, perché puoi utilizzare quello che viene chiamato XBAP, che è un'applicazione WPF eseguita tramite il navigatore.

Dipende davvero da te.Tuttavia, direi che Silverlight non è ancora RTM e WPF lo è.WPF ha molti libri sull'argomento, mentre Silverlight no.Potrebbe essere più semplice acquisire l'intero Zen di WPF leggendo alcuni di quei libri e poi tuffarti in quello con cui vorresti giocare.

Tieni presente che Silverlight ha un sottoinsieme dei controlli di WPF, un framework .Net abbinato e non esegue chiamate sincrone.Finché lo sai in anticipo, puoi iniziare ad apprendere il nocciolo dell'intera base e adattare la tua esperienza pratica in seguito a qualunque tecnologia sia la migliore per te.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top