Если вы беспокоитесь о производительности, вам следует рассмотреть возможность использования моей инфраструктуры веб-служб с открытым исходным кодом ServiceStack . В тестах сервера .NET показано, что последовательно работает с другими библиотеками .NET. Он имеет самый быстрый текстовый сериализатор для .NET, включая .NET самый быстрый сериализатор JSON .
Мало того, что он намного быстрее, чем WCF, он также намного проще - тот же сервис в ServiceStack выглядит так:
public class MyCustomers : ServiceBase<Customers>
{
public override object Run(Customers request)
{
return new List<Customers>() {
new Customers() { id = 1, Name = "murat", SurName = "xyzk" },
new Customers() { id = 2, Name = "ali", SurName = "Yılmaz" } };
}
}
С только что приведенным выше кодом автоматически становится доступным на конечных точках JSON, XML, JSV, CSV и SOAP 1.1 / 1.2, через HTTP GET или HTTP POST без какой-либо настройки.
Поскольку это инфраструктура веб-сервисов, основанная на коде, никакой кодировки не требуется, так как вы можете вызывать свои веб-сервисы, используя DTO, с которым вы определили свой веб-сервис, предоставляя этот хороший типизированный, лаконичный api:
IServiceClient client = new JsonServiceClient("http://host/baseurl");
//IServiceClient client = new XmlServiceClient("http://host/baseurl"); //to use xml instead
var customers = client.Send<List<Customers>>(new Customers());
Вы также можете легко обслуживать клиентов ajax с теми же веб-службами, которые в jQuery выглядят так:
$.getJSON("http://host/baseurl/customers", function(r) {
console.log("customers received: #" + r.length);
});
В целом ServiceStack - это более быстрая и более чистая структура веб-служб, которая может работать в ASP.NET или автономно (самостоятельно размещаться без веб-сервера) в Windows с .NET 3.5+ или Linux с Mono.