Yes indeed.
This is part of the reason why there are 2 Blazor flavors:
- Blazor WebAssembly (i.e. client side Blazor)
- Blazor Server
Blazor Server apps will only ever respond to the browser with the following file:
- index.html
- css
- blazor.server.js
- Other usual stuff (e.g. img's fonts, etc)
All the rendering code and other code (your awesome libraries with your awesome code) will run on the server.
Using SignalR, the browser and server will constantly stay in touch (usually via websockets), and whenever the UI needs to change, the server will make calculations and tell the browser how to re-render the UI. All this magic happens in the browser thanks to that blazor.server.js file.
With this pattern, no DLL's are required on the browser
Now, when it comes to Blazor WebAssembly (client side flavor), you probably don't want to deliver to the browser any sensitive proprietary code, etc. Sure, you can always use tools to obfuscate your code, but you probably want to make API calls where possible and have sensitive code run on the server.