6

Ho lavorato con ASP.Net MVC negli ultimi due anni. Mi sono davvero abituato a sviluppare usando questo modello. Per quanto riguarda il front-end, finora JQuery è stato più che sufficiente per ciò di cui ho bisogno.I servizi web dovrebbero essere utilizzati per creare interi siti web?

Tuttavia, col passare del tempo, sento sempre più che AngularJS è la strada da percorrere e che JQuery sta diventando "un po 'obsoleto".

Ecco perché ho studiato alcune opzioni per integrare AngularJS nel mio progetto corrente. Ci sono alcuni fatti importanti da prendere in considerazione:

  • angolare ha più senso per le ZPS (pagina singola applicazione) di quanto non faccia per i non-ZPS;

  • Angolare è un Framework, JQuery è una libreria;

  • Nel paradigma ASP.Net MVC, di solito inviamo al client HTML semplice. Nei progetti Angular, i dati vengono solitamente inviati al client tramite JSON;

  • Angolare e Rasoio non si combinano bene. Razor è un'astrazione per aiutare i programmatori a rendere l'HTML complesso (e talvolta non così complesso). Con angolare, la vista non verrà creata sul lato server, sarà piuttosto creata sul lato client da un modello trasmesso da JSON (es.);

  • Angolare va di pari passo con Web API (o qualsiasi altro servizio Web), mentre JQuery va di pari passo con i controller ASP.Net MVC;

Conclusione: Mi corregga se sbaglio, ma sembra che il lato server della maggior parte delle applicazioni che utilizzano angolare sono composti da nulla, ma web-services.

La mia domanda è: i webservices dovrebbero essere utilizzati per creare interi siti web? Apparentemente, questo è esattamente ciò che sta accadendo con la nuova ondata di applicazioni angolari.

+2

Dipende da cosa stai costruendo. Se si tratta di un sito web * * con molte pagine con diversi markup, è più semplice eseguire il rendering di tutto sul server. Se si tratta di più di un'applicazione web * *, con un'interfaccia utente relativamente fissa e le modifiche principali sono dati, allora ha senso richiedere solo i dati dal server. – user888734

+3

Angular and Razor possono funzionare bene insieme in alcuni scenari. Ho reso le mie viste angolari rese da rasoio in alcuni progetti. Può essere d'aiuto se ad esempio hai un modulo con molti markup ripetitivi. –

+1

Sono davvero sorpreso che questa domanda non sia stata chiusa in quanto off-topic/principalmente basata sull'opinione quando la prima volta l'ha chiesta. Quale risposta ti aspetti di ottenere qui? "Sì no forse"? – DavidG

risposta

5

Per rispondere alla domanda Should webservices be used to create entire websites? SÌ ... se una SPA che comunica con risorse lato server è un requisito.
Se questo è un buon requisito dipende dalla risposta ad altre domande come:
Abbiamo davvero bisogno di una SPA?
Abbiamo le capacità di sviluppo per costruire una SPA? In caso contrario, desideriamo assumere o abilitare gli sviluppatori esistenti e assumerci questo costo?
Possiamo permetterci lo sviluppo extra?

Il costo richiesto per lo sviluppo extra dipende da quanto "pesanti" sono i controller. Se si dispone di un'architettura pulita con un modello di dominio e servizi ben definiti (non i servizi Web) ei controllori orchestrano semplicemente tra il servizio e la visualizzazione, la creazione di una WebAPI non dovrebbe essere troppo difficile. Se i controllori sono pieni di logica aziendale, è necessario convertirli in WebAPI, nel qual caso è necessario modificare le visualizzazioni contemporaneamente e uno sviluppo affiancato esce dalla finestra, o si duplica o si refactoring. Raccomando il refactor ma non sarà banale.

Per alcuni dei tuoi altri punti. È possibile utilizzare Angular su una base per pagina in modo assoluto per spostare quella pagina su una comunicazione basata su Ajax piuttosto che su un post completo e su un aggiornamento. Puoi anche usare JQuery per questo con un plugin come jQuery Forms.L'utilizzo di JQuery ha il vantaggio di sfruttare le conoscenze esistenti e francamente è più semplice. Angolare, perché è supponente, promuove un modo standard di fare le cose, quindi vuol dire che la tua base di codice javascript dovrebbe rimanere più strutturata, in quanto è la sua piccola app client contenuta nell'app mvc. Un altro vantaggio qui è che in questo modo sei un grande passo avanti verso una SPA se questo diventasse un requisito reale.

Un pensiero di chiusura qui, e questo potrebbe prendere in considerazione la decisione di fare questo tuffo. Quando crei una SPA, stai creando un client javascript/html che interagisce con la tua API esposta. Altri client potrebbero anche utilizzare la stessa API come un'app mobile o un sito partner.

Spesso il desiderio di andare SPA è perché come sviluppatore si vuole imparare la "nuova ondata", e questa è una buona cosa. Assicurati solo che chiunque stia facendo il conto sa cosa stanno facendo ed è felice di farlo.

+0

Bello e chiaro @deebo. Goditi i cinquanta! :) –

+2

Grazie :) Un'altra cosa. Se decidi di passare a un approccio pesante per javascript ti suggerisco di usare TypeScript http://www.typescriptlang.org/ Come utente di un linguaggio tipizzato staticamente come Java e C#, javascript può farmi venire voglia di tirarmi fuori i capelli. TS aiuta ad evitare alcune di quelle frustrazioni. Come qualcosa di nuovo, è un'altra cosa su cui gli sviluppatori hanno bisogno di crescere. –