Conversation
bechtd
left a comment
There was a problem hiding this comment.
That's a lot of file updates
Sure is. I got tired of looking at the So, yeah, every single file needed to change since the root namespace changed 😞 |
|
I understand this (creating separate forks for different UIs). So, my point being ... in theory ... it's you can have both UIs, under the same solution. It does make your builds more complex, in that you probably need targeted builds (separate yml) that don't start from the solution file, but rather from the Top-level UI Project file. And both can trigger with PRs and commit-changes. However, GitHub Actions supports all this, if you learn the nuances. This interconnects with why I wanted to make multiple projects in the Update Assistant rewrite solution. When you separate:
It challenges you to honor these separators, and to keep "concerns"(focuses) from bleeding out of one layer and into others. It often requires more surrogates and mappers, but ... in theory ... it ends up reducing complexity and strange behaviors. When you force yourself to have more than one Top-level opinionated UI (MAUI with Blazor, Pure MAUI, WinUI, even console/CLI, React.JS), inside the same solution, you force yourself to "find the seams" between the layers. You are forced to very carefully consider "where does this code belong? Functional Core, or Imperative Shell?" This isn't easy, especially as you are learning newer (or new to you) frameworks, but I believe this is how you build better software, easier to automation test software. I want to try this, for the first time with my repo. I choose a relatively simple game program for this exact reason. The core game engine isn't complicated. The UIs shouldn't be complicated. They should be imperative shells. I want to experiment with this. I need to. And I want you to see this and challenge me, honestly. It's a learning process, but I believe the effort will make for better project designs that translate to better design in our professional work. Ones that don't require "complete rewrites" every time the "new hotness" comes out and Mgmt is telling us "you must now use this tech stack." It would merely be a new project added to the existing solution, a new integration point. |
|
Also, you don't have to have multiple build files. You can have one build with separate parallel jobs, each targeting different level UIs/frameworks, each running on different machine types. GitHub actions even supports this with matrices, environments and other mechanisms we haven't even explored. The build script is itself programming too, with variables and reusability, IF you can see it and understand your tool (GitHub) capabilities to their full extent. |
Renamed project name from
RoyAppMauitoRoyApp