Первоначально я запустил ServiceStack из-за неэффективности (разработки и времени выполнения) и трения, налагаемого при создании веб-сервисов с альтернативными платформами .NET.
В 3-4 раза быстрее сериализация Json, чем в MVC
ServiceStack имеет высокую производительность фокуса, поскольку мы считаем, что обеспечивает лучший конечный пользователь UX , поэтому он встроен в сильный набор поставщиков кэширования , включая самый быстрый сериализатор JSON для .NET - в 3-4 раза быстрее , чем сериализаторы, поставляемые с .NET и MVC (его JavaScriptSerializer по умолчанию является самым медленным в .NET).Для максимальной производительности не используются отражения во время выполнения или регулярные выражения.Он использует интеллектуальное нелинейное сопоставление маршрутов, и вам рекомендуется использовать гораздо более быстрые встроенные поставщики кэширования, чтобы обойти низкую производительность сеанса ASP.NET .
, ориентированного на типизированныйитеративная разработка в первую очередь кода
ServiceStack позволяет разрабатывать строго типизированные веб-службы, способствующие внедрению передового опыта, используя минимальный объем кода и автоматически без any code-gen, config, pre / post-шаги сборки и т. Д.
Пример простого Hello World сервиса:
public class Hello { public string Name { get; set; } }
public class HelloResponse { public string Result { get; set; } }
public class HelloService : IService
{
public object Get(Hello request)
{
return new HelloResponse { Result = "Hello, " + request.Name };
}
}
С помощью всегоЭти классы, все ваши веб-сервисы автоматически становятся доступными в различных форматах (JSON, XML, JSV, CSV, SOAP), все из готовых с нулевым усилием .
Пример API-интерфейса строго типизированного клиента с использованием C #:
var client = new JsonServiceClient("http://localhost/Service");
var response = client.Send<HelloResponse>(new Hello { Name = "World!" });
Пример JavaScript с использованием jQuery:
$.getJSON("http://localhost/Service/hello/World!", function(r) {
console.log(r.Result);
});
Удобство разработки
Поскольку визуализация веб-сервисовважно при итеративной разработке веб-сервисов. Тип контента по умолчанию при просмотре веб-сервисов в браузере - это удобный для пользователя формат JSON HTML5 Report (также доступен отдельно в http://ajaxstack.com/jsonreport/), что позволяет вамдля визуализации реакции ваших веб-сервисов с одного взгляда.
Вы также получаете автоматически сгенерированную страницу метаданных (которую вы можете аннотировать с помощью собственного описания), которая служит отличным способомдокументируйте API своего веб-сервиса.
Но что, если они решат прекратить разработку
Как создатель ServiceStack, я не вижу, чтобы я отказался от разработки в обозримом будущем.Я строю системы с ним ежедневно, потому что считаю, что это более чистая, быстрая и более производительная среда для разработки.
Предлагает лучшие практики
Существует очень мало каркасов веб-служб .NET, которые поддерживают основанную на DTO архитектуру , основанную на первых сообщениях, позволяющую шаблон интерфейса службы - Aлучшие практики веб-сервисов, обычно встречающиеся в экосистеме Java, упрощающие разработку полно-пакетных веб-сервисов на основе SOA с крупнозернистой структурой.
Существует 0 риск , от него отказываются в пользуеще одна платформа .NET для веб-служб.Просто потому, что мы не верим, что какая-либо другая платформа .NET активно продвигает передовые практики веб-сервисов (например, шаблоны DTO / Remote Façade и Service Interface) и уделяет основное внимание производительности.
Но даже в этом случае с открытым исходным кодомПроект с почти 20 участниками, этот страх смягчается.Сколько проприетарных платформ с закрытым исходным кодом отказались от MS и заставили всех перейти к преемнику?Программное обеспечение с открытым исходным кодом развивается, оно не заброшено и не переписано.
Весь исходный код для ServiceStack находится под http://github.com/ServiceStack без блокировки, а GitHub позволяет любому легко раскошелиться ипродолжить развитие, как многие уже сделали.
Работает везде
Наконец, ServiceStack может работать на любом хосте ASP.NET в IIS 6/7 в Windows или Linux / OSX с использованием Mono. Он также поддерживает автономный хост HttpListener, позволяющий запускать его без веб-сервера, т. Е. Встроенного в любое приложение консоли или Windows, внутри службы Windows и даже размещенного в приложении MonoTouch для iPhone .