Release Notes
This page tracks major changes included in any update starting with version 4.0.0.3
Unreleased
- New:
- Support for strict CSP (dynamic inline styles removed) (#634 - thanks rwasef1830)
- Adds
net6.0
build with noNewtonsoft.Json
dependency (#641)
- Fixes/Changes:
Version 4.3.8
- New:
- Added an option to control
SpacesAfterCommas
toInlineSqlFormatter
andSqlServerFormatter
(#549 - thanks Turnerj) - Performance improvement: caching assembly names to reduce allocations during stack trace snippet generation (#605 - thanks benbryant0)
- Added
MiniProfiler.Minimal
headless 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.TimingInstrumentationProvider
allowing to hook whenTiming
s are created, e.g. to driveActivity
if desired (#650 - thanks m0sa)
- Added an option to control
- Fixes/Changes:
- Fixed
/results-index
ordering (should be newest to oldest) (#550 - thanks spaduret) - Fixed
nonce
attribute 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
PopupDecimalPlaces
option 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.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
andMiniProfiler.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
IMemoryCache
depending on config (#440)
- MySQL Storage:
- Updates
MySqlConnector
to 0.60.1 for misc fixes (#432 - thanks @bgrainger!)
- Updates
- Redis Storage
- Moves from
StackExchange.Redis.StrongName
toStackExchange.Redis
2.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.0
build) - 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.x
support (#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
async
support (correct timings) - Multi-threaded access support (goes with
async
) netstandard1.5
andnetstandard2.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:
- 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
share
andincludes
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 ofprofiler-
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()
andMiniProfiler.StepIf()
methods now returnTiming
(the same previous underlying type) instead ofIDisposable
.IProfilerProvider
replaced withIAsyncProfilerProvider
(which addsStopAsync(bool discardResults)
).IStorage
replaced withIAsyncStorage
(which addsListAsync
,SaveAsync
,LoadAsync
,SetUnviewedAsync
,SetViewedAsync
, andGetUnviewedIdsAsync
).ProfiledDbCommand
,ProfiledDbConnection
, andSimpleProfiledCommand
no 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.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.
- UI templating has been removed. The