Skip to content

Taking it to the Next Level! #872

Open
@softworkz

Description

@softworkz

Hi @FlorianRappl and @GregorBiswanger,

after reading the "Reloaded Discussion", I thought it's time for some positive vibe and try to move things forward a bit.
Before I'm going to shock you with the intentions and ideas I have, I think I should drop the magic words, saying that I'm willing to actively help in these regards rather than demanding anything. Essentially, I'm kind of forced into it, because the slow debugging startup times (and a few other limitations) are preventing me from finishing my work. Now I could do just the minimum required changes privately, but I thought it would be nice and fair to provide some return for the benefits that we gain from your project.

Proposed Changes

In the other conversation, you mentioned that you made some plans for future evolvement, so I hope this is not too far off, even though it may appear a bit radical ☢

Anway, here's what I'm up to:

  • Eliminate the CLI tool - do everything with MSBuild instead
  • Eliminate electron.manifest.json - use MSBuild (Project-) properties instead
    • Then create package.json files dynamically from the MSBuild properties
    • This will also create a consistent appearance
  • Greatly Improve the debugging experience
    • Minimize startup times
    • Debug the ASP.Net process, by default not the Electron process
    • Enable Hot Reload (at least edit+continue) for the ASP.Net code
      Ideally also get it working like with Browser Link
    • Make sure that all processes get terminated in case of non-graceful exit during debugging
    • Enable node.js javascript debugging in Visual Studio (probably requires a secondary project in the solution)
    • Enable debugging of (browser-)javascript in Visual Studio (probably requires a secondary project in the solution)
  • Establish an "unpackaged" run-mode
    This means to use a regular build (to MSIL, without publish) at the .NET side and an unpackaged configuration at the Electron side (just npm install, not invoking electron-builder)
    • The Electron side should use MSBuild's incremental build abilities, i.e. re-build it only when changes are made that may affect the Electron output
    • ,NET side is using incremental build anyway
  • Allow freely choosing the version of Electron and the version of electron-builder
  • Make RID selection part of the project
  • Re-structure the build folder layout
    Putting the electron files into the same subfolder path like the .net build output, e.g. bin\net8.0\win-x64, because bin\Desktop is ambiguous when building for multiple target RIDs.
  • Enable building of Linux packages on Windows via WSL
    Only the electron build commands need to be run on WSL, the .net side can be built on Windows
  • Enable running and debugging Linux outputs on Windows (by running them on WSL)
  • Use VS/MSBuild publishing mechanisms for creating Electron packages
    • Use "Folder Publishing" type - try to hide the others
    • All those parameters which are currently passed through by the CLI, can then be set just directly/naturally, then
  • Remove distracting elements from the project (e.g.: no need for 'pack')
  • etc.

Let me know what you think about it!

sw

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions