Our first ViewModel
Now that we have a clear vision of the request/response flow and its main actors, we can start building something. Our client doesn't even exist yet, but we can easily guess what we need to build it up--a set of CRUD methods for each one of the entries we identified early.
If we already used ASP.NET MVC at least once, we already know that the most straightforward way to do that is to create a dedicated Controller for each entry type. However, before adding each one of them, it can be wise to create the corresponding ViewModel so that it can handle the entry data in a strongly-typed fashion.
QuizViewModel
We might as well start with the flagship entry of our application, which will also be the most relevant and complex one.
Wait a minute, why are we starting with the ViewModel if we don't have a data model in place? Where will we get the data from?
Such questions are anything but trivial and deserve a concise explanation before going further. One of the biggest advantages of...