SORU
2 Kasım 2012, Cuma


ASP.NET MVC 4 Uygulamasını çağırmak Uzak WebAPİ

Geçmişte MVC uygulamaları ASP.NET bir çift yarattık, ama asla WebAPİs önce kullandım. Normal bir MVC denetleyicisi ile WebAPİ ile yerine basit CRUD şeyler yok basit MVC 4 uygulaması oluşturmak nasıl merak ediyorum. Hüner WebAPİ ayrı bir çözüm (ve, aslında, çok iyi etki/farklı bir sunucuda olabilir) olmalıdır.

Nasıl yapabilirim? Neyi kaçırıyorum? Sadece yolları WebAPİ bu server kurma işi mi? WebAPİs MVC kullanarak uygulama tüketmek gösteren bulduğum tüm örnekler, WebAPİ "aynı sunucuda MVC uygulama için, en azından." pişmiş olduğunu varsaymak gibi görünüyor

Oh, ve netleştirmek için, Ajax çağrıları jQuery kullanarak bahsetmiyorum... MVC uygulama denetleyicisi WebAPİ/veri koymak için kullanması gereken yani.

CEVAP
3 Kasım 2012, CUMARTESİ


Yeni HttpClient HTTP API tüketmek için kullanmalısınız. Ayrıca aramalarınızı tamamen uyumsuz yapmak için tavsiye olabilir. ASP.NET MVC denetleyicisi eylemleri Görev tabanlı zaman Uyumsuz Programlama modeli destek olarak, çok güçlü ve çok kolay.

Burada aşırı basitleştirilmiş bir örnek. Aşağıdaki kod örneği, bir isteğin Yardımcı Sınıf

public class CarRESTService {

    readonly string uri = "http://localhost:2236/api/cars";

    public async Task<List<Car>> GetCarsAsync() {

        using (HttpClient httpClient = new HttpClient()) {

            return JsonConvert.DeserializeObject<List<Car>>(
                await httpClient.GetStringAsync(uri)    
            );
        }
    }
}

O zaman, benim MVC denetleyicisi zaman uyumsuz olarak alttaki o tüketebilirim:

public class HomeController : Controller {

    private CarRESTService service = new CarRESTService();

    public async Task<ActionResult> Index() {

        return View("index",
            await service.GetCarsAsync()
        );
    }
}

ASP.NET MVC ile zaman uyumsuz G/Ç işlemleri etkilerini görmek için aşağıdaki yazıya bir göz olabilir:

My Take on Task-based Asynchronous Programming in C# 5.0 and ASP.NET MVC Web Applications

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EEVblog2

    EEVblog2

    2 HAZİRAN 2014
  • jbignacio

    jbignacio

    13 Mart 2006
  • WhtButterflyLiz

    WhtButterfly

    14 NİSAN 2008