Diferenças entre ASP .NET MVC e ASP .NET Web API

 Neste artigo eu vou apresentar as principais diferenças entre ASP .NET MVC e ASP .NET Web API.

Ao desenvolver um projeto ASP .NET MVC podemos retornar dados em diferentes formatos como no formato JSON usando JsonResult e também podemos tratar requisições Ajax.

Dessa forma, usando os Controllers MVC, eu também posso retornar dados da mesma forma que os Controllers da Web API.
 

Curso ASP .NET MVC 5 - Vídeo Aulas

Clique aqui e faça o seu pedido

Então, qual a diferença entre ASP .NET MVC e ASP .NET Web API ?

Basicamente, um controlador Web API é um controlador MVC, que usa HttpMessageResponse como tipo base de sua resposta, em vez de ActionResult.

A principal diferença entre os tipos de projeto é que o tipo de projeto MVC adiciona coisas específicas da web como padrão CSS, arquivos JavaScript e outros recursos necessários para um web site, que não são necessários para uma API.

O MVC é usado para criar sites da web. Neste caso os controladores normalmente retornam uma view(ou seja, a resposta HTML) para solicitações do navegador.

As Web APis, por outro lado, são feitas para serem consumidas por outros aplicativos. Se você deseja permitir que outros aplicativos acessem seus dados/funcionalidades, você pode criar uma Web API para facilitar esse acesso.  Por exemplo, o Facebook tem uma API para permitir que desenvolvedores de aplicações acessem informações sobre os usuários que usam a aplicação.

As Web Apis não tem que ser obrigatoriamente para consumo público. Você também pode criar uma API para oferecer suporte a seus próprios aplicativos.

A Microsoft mudou a maneira como eles apresentam os diferentes modelos. Agora em vez de usar modelos diferentes para tipos de projeto diferentes, eles incentivam os desenvolvedores para misturar tecnologias ASP.NET dentro do mesmo projeto conforme necessário.

Nota: Parece que na ASP .NET Core 1.0 (Antiga ASP .NET 5) a Web API será integrada com o tipo de projeto MVC 6 e a classe ApiController será consolidada em que classe Controller.

Fazendo um apanhado geral podemos montar uma tabela para ajudar a diferençar entre MVC e Web API :

 ASP .NET MVC  ASP .NET Web API
Usada para criar web sites e retornar dados e Views.  Usada para criar serviços sobre HTTP que retornam apenas dados.
Não suporta auto hospedagem nem negociação de conteúdo; Ajuda a construir serviços REST sobre o .NET Framework e também suporta a negociação de conteúdo e auto de hospedagem ;
Retorna apenas os dados no formato JSON usando JsonResult; Retorna dados em determinado formato como JSON, XML ou qualquer outro baseado o cabeçalho Accept no pedido.
As Solicitações são mapeadas para o nome das Actions; As solicitações são mapeadas para as ações com base em verbos HTTP;
No MVC, estes recursos constam no namespace System.Web.Mvc(Web API também pode ser usada com Asp.Net como uma camada de serviço.) É um novo framework e parte do núcleo do framework ASP.NET. O modelo de vinculação, filtros, roteamento e outros recursos MVC existem na Web API e estão no assembly System.Web.Http e são diferentes do MVC.
Você pode misturar controllers Web API e MVC em um único projeto para manipular as solicitações AJAX avançadas que podem retornar dados em JSON, XML ou qualquer outro formato e criar um serviço HTTP completo.

Creio que com isso você saberá diferenciar entre ASP .NET MVC e ASP .NET Web API.

Porque Deus enviou o seu Filho ao mundo, não para que condenasse o mundo, mas para que o mundo fosse salvo por ele.
Quem crê nele não é condenado; mas quem não crê já está condenado, porquanto não crê no nome do unigênito Filho de Deus.
João 3:17,18

 


 

Referências:


José Carlos Macoratti