ASP.NET MVC 4 Uygulamasını çağırmak Uzak WebAPİ | Netgez.com
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

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • Semantic Mastery

    Semantic Mas

    30 EKÄ°M 2013
  • Slave Boy Films - Fandom from a Galaxy Far Far Away

    Slave Boy Fi

    12 HAZÄ°RAN 2009