Я поддерживаю зрелую альтернативу с открытым исходным кодом WCF в ServiceStack , современной, основанной на коде, основанной на модели, структуре замены веб-сервисов WCF поощряющий код и удаленные рекомендации для создания кратких, DRY, высокопроизводительных, масштабируемых веб-сервисов REST .
Включает в себя .NET самый быстрый JSON Serializer и имеет автоматическую поддержку заголовков JSON, JSONP, CORS , а также форм-urlencoded / multipart-formdata. Онлайн-демонстрации - хорошее начало, так как все они используют Ajax.
Кроме того, нет конфигурации XML или кода, и ваш веб-сервис C # с однократной записью предоставляет все конечные точки JSON, XML, SOAP, JSV, CSV, HTML , включенные вне the-box, автоматически с крючками для подключения ваших типов контента при необходимости.
Он также включает универсальных клиентов службы синхронизации / асинхронизации , обеспечивающих быстрый типизированный межсетевой шлюз связи между клиентом и сервером.
Это полный пример всего кода, необходимого для создания простого веб-сервиса, который автоматически без какой-либо конфигурации регистрируется и становится доступным для всех форматов веб-данных по предопределенным и настраиваемым маршрутам REST-ful.
public class Hello {
public string Name { get; set; }
}
public class HelloResponse {
public string Result { get; set; }
}
public class HelloService : IService<Hello> {
public object Execute(Hello request)
{
return new HelloResponse { Result = "Hello, " + request.Name };
}
}
Выше сервис может быть вызван (без каких-либо шагов сборки / кода) в C # со строкой ниже:
var client = new JsonServiceClient(baseUrl);
var response = client.Send<HelloResponse>(new Hello { Name = "World!" });
Console.WriteLine(response.Result); // => Hello, World
И в jQuery с:
$.getJSON('hello/World!', function(r){
alert(r.Result);
});