2.6.0-preview.1
serialseb
released this
30 Dec 14:33
·
825 commits
to master
since this release
Added
- A new pipeline with "double tap" semantics, which makes most of the old pipeline
look like an old picture, keen memories but visibly dated. - Things don't always happen when we want them too, so everything has been made
async. This includes async contributors with a newNotifyAsync
, async
handlers (just returnTask
orTask<T>
), codecs withIMediaTypeReaderAsync
andIMediaTypeWriterAsync
, and async interceptor withIOperationInterceptorAsync
. - We have an all new in-the-box IoC container. While removing the container from
OpenRasta is on the cards, it's a long path, and in the meantime we now provide
you with a production-grade one, lock-free, fast, and just plain better. You
can even injectFunc<>
andIEnumerable<>
now. Thanks to our friends at Olo
for sponsoring that work!
Changed
- Cool kids have moved on, so we follow. .net 4.6.1 is now a minimum, and we ship
netstandard2.0 too. Are we cool now? 🕶 - The AppVeyor build is now under the OpenRasta organisation. We were not
really organised before, so we (well, @holytshirt) sorted it out, and we feel
much cleaner. IPipeline
can now only be used in the contributor configuration pahse
IEnumerable
.- Methods on handlers returning
void
orTask
will now return a 202 accepted
instead of a 204 no content. If we can't know the semantics we shouldn't give
any better guarantees. If you wish to return a 200, return an OperationResult
instead. - Operations that were not ready for invocation would sometime fail. Now,
either we respond with a 400 when we can't match the request to the response,
or a500
if we can't chose the correct method because the call was ambiguous. - I think errors should be given as much attention as non-errors, that's why we
always content negotiate those errors, so we can exceptionally render exceptional
exceptions using whatever codec you want to use, which is great for your APIs,
but a bit less for your tests. You can now chose if you want that functionality
or if you'd rather let exceptions bubble up, so your server can show their default
error page or whatever. - ⌚️ is relative, apparently. But
RedirectLocation
wasn't. So we allowed relative
URIs. - RFC 2047 may sound like black magic, but if you need it, there's a new implementation
that should be a tad more accurate, and not throw random exceptions on .net core - The
HttpListerHost
has been refactored to manage connections better, clean-up better
and be more usable. Thanks @nmosafi! - With the new container having non-deterministic ordering of components, finding
in which order to wire-up a pipeline is a bit more... Well less... Well it's non
deterministic. So we switched the default call graph generator to the topological
one we've had for a while. Check your pipelines. If you wish to revert to the old
behaviour, a simpleResourceSpace.Use.CustomDependency<IGenerateCallGraphs,WeightedCallGraphGenerator>()
should do the trick, although we don't recommend that.
Deprecated
- All members bar
Notify
onIPipeline
. Because really, why would you ever
want to know anything about the pipeline. IOperationHydrator
is no more. If you have your own, we'll respect that,
but we'd rather you used our new and shinyIRequestEntityReader
.- PipelineContinuation is moslty gone, it wasn't really meant to be used externally.
We madeAbort
obsolete, you should instead throw an exception from the
contributor, for those moments exceptional stuff happens. EvenFinished
was
a bit of a lie. You reached the end of the line or you didn't, and that's all
that ever really mattered. The responsible developer is very sorry and promised
he will never lie again.
Removed
- We try not to remove stuff before the 3.0 jump, so if anything disappeared
by accident, for exemple inPipelineData
, please let us know, it's a bug.
Fixed
- When padding error messages in HTML for IE clients, we would send an
incorrect Length, and no one wants that, so we made it accurate and bigger. - We would try and pad the result even if the response stream is not seekable,
now we check correctly.