2012-04-03 9 views
14

Ieri ho iniziato a sviluppare la mia prima App in stile Metro utilizzando JavaScript. Ho usato uno di quei modelli in Visual Studio 2011. Questo modello di progetto viene fornito con un gruppo di codice generato che si basa molto su WinJS. L'intera struttura ricorda ASP.NET con le sue viste e i corrispondenti file Code Behind. C'è anche un file navigator.js che è responsabile della navigazione tra le Views. L'intero dato risiede nel data.js e può essere recuperato utilizzando diverse funzioni.App Metro Style: WinJS è un must?

Ho lavorato con backbone.js e ho trovato i suoi concetti come la struttura MVC e il routing piuttosto interessanti. La mia domanda è fondamentalmente se è possibile implementare un'app di tipo Metro con backbone.js? Posso eliminare WinJS e iniziare da zero? Dovrei provare ad integrare backbone.js nella struttura attuale? Come sarebbe allora? Esistono restrizioni per l'utilizzo di framework JavaScript di terze parti? Dovrei lasciare la struttura generata così com'è?

Quali sono le best practice e i modelli che sviluppano le App Metro Style con JavaScript?

Grazie

risposta

9

È possibile utilizzare qualsiasi framework JavaScript che ti piace all'interno di un'applicazione JavaScript in stile Metro. Vedere questa domanda correlate su jQuery:

jQuery and Windows 8 JavaScript Metro Style Apps

Il quadro WinJS esegue un paio di funzioni, il primo è un insieme di API non-UI per la gestione e la manipolazione dei dati, rendendo le richieste di servizio, ecc ... Queste sono facilmente sostituito con altri framework JavaScript. Il secondo è il livello dell'interfaccia utente, qui potresti fare fatica un po '. L'interfaccia utente di WinJS è stata progettata per seguire Metro Design Language. Se lo sostituisci con il tuo stesso livello di interfaccia utente (utilizzando l'interfaccia utente jQuery, ad esempio), l'applicazione non sembrerà corretta.

Personalmente userei WinJS per il livello dell'interfaccia utente e per integrarlo con il runtime (persistenza dello stato, commutazione app ecc ...), ma usare una libreria JavaScript standard, come Backbone o Knockout per la maggior parte del mio codice per garantire la portabilità.

+0

Grazie ColinE per le buone idee! Sto ancora cercando di visualizzare una tale architettura. Sostituirò la logica in navigator.js con il routing dello stile backbone? C'è bisogno di Backbone.View o mi collegherò all'interfaccia utente di WinJS con i suoi modelli e associazioni? O dovrei avvolgere il codice UI WinJS dietro in un Backbone.View? Ci sono ancora alcuni eventi che controllano il ciclo di vita dell'Applicazione come l'evento "pronto" quando viene eseguito il rendering della Vista. Dove dovrei gestirli? È bello rendersi conto che è possibile utilizzare altri framework ma la loro integrazione causa il mal di testa – Helikaon

+3

WinJS è costituito da tre parti: il foglio di stile, il file base.js e il file ui.js. Se si prende la dipendenza dal foglio di stile, non si avranno problemi a farlo sembrare "giusto". –

+1

Voglio davvero sapere se c'è un qualche tipo di aumento delle prestazioni dall'utilizzo di WinJS per cose come i binding, qualcuno ha qualche informazione su questo? –

0

Io uso Knockout js e Require js per MVVM. Per gli effetti visivi, utilizzo jQuery.

miei dati-principale si presenta come un po 'questo:

(function() { 
    "use strict"; 

    var app = WinJS.Application; 

    app.onactivated = function (eventObject) { 
     require(["/scripts/knockout"], function(ko){ 
      // My knockout viewModel and data binding goes here 
     }); 
    }; 

    app.start(); 
})(); 

Se preferite Backbone al posto, credo che la messa a punto sarebbe simile.

Problemi correlati