maui
maui copied to clipboard
[SingleProject] it's a pain, not a feature ?
SingleProject
gather arguments why it's a pain to develop with
gather arguments why it leads to a lot of anti-patterns (it's an anti-pattern, not a feature)
Cons
doesn't compile without all workloads available
platform-specific code is scattered all over the code base
impossible to introduce a new platform without touching the whole code base
build-system is scattered with platform-specific msbuild-variables and other hard to maintain artifacts; a new generation of franken-style build system is evolving
all platforms have to be implemented, even if they are not needed
parallel usage of platforms is impossible
Pros
https://github.com/dotnet/Microsoft.Maui.Graphics/issues/70#issuecomment-824899308
Part of the reason for putting everything in one project like this is that it will reduce the number of resulting assemblies, and allows us to avoid using shared projects where there is shared code between two platforms (Mac and iOS).
Antipatterns
build-sorcery instead of object-oriented inheritance
with anti-object-oriented overuse of partial classes and static extensions the implementations became hard to maintain and widely dependent on each over
seems that the architecture avoids by any means the usage of generic classes / interfaces