You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Why has the naming of what has traditionally (for 16+ years--since MVVM was created) been called "ViewModels" now started being called "PageModels"?
Should a "ViewModel" for a specific control now be called a "ControlModel"?
What classifies as a "Model" (with no other qualifiers)?
In the new code, this includes UI-specific functionality and dependencies, and so it isn't a "pure data model" in the traditional sense.
What is the "Data" directory for in the new templates?
It appears to contain an assortment of files related to working with data, but not the data itself.
It also contains a "SeedDataService" rather than having this in the "Services" directory. And, that "Services" directory doesn't contain any services, but, rather miscellaneous classes that seem better to be classified as "Utilities".
And, that's before I start asking about the distinction and differentiation between "Extentions" and Utilities", as the terms seem to be used interchangeably in the code.
Yes, this all probably seems like I'm being picky over semantics, and I should just get over it, but:
Naming consistency helps with understanding.
Having established (& followed) conventions helps with understanding.
Easier understanding (& less misunderstanding) improves maintainability and allows for faster modification of existing code.
Having templates that do not reflect the conventions of the vast majority of documentation in the world and refer to "ViewModels" is likely to be confusing for people.
These new templates also do not reflect official MAUI samples and workshops, nor do they reflect what is taught in the MAUI-related content in Microsoft Learn modules.
I get that there's an argument that this is just sample code and people don't have to follow it.
However, time and again, I've heard from developers who assume that what Microsoft put in the default templates should be taken as a guide and is deemed "best practice".
I also get that these changes are now "in the product", and so there would be big consequences if they were changed.
However:
Little time was given for feedback on these changes.
Because the only way to see the output of the new templates was to build the source and run locally, this was a barrier preventing more people from giving feedback.
An early change has fewer consequences than one after a longer period of time.
I can make informed guesses about why all the above was done, but I'm not sure it is what the majority of developers expect, I'm almost certain it doesn't reflect the conventions that most developers currently use, and it doesn't set up clear conventions that will be easy for people starting out and set them up for successfully creating code that is easy to maintain.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Based on the new templates:
Why has the naming of what has traditionally (for 16+ years--since MVVM was created) been called "ViewModels" now started being called "PageModels"?
Should a "ViewModel" for a specific control now be called a "ControlModel"?
What classifies as a "Model" (with no other qualifiers)?
In the new code, this includes UI-specific functionality and dependencies, and so it isn't a "pure data model" in the traditional sense.
What is the "Data" directory for in the new templates?
It appears to contain an assortment of files related to working with data, but not the data itself.
It also contains a "SeedDataService" rather than having this in the "Services" directory. And, that "Services" directory doesn't contain any services, but, rather miscellaneous classes that seem better to be classified as "Utilities".
And, that's before I start asking about the distinction and differentiation between "Extentions" and Utilities", as the terms seem to be used interchangeably in the code.
Yes, this all probably seems like I'm being picky over semantics, and I should just get over it, but:
I get that there's an argument that this is just sample code and people don't have to follow it.
However, time and again, I've heard from developers who assume that what Microsoft put in the default templates should be taken as a guide and is deemed "best practice".
I also get that these changes are now "in the product", and so there would be big consequences if they were changed.
However:
I can make informed guesses about why all the above was done, but I'm not sure it is what the majority of developers expect, I'm almost certain it doesn't reflect the conventions that most developers currently use, and it doesn't set up clear conventions that will be easy for people starting out and set them up for successfully creating code that is easy to maintain.
Beta Was this translation helpful? Give feedback.
All reactions