Вы также можете попробовать servicestack.net Кроссплатформенная, высокопроизводительная платформа веб-сервисов с открытым исходным кодом, которая позволяет разрабатывать веб-сервисы с использованием кода в первую очередь, строго типизированные DTO, которые автоматически (без какой-либо конфигурации) будут сразу же доступны на различных конечных точках (например, XML, JSON, JSV, SOAP 1.1 / 1.2).
REST, RPC и SOAP из коробки
Кроме того, те же самые веб-службы можно сделать доступными через любой URL-адрес ReST по вашему выбору, где предпочитаемый формат сериализации может быть указан вашим клиентом REST, т.е.
- Использование HTTP Принять: заголовок
- Добавление предпочтительного формата к строке запроса, например, ? Format = xml
См. Пример веб-службы Ничего, кроме REST! о том, как разработать полноценное приложение REST-ful Ajax CRUD, содержащее только 1 страницу jQuery и 1 страницу C # .
Хорошее начало для примера - пример Hello World , чтобы узнать, как легко добавить веб-службы ServiceStack в любое существующее веб-приложение ASP.NET.
Performance
Для повышения производительности ServiceStack представляет собой отличный сервер Ajax, поскольку он поставляется с самым быстрым сериализатором JSON для .NET (> в 3 раза быстрее, чем другие сериализаторы JSON).
Оформить заказ это живое Ajax-приложение на вкус (живая демонстрация, размещенная на Linux / Nginx / MONO).
Пример простого северного ветра
ServiceStack также упрощает создание строго типизированных веб-сервисов без трения, где только с помощью приведенного ниже кода все, что вам нужно для возврата списка POCO клиента:
public class CustomersService : RestServiceBase<Customers>
{
public IDbConnectionFactory DbFactory { get; set; }
public override object OnGet(Customers request)
{
return new CustomersResponse { Customers = DbFactory.Exec(dbCmd =>
dbCmd.Select<Customer>())
};
}
Без других настроек вы можете теперь вызвать вышеупомянутый веб-сервис REST-полностью возвращая все:
Доступ к веб-сервисам на клиенте
Вы можете вызвать вышеупомянутый веб-сервис повторно, используя те же DTO, с которыми были определены ваши веб-сервисы (т. Е. Код не требуется), используя предпочитаемый вами универсальный ServiceClient (т.е. Json, Xml и т. Д.). Это позволяет вам вызывать ваши веб-сервисы, используя строго типизированный API и всего одну строку кода:
Пример синхронизации C #
IServiceClient client = new JsonServiceClient("http://host/service");
var customers = client.Send<CustomersResponse>(new Customers());
И поскольку ваши веб-службы также являются службами REST, они бесперебойно работают с JavaScript-клиентами ajax, например:
Использование jQuery
$.getJSON("http://host/service", function(r) { alert(r.Customers.length); });