ServiceStack on .NET Core released!

.NET Core for ServiceStack is here!

We’re super excited to announce ServiceStack is now running on .NET Core.
If you’re interested running on .NET Core, please see the v4.5.2 Release Notes for the full details on ServiceStack’s integration story and the different conventions in .NET Core: http://docs.servicestack.net/releases/v4.5.2.html

.NET Core was the most requested feature request of all time and was the also the feature we’ve been most looking forward to ourselves as we finally have a clean, fast, stable platform for running .NET Server Apps on Linux we can recommend running on production. We’ve published this release late last week and have already had a tremendous response from the announcement tweet - with the resulting momentum even getting us featured in a Hanselman post :slight_smile:

Whilst I encourage you to read the full release notes, I’ll do my best to summarize here. Nearly all of ServiceStack’s features are now available across 21 of our most popular NuGet packages, inc. OrmLite support for SQL Server, PostgreSQL and Sqlite. We’ve been able to achieve excellent integration and code-reuse where your ServiceStack AppHost can be registered as a .NET Core module and most of your Service Implementation that uses ServiceStack libraries remains unchanged.

.NET Core Live Demos running in Linux / Docker

We’ve ported a number of existing Live Demos to .NET Core providing example projects so you can easily compare .NET 4.5 ServiceStack code-bases with what it looks like in .NET Core at: https://github.com/NetCoreApps/LiveDemos

All .NET Core Live Demos are running on Linux / Docker using AWS ECS Container Service. We’re particularly optimistic about .NET Core Apps being able to natively participate in the thriving Linux / Docker ecosystem and believe it’s the future for deployment / hosting where you can package your App and it’s dependencies in a Container image and manage deployment / hosting and scaling instances as an opaque unit. After it’s packaged in a Docker Container the fact that your App runs .NET becomes a transparent implementation detail, e.g. you’re able to take advantage of the same tooling ecosystem being built around Docker on the same playing field as if it were a pure LAMP stack.

We’re maintaining .NET Core packages isolated from the Main NuGet packages separated with a .Core suffix until we’re satisfied .NET Core has been battle-tested in the wild which will enable us to make frequent releases outside of the main .NET 4.5 release cycle. We recommend using the “1.0.**” to reference all ServiceStack .NET Core packages that way you’ll get the latest version whenever you run dotnet restore

New Docs Website

Whilst .NET Core was the predominant feature in this release we’ve also moved docs in the ServiceStack wiki to the new ServiceStack Docs website at: http://docs.servicestack.net - The new website is built using Github’s new Docs Pages feature which is powered behind-the-scenes by its Jekyll static website generator which will automatically regenerate the docs website on every commit to https://github.com/ServiceStack/docs where the docs are now maintained.

New Wire Binary Format

A new fast binary format for the Wire serializer developed by the Akka was contributed by @Mac which also includes a generic Typed WireServiceClient - Wire is a fast POCO alternative with comparable performance to ProtoBuf and MessagePack.

MongoDB AuthRepository upgraded

The MongoDbAuthRepository has been upgraded to use the latest v2.3.0 of the mongocsharpdriver that now also implements the new IManageApiKeys interface so it can now also be used as the persistent back-end for the API Key AuthProvider. Special thanks to @ivanfioravanti for contributing the upgrade.

Facebook AuthProvider upgraded to 2.8

As Facebook is deprecating its older v2.1 API at the end of this month we’ve upgraded the Facebook AuthProvider to use their latest v2.8 APIs.

DELETE FROM Table JOIN

OrmLite added support for deleting rows by querying from a joined table using a Typed SqlExpression, e.g:

var q = db.From<Person>()
    .Join<PersonJoin>((x, y) => http://x.Id == y.PersonId)
    .Where<PersonJoin>(x => http://x.Id == 2);

db.Delete(q);

Please see the full release notes includes for a number of other minor features added in this release: http://docs.servicestack.net/releases/v4.5.2.html

If you’re currently running ServiceStack on Linux with Mono we strongly recommend upgrading to .NET Core to take advantage of its superior performance, stability and great support - which is finally a production-grade platform for running ServiceStack/.NET Server Apps on Linux we can recommend. We’ll be on standby to quickly resolve any issues you may hit and are very interested in hearing about your experience with upgrading your existing code-bases to use .NET Core - feel free to drop us a line here.

Thanks!

1 Like

Very excited about this. Is there a special tag to use in this forum for .net core questions, or use this thread? I’m running into an access denied error on Cloud9 (at ServiceStack.IPAddressExtensions.GetAllNetworkInterfaceIpv4Addresses()) when I add ServiceStack to a working aspnet core project.

1 Like

Hi Matt I’ve just created a new #netcore Category you can use.

Can you please post a new topic with details about the issue, e.g. can you include whether this on Windows or Linux and if the App runs locally.

This topic is now pinned globally. It will appear at the top of its category and all topic lists until it is unpinned by staff for everyone, or by individual users for themselves.

1 Like

Good work @mythz and @xplicit and everybody else involved!

2 Likes

This topic is now unpinned. It will no longer appear at the top of its category.