ServiceStack's primary goal is to enhance the value of System APIs which serve as the blueprint that most features centered around. By using simple & pure dependency-free DTO models decoupled from any implementation we're free to continue layering on features which now sees ServiceStack APIs as the most versatile in the world where the same high-performance APIs can be consumed from HTTP in any combination of Route, QueryString, FormData or a myriad of data formats, via popular resilient MQ Servers whilst simultaneously supporting legacy integrations like SOAP or adopting new technologies like gRPC without sacrificing any native HTTP integrations.
To maximize the value of APIs we're focused beyond the API boundary by making it as simple as possible for API Consumers to call your APIs, thereby making them more appealing and creating multiplicative value with the time & effort saved by each API consumer.
In addition to providing native end-to-end typed integrations to 9 of the most popular languages used in creating Web, Mobile & Desktop Apps, we also maintain IDE plugins for most major IDEs enabling your API Consumers to easily add/update typed API Service References from within Rider, VS.NET, Android Studio, PyCharm, IntelliJ IDEA, RubyMine, Php/WebStorm & Eclipse.
The best approach for achieving its goals of capturing a systems functionality in a typed Service contract that yields the most reusable & evolvable API design was to adopt a message-based design that embraces the revered SOA Integration Patterns best-practices by realizing its Remote Facade, Data Transfer Object and Service Gateway patterns whose benefits positions ServiceStack in a rarefied breed of frameworks to enable optimal end-to-end typed API integrations without code-gen as the same dep-free Service Models used to define its APIs can be used as-is in .NET Apps.
Unlike RPC, messages can be evolved, intercepted, routed, decorated & serialized with natural decoupling of an APIs coarse-grained DTO contracts from its implementation allowing front & back-end developers to collaborate on an agreed high-level API design free of detail concerns, before using the contract-first DTOs to independently implement any required functionality.
It allows client logic to bind to impl-free service client interfaces that can be easily substituted from a test client returning mock data to utilizing any of the many available .NET generic Service Client implementations including gRPC.
The benefit afforded by capturing an entire API boundary into impl-free Service Contracts extends to all natively supported languages who only need be concerned with generating declarative DTOs resulting in types encapsulating richer metadata beyond what's possible with restrictive primitive types found in other code-gen solutions like Open API.
It enables teams across disciplines and languages to work the same way when integrating internal or external applications or tools. This reduces software maintenance efforts and enables developers to focus on the important part of their code rather than the plumbing between client & server.
From its outset ServiceStack has been consistently promoting the same remote service best-practices for over a decade, whose adoption of its time-tested patterns has survived beyond several abandoned .NET Web Service frameworks, iterations & programming models during its lifetime with any investments in them having failed along with them.
Instead of enduring wasted investments through constant rewrites, ServiceStack APIs have in contrast remained constant whilst gaining value over time, continuing to add support for more languages, typed clients, IDE integrations, endpoints, data formats & .NET Hosts.