Giraffe v4.0.0 Release Notes

Release Date: 2019-09-29 // over 4 years ago
  • โฌ†๏ธ Giraffe 4.0.0 has been tested against netcoreapp3.0 alongside netcoreapp2.1 and net461. All sample code has been upgraded to .NET Core 3.0 as well.

    ATTENTION:

    ๐Ÿš€ This release of Giraffe fixes a bug in the routef handler which would have previously matched a route too eagerly.

    Before:
    Route: /foo/bar/hello/world
    routef: /foo/bar/%s
    Match: true
    
    Now:
    Route: /foo/bar/hello/world
    routef: /foo/bar/%s
    Match: false
    

    ๐Ÿ‘€ For more information please see issue #347.

    ๐Ÿ†• New features

    • ๐Ÿ‘Œ Support array of 'T as a child in form binding
    • โž• Added a new DateTime extension method ToIsoString which produces a RFC3339 formatted string, and corrected the docs on the existing ToHtmlString extension method which actually produces a RFC822 formatted string.

    ๐Ÿ› Bug fixes and breaking changes

    • ๐Ÿ›  Fixed routef to not match more than one URL path segment.
    • ๐Ÿ›  Fixed the _ariaLabelledBy attribute in the GiraffeViewEngine
    • ๐Ÿ›  Fixed case insensitive route handlers on Ubuntu
    • ๐Ÿ”„ Changed minimum version of Newtonsoft.Json to 11.0.2. This allows Giraffe to be compatible with Azure Functions.
    • ๐Ÿ“‡ Renamed tryMatchInput to tryMatchInputExact and swapped the order of arguments so that the string value comes last
    • โž• Added new version of tryMatchInput which accepts MatchSettings record:

      type MatchMode =
          | Exact                // Will try to match entire string from start to end.
          | StartsWith           // Will try to match a substring. Subject string should start with test case.
          | EndsWith             // Will try to match a substring. Subject string should end with test case.
          | Contains             // Will try to match a substring. Subject string should contain test case.
      
      type MatchOptions = { IgnoreCase: bool; MatchMode: MatchMode; }