Release Notes
This page tracks major changes included in any update starting with version 4.0.0.3
Unreleased
No pending unreleased changes.
Version 4.5.4
- New:
- Support for strict CSP (dynamic inline styles removed) (#634 - thanks rwasef1830)
- Moved .NET Core to
net8.0with noNewtonsoft.Jsondependency (#641 & #679) - Add support for additional client-side headers in custom implementations (#669 - thanks Breederveld)
- Fixes/Changes:
- Removed:
- Support for rarely used providers (#679)
MiniProfiler.EFC7MiniProfiler.Providers.RavenDBMiniProfiler.Providers.SqlServerCe
- Support for rarely used providers (#679)
Version 4.3.8
- New:
- Added an option to control
SpacesAfterCommastoInlineSqlFormatterandSqlServerFormatter(#549 - thanks Turnerj) - Performance improvement: caching assembly names to reduce allocations during stack trace snippet generation (#605 - thanks benbryant0)
- Added
MiniProfiler.Minimalheadless package with is a standalone bare-bones build with no depdencies and no UI, useful for mass scale applications that are viewing the results elsewhere (#636) - Add Nullable Reference Type annotations to the entire codebase (#640)
- Add
MiniProfilerOptions.TimingInstrumentationProviderallowing to hook whenTimings are created, e.g. to driveActivityif desired (#650 - thanks m0sa)
- Added an option to control
- Fixes/Changes:
- Fixed
/results-indexordering (should be newest to oldest) (#550 - thanks spaduret) - Fixed
nonceattribute propagation to generated<link>style element for full CSP support (#565) - Changed popup to show 2 decimal places for timings by default, with a new
PopupDecimalPlacesoption to control this (present everywhere settings are) (#580) - Fix for time duration precision on Linux (#602 - thanks benbryant0)
- Fixed #578: Making SQLite data types compatible for more use cases (#582 - thanks MarkZither)
- Fixed
Version 4.2.22
- Minor fixes to build versioning
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.IncludeParameterValuesfor 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
.OnInternalErrorAPI 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.ResultsAuthorizeAsyncandMiniProfiler.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:
- Fix for ‘i.Started.toUTCString is not a function’ when global serializer options are changed.
- Removed jQuery (built-in) dependency (#442)
- (Major) Drops IE 11 support
- Fix for missing
IMemoryCachedepending on config (#440)
- MySQL Storage:
- Updates
MySqlConnectorto 0.60.1 for misc fixes (#432 - thanks @bgrainger!)
- Updates
- Redis Storage
- Moves from
StackExchange.Redis.StrongNametoStackExchange.Redis2.1.30 (#473)
- Moves from
Version 4.1.0
- ASP.NET Core 3.0 support (MiniProfiler.AspNetCore and MiniProfiler.AspNetCore.Mvc packages, now with a
netcoreapp3.0build) - Error support via
CustomTiming.Errored = true, this will turn the UI red to raise error awareness (#418 & #420) - Adds a
MiniProfiler.EFC7(Entity Framework Classic 7) provider (#397) - Fix for
.Close()tracking - Drops
netstandard1.xsupport (#422)
Version 4.0.0
- ASP.NET Core 2.0+ support (MiniProfiler.AspNetCore and MiniProfiler.AspNetCore.Mvc packages)
- Getting started docs
<mini-profiler>tag helper<profile name="My Step">tag helper
- ASP.NET (non-Core) support (MiniProfiler and MiniProfiler.Mvc5 packages)
- Entity Framework Core (EFCore) support: MiniProfiler.EntityFrameworkCore
- Full
asyncsupport (correct timings) - Multi-threaded access support (goes with
async) netstandard1.5andnetstandard2.0support- 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:
- MySQL: MiniProfiler.Providers.MySql
- Redis: MiniProfiler.Providers.Redis
- SQL Server: MiniProfiler.Providers.SqlServer
- SQL Server CE: MiniProfiler.Providers.SqlServerCe
- Sqlite: MiniProfiler.Providers.Sqlite
- Major version breaking changes
- UI templating has been removed. The
shareandincludestemplates 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 ofprofiler-for fewer conflicts in styling. - A
Namefield 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()andMiniProfiler.StepIf()methods now returnTiming(the same previous underlying type) instead ofIDisposable.IProfilerProviderreplaced withIAsyncProfilerProvider(which addsStopAsync(bool discardResults)).IStoragereplaced withIAsyncStorage(which addsListAsync,SaveAsync,LoadAsync,SetUnviewedAsync,SetViewedAsync, andGetUnviewedIdsAsync).ProfiledDbCommand,ProfiledDbConnection, andSimpleProfiledCommandno longer implementICloneable.MiniProfiler.Settings.(AssembliesToExclude|TypesToExclude|MethodsToExclude)changed fromIEnumerable<string>toHashSet<string>(for performance).MiniProfiler.ToJson(MiniProfiler profiler)is nowprofiler.ToJson()(instance method)[Obsolete]methods removed:IProfilerProvider.Start(ProfileLevel level, string sessionName = null)MiniProfiler.Settings.ExcludeStackTraceSnippetFromSqlTimingsMiniProfiler.Settings.UseExistingjQueryMiniProfilerExtensions.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.
- UI templating has been removed. The