MVC 5 Projesi ile Web Api Projesi arasındaki fark


135

Ben yeniyim ASP.NET MVC ve Web API ve temellerini almaya çalışırken. AFAIK, biz olarak adlandırılan VS 2013 proje şablonları, var MVC, Web APIve Both of them together.

Öğreticilerden geçtim ve MVC'yi tek başına ve Web API Şablonu kullanarak bir API yapabileceğimizi öğrendim.

Peki, Mimarlık ve Kullanımı temel alan bunlar arasındaki farklar nelerdir ?

Yanıtlar:


182

Temel olarak, bir Web APIdenetleyici, yanıtının temel türü olarak MVCkullanan bir denetleyicidir . Diğer açılardan da aynıdır. Proje türleri arasındaki temel fark, proje türünün varsayılan değer , web sitesi için gereken ve API için gerekli olmayan diğer kaynaklar gibi web'e özgü şeyler eklemesidir.HttpMessageResponseActionResponseMVC ApplicationCSSJavaScript

MVC web siteleri oluşturmak için kullanılır. Bu durumda Controllersgenellikle Viewtarayıcı isteklerine bir (yani HTML yanıtı) döndürün. Öte yandan web API'leri genellikle diğer uygulamalar tarafından tüketilir. Diğer uygulamaların verilerinize / işlevlerinize erişmesine izin vermek istiyorsanız, bu erişimi kolaylaştırmak için bir Web API'si oluşturabilirsiniz. Örneğin, Facebook'un Uygulama geliştiricilerin Uygulamayı kullanan kullanıcılar hakkındaki bilgilere erişmesine izin vermek için bir API'si vardır. Web API'lerinin kamu tüketimi için olması gerekmez. Ayrıca, kendi uygulamalarınızı desteklemek için bir API oluşturabilirsiniz. Örneğin, MVC web sitemizin AJAX işlevselliğini desteklemek için bir Web API oluşturduk.

Microsoft, farklı şablonları sunma yöntemlerini değiştirdi. Şimdi, farklı proje türleri için farklı şablonlar kullanmak yerine, geliştiricileri ASP.NET teknolojilerini gerektiği gibi aynı proje içinde karıştırmaya teşvik ediyorlar. Microsoft bunu çağırıyor vNext.

GÜNCELLEME: ASP.NET Core için, Web API MVC 6 proje türüne entegre edilmiştir ve ApiControllersınıf sınıfa birleştirilir Controller. Daha fazla bilgi için: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6


1
Teşekkürler Elad i got.Ans ans düzenlemek ve Asp.net Kimlik ve Web Api 2 hakkında bir şeyler ekleyebilirsiniz Can sadece bazı onlar nasıl kullanılacak ve yarar. Sadece bazı kelimeler olacak.
döngü

Yani, hiçbir şekilde dektop uygulamasından bir denetleyici eylemine erişemiyorum. URL'yi çağırmak için uygun GET sözdizimini kullansam bile?
Kırılmaz

70

Benim görüşüm...

  1. In ASP.Net MVC - MVC en Controllerne olması gerektiğini karar verir View- yani kontrolör bir talepte kullanıcı, (şimdiki senaryoda veya bağlama göre) “görmek” gerektiğini karar verir.
  2. In ASP.Net Web Forms , ASPXsayfaları talepte kullanıcı “görmek” gerektiğini karar verir.
  3. Ancak Web API'sında , kullanıcının bir istekte bulunduğunda ne görmesi gerektiğine karar vermek için Web API'sinin özelliklerinden hiçbiri kontrol / güç yoktur.

Web API'sı yalnızca web sitelerine bağlı bir teknoloji DEĞİLDİR. Sadece web siteleri için değil, birden fazla amaç için kullanılabilir. Yani anlamını bilmiyorrendering

Daha fazla okuma

  1. Web Çözümlerini Bugün Planlama: Web Formları, ASP.NET MVC, Web API ve OWIN.
  2. WCF veya ASP.NET Web API'leri? Konu ile ilgili iki sentim
  3. Yeni Nesil .NET - ASP.NET vNext
  4. ASP.NET MVC 6'ya Başlarken

Karşılaştırılan kodlardan WebAPI'nın neden daha okunabilir olduğunu söyleyemem. Ayrıca, Web API olduğu için [HttpGet] gibi bir HTTP yöntemi özniteliğine sahip olması beklenen bir şey var gibi görünüyor. Bazı WebAPI kontrol edin (ve WebAPI 2) kodu burada
Gobe

2
Kabul edilen cevap "Temel olarak, bir Web API denetleyicisi bir MVC denetleyicisidir" belirtir. Bu sadece yanlış. Bütün olduğuna dikkat Yanıtınız noktaları NOKTASI WebAPI ait tam o DEĞİLDİR MVC, bu ETMEZ tüm bagaj ile ve havai "Görünümler" ve "render" ile başa çıkmak için uğraşmak zorunda. ... ve WebApi denetleyicilerinin yalnızca web siteleriyle bağlanması bile gerekmez. Çok iyi cevap - teşekkürler!
FoggyDay

0

MVC denetleyicisi denetleyici sınıfından türetilmiştir. Mvc'de görünümler döndürebilirsiniz. Mvc mimarisi bir uygulama oluşturmak için kullanır. Bununla birlikte, Web apis çeşitli uygulamalara veri sağlamak için kullanılır.

Web Api, Api denetleyicisinden çalışır ve görünüm döndürmez.

Not: MVC denetleyicisinden Web Api de oluşturabilirsiniz, ancak sonucu JsonResult veya diğer web api destekli dönüş türleri olarak döndürmeniz gerekir.


0

Burada zaten verilen cevaplara ek olarak, ApiController'den devralınan ve Http fiil POST ile bir eylemi olan herhangi bir denetleyiciye sadece bir [FromBody] giriş parametresi olabilir. Bir MVC denetleyicisi kullanıyorsanız ('Denetleyici' den türetilir) birçok post giriş parametresine sahip olabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.