I'm in the process of designing an application structure and am currently thinking how to structure my asp.net MVC5 front-end.
My application is wizard-like with tabs for each step. It's not a strict wizard as in you need to finish previous step to get to the next one but it's close.
There will be 12 tabs/steps and each of the tabs can hold (but not necessary) up to five subtabs (customers). In a rule of the thumb calculation I think there could be max 12 tabs x 5 clients x 15 fields (average...) = 900 fields on the front-end. This is worst-case, reasonable would be 12x2x10 as I currently don't have full specs for all 12 steps.
My question is should I keep this in one huge tree ViewModel or should I perhaps save each step into DB? So build it from PartialViews or standalone Views. Data will need to be persisted in DB at some point.
During input I will need data from other steps, example - in Step 8 I will need to know what was in Step 3 etc.
Single ViewModel - I have all data ready on-hand at any time, but how is the performance, a quick search got me this SQ question.
Standalone ViewModels - I would need to pull data from DB on-demand, which could be quite often. Data is persisted at each step which is a benefit if errors occur and data is not saved in time.