necessario per migrare all'API Web dal controller MVC

2

Dalla pubblicazione dell'API Web, mi sono chiesto se sia necessario o utile eseguire la migrazione / modifica dei controller MVC per utilizzare le chiamate dell'API Web. Poiché è difficile descrivere il codice, mostrerò un esempio di cosa intendo:

Controller corrente, _userService è fondamentalmente il Business layer dell'applicazione che chiama quindi il repository e ottiene tutti gli utenti.

[HttpGet]
public ActionResult List()
{
    var list = _userService.GetAll();
    if(list.Any())
        return View("List",list);
    return View(list.ToList());
}

Sarebbe meglio usare l'API Web e ottenere l'elenco degli utenti come oggetto JSON e quindi associarlo alla vista con qualche JavaScript? (eventualmente ad eliminazione diretta se applicabile).

Non sono sicuro che la mia domanda sia abbastanza chiara, quindi fammi sapere se devo spiegare qualcosa.

    
posta SOfanatic 30.07.2013 - 16:12
fonte

1 risposta

2

Quello che stai chiedendo non è su come codificare in MVC o in ASP.NET, penso che si tratta di utilizzare un approccio diverso.

L'architettura che si descrive è molto simile a una singola pagina di applicazione (SPA) in cui il lato server si trasforma in un'API sottile e tutta la logica dell'applicazione viene spostata sul codice lato client scritto in JavaScript (logica , navigazione, instradamento, rendering, ecc.).

Naturalmente potresti avere una soluzione "ibrida" che usa MVC per gestire la logica, la navigazione, il routing, ecc. e avere alcune API per servire alcuni dati su alcune pagine che usano un codice lato client.

Tuttavia, penso che ciò aggiungerebbe complessità all'applicazione perché ci sarebbe un thick-server (MVC) e in alcune parti un client semi-spesso più il fatto che ci sarebbe un'API. Quindi finirebbe con MVC + API + codice lato client.

L'approccio SPA segue il thin-server / thick-client. Il server agisce solo come repository di dati + una logica di autenticazione (se necessario) e il client ha tutta la logica per eseguire l'applicazione nel browser. Tutte le comunicazioni tra il browser e il server utilizzano AJAX. In questo modo riduciamo la complessità utilizzando solo un API + JavaScript.

Non so se questa risposta ti possa aiutare, ma penso che se inizi a pensare di utilizzare AJAX sempre di più in MVC, ti ritroverai con una SPA.

    
risposta data 30.07.2013 - 17:34
fonte

Leggi altre domande sui tag