Skip to content

Easy to plugin library for tracing most common problems when developing a Blazor application like unnecessary renders, memory leaks, slow components

License

Notifications You must be signed in to change notification settings

WebVella/WebVella.BlazorTrace

Repository files navigation

Documentation Dotnet GitHub Repo stars Nuget version Nuget download MIT License

What is BlazorTrace?

An easy to add library that will enable you to get detailed information about your Blazor components rerenders and memory, as well as compare it with different snapshots that you created. It is targeting Blazor UI developers and presents the information in a simple and focused way. BlazorTrace will help you develop better, faster and more consistent user experience with your Blazor applications.

About Us

We are a small team of early Blazor adopters that created several complex Blazor applications that work in production. We prefer working with WebAssembly deployments but SSR is getting a favorite fast. We have 15+ experience in creating .net projects. Here is some examples of our work

WebVella ERP GitHub Repo stars Nuget download
Document Templates Library GitHub Repo stars Nuget download
Tefter GitHub Repo stars Nuget download
Npgsql.Extensions GitHub Repo stars Nuget download

How to get it

You can either clone this repository or get the Nuget package

Please help by giving a star

GitHub stars guide developers toward great tools. If you find this project valuable, please give it a star – it helps the community and takes just a second!⭐

Documentation

You can find our documentation in the Wiki section of this repository

Get Started

To start using BlazorTrace you need to do the following simple steps:

  1. Add the latest version of the WebVella.BlazorTrace Nuget package to your component holding projects directly. It is important to be directly referenced, so the FodyWeavers.xml and WvBlazorTraceModule.cs can be generated in the projects root!
  2. Add the following lines in your Program.cs file. You can get more info about options to fine tune or extending SignalR hub size for larger snapshot in the wiki.
builder.Services.AddBlazorTrace();
  1. In your _Imports.razor file add the following lines so all supported components can start being monitored
@using WebVella.BlazorTrace;
@attribute [WvBlazorTrace]
  1. Add the BlazorTrace component at the end of your App.razor or Routes.razor component (depending on your project type)
<Router AppAssembly="@typeof(App).Assembly">
...
</Router>
<WvBlazorTrace/> @* <-- INSERT HERE *@
  1. Rebuild the solution
  2. Thats it. You can start reviewing the data. PRO TIP: Use the F1 (show) and Esc (hide) to save time.

Method OnEnter/OnExit call information

BlazorTrace modal

Log signals information

BlazorTrace modal

Trace calls detail information

BlazorTrace modal

Memory detail information

BlazorTrace modal

Limit hits

BlazorTrace modal

Snapshots

BlazorTrace modal

Muted traces

BlazorTrace modal

License

BlazorTrace is distributed under the MIT license.

Acknowledgments

BlazorTrace wouldn't be possible without the incredible encouragement and support of amazing people and communities. Thanks to all of you!

For being our fist contributor and thus boosting our motivation to make BlazorTrace better.

He saved time to all of us, by finding a way how to create faster tracer intergation with an Attribute and FODY

For helping with the FODY implementation

Provided the idea of creating CSV and JSON exports of the data for easier postpocessing and analizing

These Reddit communities are home to incredibly welcoming and knowledgeable people, always ready to offer help with questions, problems, or advice.

About

Easy to plugin library for tracing most common problems when developing a Blazor application like unnecessary renders, memory leaks, slow components

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors