MiniProfiler for .NET Documentation Go to the repo

Release Notes

This page tracks major changes included in any update starting with version

Version 4.2.1

  • New:
    • Added RavenDB Storage provider (#483 - thanks @lillo42!)
    • Added <script nonce="..." /> to rendering for CSP support (#465)
    • Added dark and “auto” (system preference decides) color themes, total is “Light”, “Dark”, and “Auto” (#451)
    • Generally moves to CSS 3 variables, for easier custom themes as well (#451)
    • Added SqlServerFormatter.IncludeParameterValues for excluding actual values in output if desired (#463)
    • Added “debug” mode (via .EnableDebugMode) that outputs stack dumps for every timing (expensive/heavy, and not intended for normal operation - #482)
    • Added .OnInternalError API to options (Action<Exception>), for logging when an exception during a MiniProfiler occurs (#486).
      • This also means save errors are “swallowed” now (and accessible via this API when desired).
    • (.NET Core only) Added MiniProfilerOptions.ResultsAuthorizeAsync and MiniProfiler.ResultsAuthorizeListAsync (#472)
    • (.NET Core only) Added profiling to all diagnostic events (views, filters, etc. - #475 & #482)
      • New options around this are in the ASP.NET Core docs on the left.
  • Fixes/Changes:
  • MySQL Storage:
    • Updates MySqlConnector to 0.60.1 for misc fixes (#432 - thanks @bgrainger!)
  • Redis Storage
    • Moves from StackExchange.Redis.StrongName to StackExchange.Redis 2.1.30 (#473)

Version 4.1.0

Version 4.0.0

  • ASP.NET Core 2.0+ support (MiniProfiler.AspNetCore and MiniProfiler.AspNetCore.Mvc packages)
  • ASP.NET (non-Core) support (MiniProfiler and MiniProfiler.Mvc5 packages)
  • Entity Framework Core (EFCore) support: MiniProfiler.EntityFrameworkCore
  • Full async support (correct timings)
  • Multi-threaded access support (goes with async)
  • netstandard1.5 and netstandard2.0 support
  • All libraries are strongly named
  • Client timings added to main UI for visual breakdown of requests
  • Storage providers (optional - for persistent storage of MiniProfilers) added and updated:
  • Major version breaking changes
    • UI templating has been removed. The share and includes templates are now much more optimized code. Given the very few people customizing these, they certainly weren’t worth the performance tradeoffs. The includes are now much smaller.
    • CSS class prefixes are now mp- instead of profiler- for fewer conflicts in styling.
    • A Name field has been added to all SQL storage providers.
    • Dropped .NET 4.5 support, due to lack of the framework bits needed to really make async profiling work correctly.
    • MiniProfiler.Step() and MiniProfiler.StepIf() methods now return Timing (the same previous underlying type) instead of IDisposable.
    • IProfilerProvider replaced with IAsyncProfilerProvider (which adds StopAsync(bool discardResults)).
    • IStorage replaced with IAsyncStorage (which adds ListAsync, SaveAsync, LoadAsync, SetUnviewedAsync, SetViewedAsync, and GetUnviewedIdsAsync).
    • ProfiledDbCommand, ProfiledDbConnection, and SimpleProfiledCommand no longer implement ICloneable.
    • MiniProfiler.Settings.(AssembliesToExclude|TypesToExclude|MethodsToExclude) changed from IEnumerable<string> to HashSet<string> (for performance).
    • MiniProfiler.ToJson(MiniProfiler profiler) is now profiler.ToJson() (instance method)
    • [Obsolete] methods removed:
      • IProfilerProvider.Start(ProfileLevel level, string sessionName = null)
      • MiniProfiler.Settings.ExcludeStackTraceSnippetFromSqlTimings
      • MiniProfiler.Settings.UseExistingjQuery
      • MiniProfilerExtensions.Inline<T>(this MiniProfiler profiler, Func<T> selector, string name, ProfileLevel level)
      • MiniProfilerExtensions.Step(this MiniProfiler profiler, string name, ProfileLevel level)
    • More information about v4.0 decisions can be found in Issue #144.