Skip to content

Releases: OData/RESTier

Restier 1.1 RTM

28 Nov 09:03
Compare
Choose a tag to compare

Features:

Platform

ASP.NET Core

New Contributors

Full Changelog: v1.0.0...v1.1.0

Restier v1.0 RTM

05 Jun 20:20
Compare
Choose a tag to compare

Features

  • ASP.NET Classic 4.7.2 and later support
    • Supports Entity Framework Classic 6.x
  • ASP.NET Core 3.1 and later support
    • Supports Entity Framework Classic 6.x
    • Supports Entity Framework Core 5.0 and later

New Contributors

Full Changelog: 0.6.0...v1.0.0

Restier RC1

05 Oct 00:38
Compare
Choose a tag to compare
Restier RC1 Pre-release
Pre-release

THE LONG-AWAITED RELEASE CANDIDATE IS HERE!

The team has been working hard these past 9 months to give you the best product possible. Leading up to this release, Restier services are powering US State agencies, restaurants, and startups around the globe. It has been thoroughly tested and is ready for you to build innovative apps.

Release Notes

Reporting Problems

If you encounter any problems, please open a new Issue and label it "rc1".

A Note on .NET Core Support

We know .NET Core is important, and Version 2 will be rebuilt from the ground up to support .NET Core 3.0. We expect that release to happen sometime in H1 2020.

In the meantime, the recommended approach is to separate your APIs into an ASP.NET Classic WebApi app on .NET Framework 4.7.2, and leverage Entity Framework 6.3 (which can be used on both .NET Framework AND .NET Core) for your entities. This way, your front-end can still be ASP.NET Core, even if the APIs can't.

We know this is not ideal and as community members actively shipping Restier-powered .NET Core apps, we feel your pain. But it is a battle-tested approach that works very well.

New Features

  • Dependency Injection has been significantly refactored to properly implement Constructor injection wherever possible.
  • We've split Restier registration to feel more like .NET Core. Services are now registered at startup, and no longer have to rely on implementing a ConfigureApi override in your API classes.
  • We've decoupled the EF provider from ASP.NET Classic, so you can build CQRS APIs in Restier without unnecessary dependencies.
    • NOTE: Microsoft.Restier.AspNet's NuGet package dependency on Microsoft.Restier.EntityFramework will be removed in the next release.
  • Route mapping now registers a RestierBatchHandler for you by default.
  • You can now correctly specify whether detailed stack traces (cleaned up through Ben.Demystifier) are returned when an exception is thrown. See this example for more details.
  • You can now throw a StatusCodeException to return specific HTTP Status codes and error messages to the API consumer. See this example for more details.

Dependency Changes

  • Compatible with .NET Framework 4.6.2 and later. (Recommend version 4.7.2 for Azure AppService support)
  • Compatible with Microsoft.Extensions.DependencyInjection version 2.2 and later. (Recommend version 3.0)
  • Compatible with Microsoft.OData.Core version 7.6.0 and later.
  • Compatible with EntityFramework version 6.1.3 and later (recommend version 6.3)
  • Compatible with Microsoft.AspNet.OData version 7.2.1 and later.
  • Compatible with Microsoft.AspNet.WebApi version 5.2.7 and later.

API Changes

  • The entire framework has been massively refactored:
    • Projects have been converted to the new SDK-style projects.
    • Project names and package names have been simplified, and in come cases, reverted to earlier incarnations.
    • Namespacing has been simplified.
    • Base implementations have been prefixed with "Default" more consistently, to make it easier to differentiate implementations in providers and unit tests.
    • Entity-Framework specific interface implementations (classes that implement IModelMapper or IModelProducer, for example) have been prefixed with "EF" (EFModelMapper, EFModelProducer, etc) to reduce ambiguity.
    • IServiceCollection.AddService() methods have been renamed to IServiceCollection.AddChainedService() to better explain what is happening under the covers. If you need an unchained service, use the default IServiceCollection.AddSingleton() or IServiceCollection.AddScoped() methods.
    • config.MapRestierRoute() has been changed to config.MapRestier() and has simplified the parameters.
    • Pluralization of Convention-Based methods has been fixed. Filters now use the plural form of your objects, and Insert/Update/Delete interceptors now use the singular form.
    • Unnecessary exception types have been eliminated.

Upgrade Instructions

  • Move services previously registered under EntityFrameworkApi.ConfigureApi() in your Restier API to config.UseRestier() in your WebApiConfig. See this example for more details.
  • If you are building an API based on an Entity Framework DbContext, register for the EF6 Provider in config.UseRestier(). See this example for more details.
  • Change your config.MapRestierRoute() to config.MapRestier(). See this example for more details.
  • Change your [Operation] attributes to specify an OperationType instead of using HasSideEffects. The compiler warning gives you information on how to fix it, see this example for more details.
  • Fix the pluralization of your Interceptors. See this example for more details.

1.0.0 Beta 1

05 Sep 06:46
Compare
Choose a tag to compare
1.0.0 Beta 1 Pre-release
Pre-release

The first Beta release of Restier.

What's Changed

New Contributors

Full Changelog: 0.6.0...1.0.0-beta

0.6.0 Final

11 Aug 02:28
Compare
Choose a tag to compare
0.6.0 Final Pre-release
Pre-release
Remove one more VS2015 feature usage

0.5.0 Beta

24 May 06:37
Compare
Choose a tag to compare
0.5.0 Beta Pre-release
Pre-release

This version includes DI, and will be the final release of 0.5.0, beta is used as there is a dependency in rc stage and can not name a release like 0.5.0.

0.4.0-rc

18 Nov 01:03
Compare
Choose a tag to compare
0.4.0-rc Pre-release
Pre-release

Features supported in 0.4.0-rc

  • Unified hook handler mechanism for users to inject hooks, Tutorial
  • Built-in RestierController now handles most CRUD scenarios for users including entity set access, singleton access, entity access, property access with $count/$value, $count query option support. #136, #193, #234, Tutorial
  • Support building entity set, singleton and operation from Api (previously Domain). Support navigation property binding. Now users can save much time writing code to build model. #207, Tutorial
  • Support in-memory data source provider #189

Bug-fixes since 0.3.0-beta2

  • Fix IISExpress instance startup issue in E2E tests #145, #241
  • Should return 400 if there is any invalid query option #176
  • EF7 project bug fixes #253, #254

Improvements since 0.3.0-beta2

  • Thorough API cleanup, code refactor and concept reduction #164
  • The Conventions project was merged into the Core project. Conventions are now enabled by default. The OnModelExtending convention was removed due to inconsistency. #191
  • Add a sample service with an in-memory provider #189
  • Unified exception-handling process #24, #26
  • Simplified MapRestierRoute now takes an Api class instead of a controller class. No custom controller required in simple cases.
  • Update project URL in RESTier NuGet packages.

0.4.0-beta

30 Oct 03:42
Compare
Choose a tag to compare
0.4.0-beta Pre-release
Pre-release

Features supported in 0.4.0-beta

  • Unified hook handler mechanism for users to inject hooks, Tutorial
  • Built-in RestierController now handles most CRUD scenarios for users including entity set access, entity access, property access with $count/$value support. #193, #234, Tutorial
  • Support building entity set, singleton and operation from Api (previously Domain). Now users can save much time writing code to build model. #207, Tutorial
  • Support in-memory data source provider #189

Bug-fixes since 0.3.0-beta2

  • Fix IISExpress instance startup issue in E2E tests #145, #241
  • Should return 400 if there is any invalid query option #176

Improvements since 0.3.0-beta2

  • Thorough API cleanup, code refactor and concept reduction #164
  • The Conventions project was merged into the Core project. Conventions are now enabled by default. The OnModelExtending convention was removed due to inconsistency. #191
  • Add a sample service with an in-memory provider #189
  • Unified exception-handling process #24, #26
  • Simplified MapRestierRoute now takes an Api class instead of a controller class. No custom controller required in simple cases.

0.3.0-beta2

25 Sep 06:42
Compare
Choose a tag to compare
0.3.0-beta2 Pre-release
Pre-release

Features supported in 0.3.0-beta2

Bug-fixes since 0.3.0-beta1

  • Fix incorrect status code #115
  • Computed annotation should not be added for Identity property #116

Improvements since 0.3.0-beta1

  • Automatically start TripPin service when running E2E cases #146
  • No need to change machine configuration for running tests under Release mode

Doc: http://odata.github.io/RESTier/#02-45-0-3-0-beta-2
Nuget packages: https://www.nuget.org/packages/Microsoft.Restier/0.3.0-beta2

0.3.0-beta1

10 Oct 07:25
Compare
Choose a tag to compare
0.3.0-beta1 Pre-release
Pre-release

Features supported in 0.3.0-beta1

  • Complex type support #96

Improvements since 0.2.0-pre

  • Northwind service uses script to generate database instead of .mdf/.ldf files #77
  • Add StyleCop and FxCop to build process to ensure code quality
  • TripPin service supports singleton
  • Visual Studio 2015 and MSSQLLocalDB
  • Use xUnit 2.0 as the test framework for RESTier #104

Doc: http://odata.github.io/RESTier/#02-08-0-3-0-beta-1
Nuget: http://www.nuget.org/packages/Microsoft.Restier/0.3.0-beta1