I'm upgrading .NET Core 2.1 to .NET Core 3.0 and I saw [here](https://learn.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&tabs=visual-studio#migrate-startupconfigure) I have to use `UseEndpoints`. However, at some pages I've seen it with either `MapControllerRoute`, `MapDefaultControllerRoute`, or `MapControllers`.

I checked at the [documentation](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.routing.iendpointroutebuilder?view=aspnetcore-3.0) and I saw that `MapDefaultControllerRoute` is basically the same as `MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}")`. But I don't understand the difference with `MapControllers`. What does this last function actually do? The documentation says: "Adds endpoints for controller actions to the IEndpointRouteBuilder without specifying any routes.", but I don't get it, sorry.