MVC vs API Web: quale tecnologia ASP.NET dovresti usare?


In questo articolo parleremo delle differenze tra ASP.NET Model View Controller (MVC) e l’API Web ASP.NET e che dovresti usare per requisiti diversi. Prima di approfondire, diamo una breve introduzione a ciò che è effettivamente MVC.

MVC o Model-View- Controller è ciò che divide effettivamente un’applicazione.

  • Modello – Questi sono oggetti che recuperano lo stato del modello nel database, ovvero recupera i dati dal database, esegue una determinata operazione e memorizza i dati nel database.
  • Visualizza – Qui, gli sviluppatori possono “visualizzare” l’interfaccia utente o l’interfaccia utente delle applicazioni create dal modello di dati.
  • Controllori – I controller o i componenti gestiscono l’interazione dell’utente, gestiscono i valori delle stringhe di query e trasferiscono i valori nei modelli.

Trovi MVC nell’assembly “System.Web.MVC”. Il framework MVC utilizza le funzionalità di ASP.NET come l’autenticazione basata sull’appartenenza, le pagine master, ecc. Puoi provare le varie opzioni in ASP.NET per creare applicazioni Web con moduli Web ASP.NET.

Tramite l’API Web ASP.NET è possibile visualizzare forme di dati come XML e JSON. Questo framework è open source, utilizza il servizio HTTP e rispondere alle richieste dei client è un gioco da ragazzi. Le richieste stesse (ad esempio, Get, Post, Delete, Put ecc.) sono gestite tramite protocolli HTTP. L’API Web ASP.NET può essere ospitata su IIS o nell’applicazione.

I principianti di solito si confondono sulla scelta della tecnologia ASPNET da utilizzare. Ecco un paio di casi in cui puoi utilizzare ciascuna di queste tecnologie.

1) Il processo di esposizione della funzionalità

I controller ASP.NET MVC sarebbero una buona scelta (1) se si desidera esporre una funzionalità all’interno di una singola applicazione o (2) se deve essere utilizzata come funzionalità generica su qualsiasi applicazione. Puoi risparmiare tempo in questo modo perché non devi creare una nuova API per esporre ogni volta la funzionalità. Normalmente, un controller è collegato a una particolare applicazione web ed espone funzionalità da consumare rapidamente tramite Ajax.

Se stai cercando di creare un servizio REST completo, non collegato a una singola applicazione, puoi utilizzare l’API Web, perché offre una soluzione elegante e ordinata.

Se la funzionalità è incentrata sull’interfaccia utente o sulla visualizzazione, ad esempio il caricamento di frammenti HTML o la creazione di pagine guidate da AJAX, ASP.NET MVC è una scelta migliore. L’API Web sarebbe una buona scelta quando si crea un servizio RESTful autonomo.

Se la funzionalità è incentrata sui dati, scegli Server API Web. Esempio, operazioni CRUD. Nelle normali applicazioni MVC, solo i controller sono sufficienti per restituire sia i dati che le visualizzazioni.

2) I formati di dati da trattare

I controller restituiscono ActionResult o JsonResult, il che significa che l’output del controller potrebbe essere un markup HTML o dati formattati JSON. Se uno di questi formati di dati è sufficiente, puoi utilizzare i metodi di azione per esporre le funzionalità. Tuttavia, quando sono coinvolti più formati di dati, l’API Web sarebbe la scelta migliore. Questo perché questa tecnologia può decidere automaticamente il formato web guardando l’intestazione Accetta. Nel controller MVC, dovrai specificare in modo specifico il formato dei dati per scrivere i metodi di azione.

L’API Web può essere utilizzata per generare servizi HTTP che rispondano solo ai dati, ma MVC sarebbe adatto per lo sviluppo di applicazioni Web che rispondono sia come viste che come dati.

L’API Web esamina l’intestazione Accetta della richiesta che restituisce i dati in vari formati, quindi può restituire in vari formati, come XML, JSON ecc. Ma per MVC, i dati restituiti sono solo nel formato JSON utilizzando JSONResult.

3) Quando si combinano MVC e Web API

Gli sviluppatori possono godere di un paio di vantaggi quando combinano sia il controller MVC che l’API.

(1) È possibile gestire le richieste AJAX e restituire la risposta in più formati quando si combinano entrambi.

(2) È possibile creare due diversi filtri per l’autorizzazione per un’applicazione. Le richieste sono mappate alle azioni sui verbi HTTP, ma sono mappate al nome delle azioni in MVC. È possibile utilizzare l’API come livello di servizio autonomo e può essere utilizzata anche con ASP.NET.

L’associazione di modelli, il routing e i filtri sono tutti diversi nell’API Web ed esistono nell’assembly System.web.http. Queste funzionalità esistono in System.web.MVC nel framework MVC.

4) Se hai bisogno di self-hosting


Come sai, controller, una parte delle applicazioni ASP.NET MVC necessita di IIS come ambiente di hosting. Tuttavia, l’API è un framework di servizi e puoi ospitarlo autonomamente. Questo lo rende leggero, perché puoi evitare le spese generali di IIS. Questa è un’ottima scelta quando la tua app deve essere rilasciata su una serie di piattaforme: desktop, applicazioni web, applicazioni console, ecc.

Pensieri di chiusura

Puoi scegliere l’API Web se stai generando un servizio HTTP completo come Flickr, Amazon, Delicious, ecc. È anche una buona scelta se hai bisogno di negoziare i contenuti. La negoziazione del contenuto è un processo di restituzione del contenuto in un formato indicato da Accetta intestazione. Tuttavia, potresti non averne bisogno per tutti i tuoi progetti, perché l’invio di dati come JSON e XML è principalmente ciò che è richiesto. Con l’API Web, hai la possibilità di inviare il contenuto in una varietà di formati, inclusi immagini e file.

WebAPI è forse un framework migliore quando vuoi mostrare i tuoi dati e servizi su vari dispositivi. Ed è open source, e quindi la piattaforma perfetta per creare servizi RESTful su framework DotNet. E non è necessario eseguire ulteriori impostazioni di configurazione per ciascun dispositivo separatamente. In questi giorni le persone preferiscono utilizzare più app mobili rispetto alle applicazioni desktop, quindi diventa molto importante sviluppare entrambi i tipi di app.

MVC, d’altra parte, fornisce una chiara separazione delle preoccupazioni, consente il pieno controllo sull’HTML renderizzato, consente una facile integrazione con i framework Javascript e consente lo sviluppo guidato dai test.

Articoli interessanti:
Perché l’API Web è migliore di MVC?
Brevi punti su MVC vs API

Fonte immagine: Flickr.com/Dennis/ Yamashita


L’autore: Reema Oamkumar è impegnato come leader di pensiero presso www.Software-Developer-India.com che fa parte del gruppo YUHIRO. YUHIRO è un’impresa tedesco-indiana che fornisce programmatori ad aziende IT, agenzie e dipartimenti IT.

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.