Latest features & highlights

v5.12

August 17, 2021

Python ServiceStack Reference

Python is one of the worlds most popular programming languages which excels in a number of industries thanks to its ease of use and comprehensive libraries.

To maximize the experience for calling ServiceStack APIs within these environments ServiceStack now supports Python as a 1st class Add ServiceStack Reference supported language which gives Python developers an end-to-end typed API for consuming ServiceStack APIs, complete with IDE integration in PyCharm as well as built-in support in x dotnet tool to generate Python DTOs for a remote ServiceStack instance from a single command.

Jupyter Notebooks

Python has solidified itself as a powerhouse in Data Science and Machine Learning thanks to its best-in-class libraries as well as being at the forefront of Interactive Computing with its native support in Jupyter Notebooks - a popular realization of Donald Knuth’s Literate Programming paradigm where executable code is interlaced in a live document with natural language documentation, rich markup and embedded media. It’s become an invaluable medium for data science, scientists and researchers where it’s often used as an advanced REPL environment for data and computation exploration whose resulting knowledge and insights are easily captured and shared.

We’re excited to be able to join the beautiful interactive world of Jupyter Notebooks with both Simple UI and command-line tools for effortlessly generating customized Notebooks around typed ServiceStack APIs for Jupyter’s premier support for Python.

C# and F# Jupyter Notebooks

In addition to Python we’ve also extended support for generating customized pre-populated C# and F# Jupyter Notebooks by leveraging dotnet/interactive Jupyter kernel’s which allows C# and F# .NET Developers to join Jupyter’s interactive live programming paradigm which they can either choose to run locally in the next gen JupyterLab UI or directly within VS Code using .NET Interactive’s VS Code extension.

Notebooks have also become a popular medium for sharing institutional data and computational knowledge thanks to being able to capture and embed execution output and support for exporting in multiple popular document formats as used by GitHub with their Auto Preview support for Notebooks. We also simplify configuring a Notebook GitHub repo to support executing C# and F# Notebooks in mybinder.org FREE cloud hosting services with our docker-jupyter mix template.

v5.11

April 21, 2021

Instant Client Apps

Building upon our native end-to-end typed solutions, we’re excited to announce Instant Client Apps to provide instant utility and value around your ServiceStack Services where your API consumers can use the Auto generated UI to craft API Requests in their preferred programming language:

GitHub Actions Templates

We’ve begun to fully embrace GitHub Actions from this release to help quickly setting up CI environments for new and existing ServiceStack project templates by automating them into building and running tests on each commit before publishing, dockerizing & deploying them on each GitHub Release. The templates leverage mix to work like lego pieces where they can be combined to achieve your preferred automation workflow.

All Service Client Libraries Upgraded

In addition to the Refresh Token support & built-in Inspect utils all ServiceStack’s generic Service Client libraries in all languages have received a number of updates to improve their consistency and overall development UX.

v5.10

November 11, 2020

Booking System in minutes

To see the rapid development of AutoQuery in action we’ve created a quick demo showing how to create a simple multi-user Booking System from an empty web project, mixed in with the preferred RDBMS & Auth layered functionality, before enabling Validation, AutoQuery, Admin Users & CRUD Event Log plugins - to lay the foundational features before building our App by first defining its Booking data model & its surrounding Query, Create, Update and Soft Delete Typed CRUD APIs with rich validation enforced by declarative Validation attributes and multi-layer authorization rules & access permissions protected using Authorization attributes.

Studio User Admin

We’ve caught a glimpse of the new User Admin Feature in the Bookings CRUD demo who utilizes it to create Employee and Manager users. The AdminUsersFeature provides Admin User Management APIs enabling remote programmatic access to your registered User Auth Repository, featuring:

  • Works with existing IUserAuthRepository sync or async providers
  • Utilizes Progressive enhancement, e.g. search functionality utilizes IQueryUserAuth (if exists) performing a wildcard search over multiple fields, otherwise falls back to exact match on UserName or Email
  • Supports managing Auth Repositories utilizing custom UserAuth data models
  • Flexible UI options for customizing which fields to include in Search Results and Create/Edit UIs
  • Rich Metadata aggregating only App-specific Roles & Permissions defined in your App
  • User Events allow you to execute custom logic before & after each Created/Updated/Deleted User

Sign In with Apple

As mobile Apps is a target use-case for ServiceStack, this release also includes 1st class integration with Sign In with Apple OAuth provider. To assist with adoption we’ve also developed Sign In with Apple Integration Examples for iOS, Android & Web with working implementations for Flutter iOS/Android & SwiftUI Apps.

v5.9

July 09, 2020

Introducing ServiceStack Studio

Another exciting development in this release is the successor to Admin UI: ServiceStack Studio! - a capability-based UI to manage multiple remote ServiceStack instances from either a Chromium Desktop App or cross-platform .NET Core Web App.

The richer metadata in ServiceStack Services allows Studio to logically group Services around Data Models, enabling its high-level semantic features like its native data-grid like UX over all AutoQuery Services to quickly discover, search, create, update and delete entities based on the available AutoQuery APIs and whether Authenticated Users have access to them.

Instantly Servicify existing Systems!

ServiceStack also reached maximum autonomy for a Services framework where in addition to AutoQuery automatically providing your Services implementations, Studio providing its instant UI, ServiceStack also gained the capability to generate your entire API! Including Typed API contracts, data models, implementations & human-friendly pluralized HTTP API routes over an existing System RDBMS’s tables!

ServiceStack’s AutoGen enables a number of exciting possibilities, predominantly it’s the fastest way to ServiceStack-ify an existing systems RDBMS where it will serve as an invaluable tool for anyone wanting to quickly migrate to ServiceStack and access its functionality ecosystem around ServiceStack Services:

Generate Types for RDBMS Tables

An unintended consequence of AutoGen that’s potentially universally appealing to even non .NET developers is that it’s also a way to instantly generate Types for all RDBMS tables in all of ServiceStack supported client languages, which thanks to being configurable in a Sharp App can be executed from the command-line using the dotnet tools

v5.8

January 14, 2020

ServiceStack gRPC support

We’re super excited to open the year with the premier feature in this release ServiceStack gRPC, our highly-productive entry into the gRPC universe with a number of value-added additions that makes developing and consuming gRPC Services a joy with USPs that leverages and preserves your existing knowledge and investments and maximizes the utility of your Services offering unprecedented value for your development efforts.

Updated Templates .NET Core 3.1

With the release of .NET Core 3.1 LTS we’ve standardized our Project Templates and tools to .NET Core 3.1 LTS whilst continuing to support existing .NET Core 2.1+ and .NET Framework projects including ASP.NET Core Apps on the .NET Framework.

v5.7

October 01, 2019

.NET Core 3 Updates

Ordinarily we’d have a longer release cadence in between releases with more features, but with the recent release of .NET Core 3 we’ve cut this release cycle short so we can release a version of ServiceStack compatible with .NET Core 3+. Other than that the major focus on this release was #Script with many new features we’re excited to share after covering the ServiceStack changes.

New #Script Updates

We’ve seen great reception of Gist Desktop Apps from the last v5.6 release with a nice shoutout from Jon Galloway in the ASP.NET Community August Stand up, a featured blog post from Scott Hanselman as well features in Hacker News and Reddit.

We’ve since further enhanced #Script capabilities in this release making it more functional then ever, broadening its appeal in its growing list of use-cases.

v5.6

August 12, 2019

Modular Startup

We want to dramatically simplify and improve the experience for configuring ASP.NET Core Apps and make them truly composable, where we can drop-in files that auto configures itself with both ASP.NET Core and ServiceStack’s AppHost so they can encapsulate an entire feature and provide instant utility without needing to wade through different steps of how they should be manually configured at different places in your Startup configuration class.

Mix'n'Match .NET Core Apps

To complete the picture of making it easy as possible to compose ASP.NET Core Apps we’ve created the mix dotnet tool to easily install features which can be installed with:

$ dotnet tool install --global mix

The mix tool is designed around applying ASP.NET Core features captured in GitHub gists to your local .NET Core projects.

Then choosing which features you want to add to your project with mix <name>, e.g:

$ mix redis

Single Page App Component Libraries

To lay the foundation for richer and more tightly integrated UI controls, we’ve created UI and common component libraries for the 3 most popular JS frameworks:

All new Single Page App Project Templates have been pre-configured to use these libraries which will make it a lot easier to deliver new UI components and updates to existing SPA Apps with just an npm upgrade.

v5.5

March 31, 2019

ServiceStack turns 10 🥳

Before we get into unpacking this release we’re happy to announce that we’ve now eclipsed 10 years since our first commit!

I’d like to take this milestone to thank our thousands of Customers we’ve had the pleasure to serve and see our Software used which has amassed more than 27,000,000+ total downloads on NuGet and to see the uptick in adoption of some of our unique features like Add ServiceStack Reference which has been used more than 88,000 times to generate native Typed DTOs amongst its 8 supported languages.

Templates upgrades to #Script

As we continue enhancing ServiceStack’s scripting support with exciting new features, it no longer made sense to call our dynamic scripting language “Templates” which is just one of the many use-cases #Script enables.

#Script is typical of a popular dynamic template language you’d find in other platforms, using the ubiquitously familiar mix of JavaScript Expressions which for increased wrist-friendly readability can be easily composed together using the Unix | operator as embraced by Vue.js filters and Angular’s Template Expressions whist the Script Statement Blocks adopt the universally adopted Handlebars-like syntax that’s ideal for rendering dynamic pages.

v5.4

September 19, 2018

.NET Core Windows Desktop Apps!

Our new app build tool is packed with features for “Chromitizing” any .NET Core Web App into a .NET Core Windows Desktop App that’s as easy as installing the app tool:

$ dotnet tool install -g app

and using it to run your .NET Core Web App’s .dll, e.g:

$ app MyApp.dll

Where it will run your .NET Core App and host it inside an Chromium Embedded Framework (CEF) browser.

This provides instant utility for being able to deploy .NET Core Apps end users can run locally using Chrome’s leading and consistent rendering engine within a Windows Desktop Application.

v5.2

August 28, 2018

Spanified ServiceStack

Major rework was performed across the ServiceStack.Text and ServiceStack.Common foundational libraries to replace its internal usage of StringSegment with .NET’s new high-performance Span and Memory Types primitives which are now used for all JSON/JSV deserialization and many other String utilities.

The new Span<T> and ReadOnlyMemory<char> Types is the successor to StringSegment which are both allocation-free, but Span also enjoys additional runtime support as a JIT intrinsic for improved performance.

This change was primarily an internal refactor so there shouldn’t be any user visible differences except for the addition of the System.Memory dependency which contains the new Memory types. As a general rule we’re averse to adopting new dependencies but the added performance of these new primitives makes it a required dependency for maintaining high-performance libraries.

v5.1

April 24, 2018

Dart and Flutter!

We’re super excited to announce first-class support for Dart and Flutter! - Google’s premier new mobile UI framework for crafting high-quality native interfaces for iOS and Android from a single code-base in record time with a Reactive development model simplifying the effort for building Complex UIs in similar vein to development models pioneered in popular JavaScript frameworks like React, React Native, Vue and Angular. It’s offers a beautiful blend of rapid development cycles with its built-in Hot Reloading giving you instant iterative feedback of changes to your Mobile App in milliseconds, whilst still offering high-performance native experiences at runtime where Dart code is AOT compiled into native ARM in iOS and Android.

v5.0

January 03, 2018

Future Versioning Scheme

Historically ServiceStack releases are focused around “Major release schedules” published along with detailed Release Notes describing new features and changes added in each release. All packages are published together in “lockstep” with the same version number so the effort to upgrade ServiceStack projects can be done all at same time, with low frequency.

Whilst we want to minimize the effort for Customers to upgrade we also want to make any fixes or enhancements to the previous release available sooner as there are often fixes reported and resolved immediately after each release and made available in our pre-release packages on MyGet that most Customers wont get until the next major Release on NuGet.

ServiceStack Mobile and Desktop Apps

The HelloMobile project has been rewritten to use the latest v5 .NET Standard 2.0 and .NET Framework clients and contains multiple versions of the same App demonstrating a number of different calling conventions, service integrations and reuse possibilities for each of the following platforms:

  • WPF
  • UWP
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.OSX
  • Xamarin.Forms
    • iOS
    • Android
    • UWP