2009-11-18 13 views

risposta

3

Quando non si vuole dipendere da un browser per eseguire il proprio lavoro, quando si ha bisogno di accesso completo e veloce al file system senza una conferma preliminare, quando si fa il parsing con bit di codice non sicuri. Questi sono i pochi a cui riesco a pensare, ma potrebbero anche essere altri motivi, a seconda delle funzionalità di Silverlight 4 e del loro funzionamento.

+1

Hai guardato l'elenco delle nuove funzionalità di Silverlight 4 che Scott Guthrie ha annunciato oggi al keynote del PDC? Silverlight 4 ** includerà l'operazione fuori dal browser e l'accesso al file system. Interop con codice non sicuro sarà comunque un esclusivo WPF. –

+1

L'accesso al file system OOB verrà incluso solo per le applicazioni "attendibili". L'utente riceverà un avviso aggiuntivo durante l'installazione che gli consente di sapere che questa applicazione vuole essere considerata attendibile. –

9

Ho utilizzato principalmente XBAP per le distribuzioni di browser in attesa di una versione di Silverlight che include le funzionalità complete di associazione di modelli e dati di WPF. Forse Silverlight 4 lo farà.

diverse cose che Silverlight 4 sicuramente non sarà in grado di fare sono:

  • permettono di integrare senza problemi i vostri WinForms e componenti di interfaccia utente MFC con l'applicazione
  • efficiente di lavorare con strutture di file di dati in origine definito in C/C++ (con WPF si può semplicemente copiare il codice in tutto e facilmente replicare il codice originale C++ utilizzando unsafe e StructLayoutAttribute)
  • includere il codice non gestito C++ nell'applicazione

Non ho ancora scaricato la versione beta di Silverlight 4, quindi questa lista è necessariamente incompleta.

11

WPF ha ancora funzionalità di rendering 3D molto più complete.

Inoltre, anche se hanno annunciato miglioramenti al comando e capacità di legame, che è alcuna garanzia che si avrà la capacità piena che WPF attualmente ha o avrà nella prossima versione

Edit: Dopo aver suonato in giro con Silverlight 4 beta, sembra che praticamente tutte le nuove funzionalità (webcam, accesso ai file, tastiera a schermo intero, interoperabilità COM, ecc.) funzionino solo quando l'applicazione ha un livello elevato di attendibilità e il trust elevato può essere abilitato solo quando si esegue il browser. Alcuni di questi possono cambiare da RTW, ma per ora, WPF sembra ancora l'unico modo per fare queste cose all'interno di una finestra del browser

+1

Anche se è vero, non ho mai usato la resa 3D in nessuna cosa, certamente non è un'applicazione LOB. –

+0

La webcam non richiede un elevato livello di attendibilità: semplicemente una finestra di autorizzazione simile a quella che richiede l'accesso agli Appunti. –

3

La prossima versione di Visual Studio non verrà scritta in Silverlight;) Non posso attendi per scrivere un'utilità Audio in WPF --- e Silverlight deve essere protetto da lontano dall'incredibile sottosistema di Windows Audio. Tuttavia, posso vedere il giorno in cui WPF sarà chiamato Silverlight (o forse il contrario).

+0

Sì - è un peccato per la mancanza di accesso al sottosistema audio - tuttavia SL4 ha accesso al flusso di input audio dai dispositivi microfono, quindi c'è un po 'di movimento in quest'area. Tuttavia, l'accesso API al sottosistema audio completo sarebbe probabilmente problematico dal punto di vista della sicurezza ... –

+0

Il supporto per microfono Silverlight lo allinea con le specifiche di Flash --- cool! – rasx

0

Se si desidera eseguire l'accesso diretto al database tramite ADO.NET che non è qualcosa che sarà possibile eseguire in Silverlight 4. L'accesso ai dispositivi sarà ancora limitato anche se ora si avrà supporto per la stampa e webcam/microfono. Non ho sentito nulla sul supporto a 64 bit, quindi se vuoi offrire una versione a 64 bit della tua app avrai bisogno di WPF. Penso anche che Silverlight 4 possa fare un uso migliore della GPU, ma non sarà ancora al livello utilizzato da WPF.

Ci sono anche una tonnellata di altri assembly nel framework .NET che Silverlight non include, quindi se avete bisogno di uno di quelli avrete bisogno di andare a WPF.

Proprio come HTML5 ridurrà la necessità di un plug-in come Flash o Silverlight in alcuni casi, Silverlight ridurrà la necessità di WPF ma ci sono ancora molti casi in cui ne avrai bisogno.

2

Le applicazioni che scriviamo oggi (nella nostra azienda) non utilizzano nulla che non sia supportato da Silverlight eccetto connessioni locali TCP/IP senza limitazioni.

Questo è l'unico motivo per cui utilizziamo WPF. Se potessimo usare Silverlight (modalità desktop) saremmo in grado di offrire ai nostri clienti la scelta di lavorare su sistemi Mac (e Linux) invece di essere costretti (da noi?) A per utilizzare una versione recente di Windows (rimarrai sorpreso dal numero di aziende che utilizzano ancora versioni (parzialmente) non supportate).

Anche in WPF proviamo a limitare l'accesso al sistema, creiamo la nostra sandbox e proviamo a non andare al di fuori di esso. (Non richiedere mai diritti di amministratore, non accedere mai a cose che non devi)

Quindi per quello che facciamo, Silverlight + supporto per tcp/ip reale sarebbe più che sufficiente ... ma c'è ancora spazio per WPF e sono abbastanza sicuro che sia qui per restare.

Tutto dipende da cosa stai costruendo.

1

Silverlight favorirà sempre i piccoli carichi utili sulla funzionalità. Strategicamente, Microsoft tenterà di sfruttare le offerte di Adobe utilizzando Silverlight, mentre WPF sarà in competizione con altre piattaforme pesanti. Se guardi al WPF 4 noterai una spinta verso caratteristiche di peso più pesanti. Cerco di tenere a mente che WPF è iniziato come Avalon che era destinato a spostare permanentemente Win32. Non sarò sorpreso se un giorno Windows XX è WPF "nativo" e Win32 verrà emulato.

0

WPF è ancora necessario se è necessario eseguire modifiche estese di Rich Text (FlowDocument). Silverlight 4 ha il nuovo RichTextBox, ma è limitato a contenuti di base e non fornisce il set completo di funzionalità disponibili in FlowDocuments in WPF. Un oggetto FlowDocument può fare efficacemente ciò che può fare RichTextBox di WinForms; ma se hai solo bisogno delle basi, un RichTextBox in Silveright può fare ciò di cui hai bisogno.

-1

La linea di fondo è che la luce argento è limitata a. Quindi, se hai intenzione di utilizzare una tecnologia meno capace, dovresti avere una ragione convincente per farlo. L'unico che riesco a inventare, ed è grande in alcune circostanze, è che Silverlight è più indifferente alla piattaforma. Non riesco a immaginare nessuno volendo per portare il browser e tutti i suoi mal di testa in una soluzione. Ci deve essere una buona ragione.