Skip to content

v1.2

Compare
Choose a tag to compare
@CypherPotato CypherPotato released this 29 Oct 05:12
· 43 commits to main since this release

v1.2

This changelog includes changes from v1.0.2 to v1.2.0.

What's Changed

  • Added the StringValue.Create(string) method.
  • Added the HttpResponse(HttpStatusInformation) constructor.
  • Added IEquatable<Route> to Route class.
  • Added IEquatable<MultipartObject> to MultipartObject class.
  • Added notnull for constraint <T> of the ValueResult<T> class.
  • Added the DefaultPageCSS static property to DefaultMessagePage class.
  • Added the CreateBuilder(string) static method to HttpServer class.
  • Added experimental support for listening ports paths instead only listening at the root index.
  • Added the ListeningPort.Path property, plus their constructors.
  • Added the HttpRequest.RouteParameters property. In next Sisk versions, all path/route parameters will be moved to this property instead HttpRequest.Query. For now, the Query property will have the same behavior as before.
  • Added boolean operators for HttpStatusInformation struct.
  • Added the StringKeyStore class.
  • Added the CookieHelper.BuildCookieHeaderValue static method.
  • Added the ConfigurationFileLookupDirectory enum to PortableConfigurationBuilder.WithConfigFile method.
  • Added the HttpContext.ExtraHeaders property.
  • Added the extension method HttpResponse.WithCookie(Cookie) method.
  • Added the HttpServerExecutionResult.Context property.
  • Improved the ListeningPort.Parse method.
  • Improved various CookieHelpers methods syntax signatures.
  • The HttpContext.Router property ins't nullable anymore.
  • The HttpServerConfiguration.AccessLogsStream property nows defaults to LogStream.ConsoleOutput.
  • The HttpRequestException is now sealed.
  • The HttpResponse.Headers property ins't read-only anymore.
  • The HttpServerFlags.EnableNewMultipartFormReader is now enabled by default. If you encounter problems with the Multipart form parser, you can disable it and use the old parser.
  • The Router.GlobalRequestHandlers ins't nullable anymore. And it is an List<IRequestHandler> instead IRequestHandler[] now.
  • The Router.NotFoundErrorHandler and Router.MethodNotAllowedErrorHandler now, by default, returns an HTML response from DefaultMessagePage if the requests accepts text/html. You can disable this behavior by overriding the mentioned properties.
  • The ServerConfiguration.MaximumContentLength property is now Int64 instead Int32.
  • Route matching and conflict catching algorithms improved.
  • Removed string-based route-path algorithms.
  • Fixed an issue regarding how the CertificateUtil class generates hashcodes for DNS names.
  • Fixed various documentation members typos.
  • Fixed an issue where the Expires and Last-Modified headers from HttpContentHeaders objects weren't being sent as universal time, but local time.
  • Fixed more issues related ot the HttpContentHeaders.
  • Fixed an issue where the HttpServer weren't releasing the WaitNext() method on dispose.
  • Fixed an issue related to HttpWebSocket connections not being correctly closed.
  • Fixed Sisk.SslProxy HTTP serializer and deserializer issues.
  • Fixed logic error on StringValueCollectoin.TryGetValue.
  • Fixed multiple issues related to the IniConfigurationReader INI-configuration reader.
  • Fixed numeric errors on SizeHelper constants.

Breaking and deprecating changes:

  • [Breaking] Dropped support for .NET 6 and 7. These versions will be maintained until November 30, 2024, in the legacy 1.0.x branch for severe bugs and critical security issues.
  • [Breaking] Removed the HttpServerHostContextBuilder.UseAutoScan(bool) method. The bool parameter was removed.
  • [Breaking] Removed the HtmlContent.DefaultEncoding static property. It now evaluates to Encoding.Default.
  • [Breaking] Removed the HttpRequest.SetContextBag* and HttpRequest.GetContextBag* methods. You should use the HttpRequest.Bag property instead.
  • [Breaking] Removed the HttpRequest.Close* method. You should use the HttpResponse.Refuse() method instead.
  • [Breaking] Removed the HttpResponse.CreateEmptyResponse method. You should use the empty HttpResponse constructor instead.
  • [Breaking] Removed the HttpResponse.CreateRedirectResponse method.
  • [Breaking] Removed the HttpResponse.StatusInformatoin property. You should use the HttpResponse.Status property instead.
  • [Breaking] The AutoScanModules methods (on Router and HttpServerHostContextBuilder) now automatically set static classes as static members and searches for instance and static methods in instance classes if an public constructor is found.
  • [Breaking] The RouterModule.HasRequestHandler(IRequestHandler) method is now protected. Before was public.
  • [Breaking] Renamed the Sisk.IniConfiguration.IniConfigurationPipeline class name to IniConfigurationReader.
  • [Depreated] the HttpRequest.GetQueryValue and HttpRequest.GetQueryValue<T>(string) methods are now deprecated. You should use the HttpRequest.Query property instead.