2015-07-10 10 views
5

La domanda è super-comune. Ecco il contesto; uno sviluppatore può creare un'applicazione di Windows mira piattaforma Windows universale (su Windows 10) con un ampio spettro di tecnologie:Come scegliere la tecnologia per un'app UWP Windowsfield greenfield?

  1. XAML/.Net
  2. XAML/C++
  3. HTML/JavaScript
  4. DirectX/.Net
  5. DirectX/C++

E questi approcci esotici:

  1. Cordova/PhoneGap
  2. Hosted Web Apps
  3. Compilato Objective-C
  4. Compiled Android Java (solo telefonico)
  5. Unità/MonoGame

Come è uno sviluppatore di scegliere?

+2

per richiedere consigli software/piattaforma è esplicitamente off-topic. –

+1

Con tutto il dovuto rispetto, Marc, ti preghiamo di notare questa domanda http: //stackoverflow.com/questions/396739/how-do-you-determine-what-technology-a-website-is-built-on? S = 2 | 3.0446 Questo è lontano dall'argomento, amico, perché è la domanda numero 1 che ottengo dagli sviluppatori sulla piattaforma di Windows che cambia, non sto scherzando. È altrove? SO è dove le persone per informazioni tecniche e rispondendo qui dà il forum corretto in cui le persone possono feedback sulle risposte. Non sono nuovo per SO, amico. Ottengo quello che stai cercando di dire, ma questa è una discussione tecnica importante per migliaia di sviluppatori che costruiscono Windows. –

+1

@ JerryNixon-MSFT La domanda che citi è stata chiusa come Off-Topic molto tempo fa. Quel tipo di domanda è stata Off-Topic per ANNI. – JasonMArcher

risposta

6

Naturalmente, la risposta è "dipende". La prima variabile da considerare è quale tipo di app stai considerando. Se vuoi scrivere un gioco, la scelta non è immediatamente ovvia. Questo perché ci sono app di logica che non si basano su un'interfaccia utente elaborata e su giochi coinvolgenti.

Giochi di logica

Perché XAML e HTML sono piattaforme molto più semplici per costruire semplice interfaccia utente, rende più senso che si potrebbe scegliere tra le seguenti opzioni:

  1. XAML/.Net
  2. XAML/C++
  3. HTML/JavaScript

La scelta tra questi tre è una questione di preferenza tecnologica. Ma vale anche la pena notare che ora iniziamo con XAML e andiamo in HTML quando necessario. Quello che voglio dire è che le nuove app di Windows dovrebbero considerare XAML come la loro tecnologia di partenza e sceglierne altre se sono necessarie.

Un motivo per cui è possibile scegliere HTML è se sono già stati creati diversi asset HTML che si desidera riutilizzare. Naturalmente, è anche possibile incorporare il controllo XAML WebView in un'app XAML e utilizzare tali risorse HTML senza richiedere un'app Web completa. A tal fine, XAML rimane la scelta più praticabile.

Immersive Games

Perché HTML e DirectX hanno notevoli investimenti da parte di aziende di terze parti e la comunità per i giochi, ha più senso di scegliere tra le seguenti opzioni:

  1. DirectX /.Net
  2. DirectX/C++
  3. Cordova/PhoneGap
  4. Hosted Web Apps
  5. Unità/MonoGame

Vale la pena per ricordare che questo articolo è circa apps "greenfield", ma anche così il sopra le tecnologie sono le tecnologie di scelta per il 99% dei giochi in Windows Store.

La prossima categoria di app viene in genere definita app di produttività. E hanno fondamentalmente due sottocategorie: consumatore e commerciale. Le app consumer sono pubbliche, mentre le app commerciali sono in genere una linea di app aziendali.

applicazioni di consumo

applicazioni pubbliche hanno quasi nessun requisiti tecnologici diversi da dare una piena fedeltà, l'esperienza originaria per l'utente. Per queste applicazioni, si sceglie il seguente:

  1. XAML/.Net
  2. XAML/C++
  3. HTML/JavaScript
  4. Cordova/PhoneGap
  5. Hosted Web Apps

Il La ragione per cui Cordova è inclusa è perché è, fondamentalmente, l'opzione HTML con l'ulteriore vantaggio della multipiattaforma. Se il cross-platform è un requisito, è un'ottima scelta. Vorrei sottolineare che Xamarin può anche abilitare le app .Net come multipiattaforma.

A volte la multipiattaforma non è in cima alla lista. A volte, è davvero un'app per Windows. E quando ti trovi in ​​quel tipico punto di partenza, devi iniziare con XAML/.Net. Perché? Ci sono diversi motivi

Primo, XAML sta diventando la piattaforma UI premium per Windows. molti nuovi aspetti del sistema operativo Windows 10 sono scritti in XAML (come Start, File Explorer, ecc.) Inoltre, Office è ora anche un'app XAML.

Secondo, la maggior parte dei campioni e il supporto della comunità sono in XAML/.Net. Ciò significa che, indipendentemente dalle competenze tecniche primarie del tuo team, il supporto continuo dovrebbe essere gradualmente più semplice grazie alla popolarità di XAML.

Terzo, .Net (come C#) è uno dei linguaggi di programmazione più logici, potenti e semplici che è possibile scegliere. Supporta facilmente progetti da piccoli a giganteschi. Inoltre, con Net Nativi, lingue Net compilare al metallo ed eseguire a livelli vicino-C++ su Windows 10.

Commerciale/Line of Business

applicazioni commerciali sono un grosso problema e richiedono alcuni gravi investimento. Perché? Perché sono destinati a gestire attività commerciali. Devono essere testati, scalabili e performanti. Devono essere integrati e agili.Tutti questi sono a volte parte delle app di consumo, ma poiché un'azienda può vivere o morire in base alla sua infrastruttura, le app LOB sono un investimento più serio.

Per le app commerciali, selezionare XAML/C#.

Ecco il motivo per cui.

Poiché si sta scrivendo un'applicazione per Windows 10 in primo luogo, posso supporre che la vostra azienda sia basata su Microsoft o Microsoft-friendly. Questo significa che il tuo team di sviluppo è probabilmente già esperto nelle competenze di base necessarie per fornire un'eccellente app XAML/.Net.

Inoltre, come i controlli di terze parti vengono rilasciati dai nostri fornitori di componenti come Infragistics, vedrete i controlli orientati all'azienda scritti in XAML? Perché? Poiché molti di questi controlli sono già stati rilasciati per WPF e verranno convertiti per WinRT con l'aumento della richiesta.

In aggiunta a, Visual Studio gestisce, crea, verifica e analizza i progetti .Net in modo completo e comprovato. Stai scrivendo con la piattaforma Microsoft UI e lo automatizzi con la piattaforma di sviluppo Microsoft. la maggior parte delle aziende preferisce avere il minor numero di parti mobili possibile e questo è puro quanto basta.

Inoltre,, molte aziende hanno già effettuato investimenti significativi nei loro sistemi LOB e hanno molti preziosi investimenti da riutilizzare nella loro app Windows. L'app per Windows sostituisce il LOB? Probabilmente no. Sta completando o complimentando un sistema esistente? Più che probabile, sì.

Conclusione

Quindi, quando si dovrebbe usare C++? Permettimi di condividere un segreto con te. Quasi tutte le app Microsoft MSN di prima parte che vengono fornite in-box con Windows 10 sono scritte come XAML/C++. Questo perché le prestazioni cross-device sono fondamentali per le nostre app. Significa che le tue app dovrebbero essere scritte in C++? Nella maggior parte dei casi, no.

Cosa succede se il mio team è un team Web e non abbiamo esperienza XAML o .Net? Prima di tutto, è improbabile. Ma andiamo con quello. Siamo sviluppatori, diamo il matto. La tecnologia non ci interessa. E, anche se le lingue variano, sono concettualmente uguali. L'apprendimento di tecnologie high-end come XAML e .Net valgono l'investimento quando si osserva più in basso il calendario in termini di prestazioni e impatto.

La realtà è che alcune persone potrebbero non essere d'accordo. E qualunque cosa qualcun altro dice è probabilmente giusto in qualche modo. Questa risposta fondamentale qui è, in generale, come stiamo fornendo una guida agli sviluppatori di campi verdi che iniziano con le nuove app di Windows 10 destinate alla piattaforma Windows universale. Questo non è un comandamento, solo una guida.

Se stai cercando di saperne di più sullo sviluppo di app di Windows 10 utilizzando XAML e C#, dai un'occhiata a questo corso gratuito di tre giorni su Microsoft Virtual Academy.https://channel9.msdn.com/Series/A-Developers-Guide-to-Windows-10

Infine, qui ci sono alcune caratteristiche che non si deve dimenticare:

  1. Dimensioni adattabilità su schermi
  2. Caratteristica adattabilità tra dispositivi
  3. Analytics con l'applicazione Insights
  4. Logging con il .Net Logging API
  5. Test & costruisce automatizzato sul TFS/VSO
  6. Localizzazioni in altre lingue
  7. supporto per le funzioni di automazione/accessibilità
  8. utilizzare l'archivio di implementare, l'aggiornamento e la licenza

Buona fortuna!

+1

Alcune risorse correlate: - [Win2D] (https://github.com/Microsoft/Win2D) un wrapper WinRT per Direct2D/DirectWrite utilizzabile da C# o C++, [DirectX Tool Kit] (https://github.com/ Microsoft/DirectXTK) una libreria C++ per scrivere app Direct3D 11, [SharpDX] (http://sharpdx.org/) fornisce assembly per l'utilizzo di API native Direct3D da C#. Supportano tutti UWP. –

+0

Molto perspicace. Devo leggere nella tua risposta che l'opzione HTML/Javascript è deprecata o almeno de-enfatizzata in futuro? Ho un'app di mappatura scritta in questo modo e ho notato che non riesco a trovare alcuna informazione sulle nuove funzionalità di mappatura di Win 10 da utilizzare in un'applicazione javascript. – joshb

+0

Puoi approfondire il motivo per cui nella maggior parte dei casi il C++ non è la scelta giusta? Quanto offre un vantaggio in termini di prestazioni? –

0

Sì, dipende, ma come risposta generale, direi C#, Visual Studio, Xamarin (tradizionale non moduli) con condivisione codice PCL, MVVMCross e un progetto UWP/XAML "piattaforma specifica/UI".

Problemi correlati