Click here to Skip to main content
15,887,214 members
Home / Discussions / Design and Architecture
   

Design and Architecture

 
QuestionIs a separate view model relevant for Blazor server side given that we can test the whole component with bUnit? Pin
Mr Yossu25-Feb-24 5:38
Mr Yossu25-Feb-24 5:38 
When writing software, whether desktop or web-based, I have always separated the view from the view model. For example, in WPF (Microsoft desktop technology), I used MVVM, kept the XAML view as light as possible and put the logic and data access into a separate view model (regular C# class).

One of the main advantages of this is that it makes the view model easy to unit test, as I can set up mock dependencies, set the public properties that would normally be set by dependency injection or property binding and then call methods no the view model to test the code.

Nowadays I do pretty much everything in Blazor server-side, and used the same approach. My .razor file is pure markup, the .razor.cs file usually only contains overloads for the component life-cycle events, and generally passes the request through to the view model (as above).

However, one of my co-workers is encouraging the team to put all code into the .razor.cs file, and use bUnit to unit test the components. Given that we can mock dependencies, set public parameters and call methods, it does look as if this gives all the benefits of a separate view model, without needing the extra file.

Anyone any thoughts as to the advantages or disadvantages of either approach? Thanks
AnswerRe: Is a separate view model relevant for Blazor server side given that we can test the whole component with bUnit? Pin
Gerry Schmitz25-Feb-24 10:06
mveGerry Schmitz25-Feb-24 10:06 
GeneralRe: Is a separate view model relevant for Blazor server side given that we can test the whole component with bUnit? Pin
Mr Yossu26-Feb-24 3:37
Mr Yossu26-Feb-24 3:37 
GeneralRe: Is a separate view model relevant for Blazor server side given that we can test the whole component with bUnit? Pin
Gerry Schmitz26-Feb-24 4:43
mveGerry Schmitz26-Feb-24 4:43 
GeneralRe: Is a separate view model relevant for Blazor server side given that we can test the whole component with bUnit? Pin
Mr Yossu26-Feb-24 4:49
Mr Yossu26-Feb-24 4:49 
AnswerRe: Is a separate view model relevant for Blazor server side given that we can test the whole component with bUnit? Pin
jschell26-Feb-24 12:32
jschell26-Feb-24 12:32 
AnswerRe: Oh my goodness! Pin
Dave Kreskowiak24-Feb-24 4:38
mveDave Kreskowiak24-Feb-24 4:38 
GeneralRe: Oh my goodness! Pin
Gerry Schmitz24-Feb-24 4:42
mveGerry Schmitz24-Feb-24 4:42 
GeneralRe: Oh my goodness! Pin
Dave Kreskowiak24-Feb-24 5:53
mveDave Kreskowiak24-Feb-24 5:53 
QuestionC# How to populate datagridview from a separate combobox selection Pin
mourad barsoum22-Feb-24 12:57
mourad barsoum22-Feb-24 12:57 
AnswerRe: C# How to populate datagridview from a separate combobox selection Pin
Gerry Schmitz23-Feb-24 7:40
mveGerry Schmitz23-Feb-24 7:40 
AnswerRe: C# How to populate datagridview from a separate combobox selection Pin
Vrend Top11-Apr-24 1:13
Vrend Top11-Apr-24 1:13 
GeneralRe: C# How to populate datagridview from a separate combobox selection Pin
RedDk11-Apr-24 8:11
RedDk11-Apr-24 8:11 
QuestionTop 100 algorithm Pin
mike741120-Jan-24 10:39
mike741120-Jan-24 10:39 
AnswerRe: Top 100 algorithm Pin
Richard MacCutchan29-Jan-24 4:21
mveRichard MacCutchan29-Jan-24 4:21 
AnswerRe: Top 100 algorithm Pin
Pete O'Hanlon29-Jan-24 4:34
mvePete O'Hanlon29-Jan-24 4:34 
Questionuser data system for a web-based e-mail service Pin
mike741115-Jan-24 2:04
mike741115-Jan-24 2:04 
AnswerRe: user data system for a web-based e-mail service Pin
Richard MacCutchan15-Jan-24 2:25
mveRichard MacCutchan15-Jan-24 2:25 
AnswerRe: user data system for a web-based e-mail service Pin
jschell15-Jan-24 4:12
jschell15-Jan-24 4:12 
AnswerRe: user data system for a web-based e-mail service Pin
Eddy Vluggen16-Jan-24 5:00
professionalEddy Vluggen16-Jan-24 5:00 
GeneralRe: user data system for a web-based e-mail service Pin
jschell17-Jan-24 4:24
jschell17-Jan-24 4:24 
GeneralRe: user data system for a web-based e-mail service Pin
Richard MacCutchan17-Jan-24 5:33
mveRichard MacCutchan17-Jan-24 5:33 
GeneralRe: user data system for a web-based e-mail service Pin
RedDk17-Jan-24 8:24
RedDk17-Jan-24 8:24 
GeneralRe: user data system for a web-based e-mail service Pin
Richard MacCutchan17-Jan-24 22:55
mveRichard MacCutchan17-Jan-24 22:55 
GeneralRe: user data system for a web-based e-mail service Pin
RedDk18-Jan-24 8:08
RedDk18-Jan-24 8:08 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.