When i create a new Blazor web app project, it asks me to select interactive render mode, if i select Auto(Server and WebAssembly), it creates 2 projects, 1 for server, 1 for client.
It seems server project has razor pages, client project has razor pages, so, what is the difference then? What kind of code needs to be placed inside the server project, what kind of code should be placed inside the client project.
If i have a API method that returns list of cities, that api method, should be added as a controller inside server project (CityController.cs and method GetCities)? The client project then injects HTTP service and makes a call to that GetCities?
While i get the server project uses server side rendering via signal-R, i am trying to understand in low level, kind of code that goes into each project (in other words, in what use case one should use server, webassembly or Auto rendering mode options?)
For example, if i want to build a dashboard that displays grids, charts data from an API method(s) and api method need to be created part of this, what type of blazor project needs to be created.