Debug Links​
To provide better visibility to the hidden functionality in ServiceStack we've added Debug Info links section to the /metadata
page which add links to any Plugins with Web UI's, e.g:
The Debug Links section is only available in DebugMode (recap: set by default in Debug builds or explicitly with Config.DebugMode = true
). In addition, users with the Admin role (or if Config.AdminAuthSecret
is enabled) can also view the debug Plugins UI's in production.
You can add links to your own Plugins in the metadata pages with:
appHost.GetPlugin<MetadataFeature>().AddPluginLink("swagger-ui/", "Swagger UI");
appHost.GetPlugin<MetadataFeature>().AddDebugLink("?debug=requestinfo", "Request Info");
AddPluginLink
adds links under the Plugin Links section and should be used if your plugin is publicly visible, otherwise use AddDebugLink
for plugins only available during debugging or development.
Auto Mapping​
Improved Support for non-POCO types​
Previously you could only map between top-level POCO models, now you can map between scalars and collections directly, e.g:
var intVal = 2L.ConvertTo<int>();
var decimalVal = 4.4d.ConvertTo<decimal>();
var usersSet = new[] { new User(1), new User(2) }.ConvertTo<HashSet<User>>();
Improved Auto-Mapping Performance​
A better caching strategy is used for conversions paths and now mapping fields utilize cached Delegate expressions so POCO's with fields Map much faster.
Async Support​
Consistent handling of Async Responses​
Previously Response Filters were called with the Task response returned from async services for the Response DTO, e.g. Task<TResponse>
. The response filters are now chained to the task so Response filters see the same native TResponse
DTO that are passed in from Sync services.
Async services can now be used in MQ Servers​
Async responses now block for results which is in-line with sync Services behavior where Message Queue Handlers only process one message at a time for each worker thread assigned to the Request type.
NuGet packages specify min versions​
To ensure NuGet pulls the latest dependencies when installing any ServiceStack package, a minimum version is now specified for all NuGet package dependencies. This should alleviate dependency issues people are seeing from NuGet's default behavior of pulling down old packages.