Spostando tutta la logica dell'interfaccia utente sul lato client?

9

In origine il nostro team consisteva principalmente di sviluppatori lato server con competenze minime in Javascript. In ASP.NET abbiamo usato molte regole di interfaccia utente in code-behind o più recentemente attraverso i controller in MVC.

Poco tempo fa 2 sviluppatori del lato client di alto livello si sono uniti al nostro team. Possono fare in HTMl / CSS / Javascript praticamente tutto ciò che potremmo fare in precedenza con il codice lato server e i controlli web lato server:

  • Mostra / nascondi i controlli
  • Esegui la convalida
  • Controllo AJAX rinfrescante

Quindi ho iniziato a pensare che forse sarebbe più efficiente creare semplicemente un'API di alto livello sulla nostra logica di business, un po 'come l'API di Amazon Fulfillment: link , in modo che gli sviluppatori lato client possano occuparsi interamente dell'interfaccia utente, mentre gli sviluppatori lato server si concentrerebbero solo sulla business logic.

Quindi per ordinare un sistema avresti un'API di alto livello come:

OrderService.asmx

CreateOrderResponse CreateOrder(CreateOrderRequest)
AddOrderItem
AddPayment
-
SubmitPayment
-
GetOrderByID
FindOrdersByCriteria
...

Ci sarebbe accesso JSON / REST alle API, quindi sarebbe facile consumare dall'interfaccia utente lato client. Potremmo utilizzare questa API sia per lo sviluppo dell'interfaccia utente interna che per le terze parti per creare le proprie applicazioni.

Con i progressi in Javascript e la disponibilità di buoni sviluppatori lato client, è un buon momento per sbarazzarsi di code-behind / controller e concentrarsi sullo sviluppo di API di alto livello (ala Amazon) che gli sviluppatori lato client possono consumare?

    
posta Mag20 23.02.2011 - 12:08
fonte

2 risposte

6

La convalida sul lato client per scaricare il lato server e aumentare la reattività dell'applicazione va bene, ma sempre esegue la convalida lato server. Uno può disattivare JavaScript e quando si utilizza direttamente l'API REST, non sarà mai necessario JavaScript.

    
risposta data 23.02.2011 - 12:13
fonte
3

Una cosa di cui essere a conoscenza è che le UI complesse possono richiedere un ulteriore livello di "UI assist" per supportare cose come gerarchie, relazioni master / dettagli e altri concetti dell'interfaccia utente che non esistono realmente nel livello aziendale. Spesso non è possibile implementare alcune di queste funzionalità senza effettuare più round trip nel livello aziendale, il che riduce le prestazioni. Almeno, preferisco avere il livello "UI assist" per dare l'accesso diretto all'interfaccia utente al database.

    
risposta data 23.02.2011 - 15:16
fonte