redtaped / ez-startup

1 stars 1 forks source link

Spike: Propose best language and framework #2

Closed redtaped closed 1 year ago

redtaped commented 1 year ago

As a developer I’d like to explore the available frameworks and languages available to reach MVP milestone. An initial scaffold of the chosen language and framework should be submitted as a PR.

Acceptance Criteria

  1. Framework and language should run on a windows 11 pc
  2. There should be no external dependencies, everything should be able to run offline once installed.
  3. Deployment should be self contained and not depend on any prerequisite software.
redtaped commented 1 year ago

After initial research, I've narrowed down proposals to rust, go or C#. C# AOT is likely not the right solution given the limitations of not being able to invoke CLI or C files, dependent libraries may not be compatible.

The best compromise if we choose C# is to publish as a self contained application where the framework is included in the release. This satisfies AC#3. https://learn.microsoft.com/en-us/dotnet/core/deploying/#publish-self-contained.

Rust or Go would be useful because they are inherently able to ship as a self contained binary with no runtime dependencies. But limited exposure to these langauges limits their effectiveness for the current owners.

redtaped commented 1 year ago

During backlog refinement, we determined that a self contained C# application is viable, it can launch processes using the Process class and we can manage the window size and location using the lower level unmanaged windows libraries

redtaped commented 1 year ago

Team determined that C# with self-contained framework is the best solution for this initiative. We can revisit other options if we become blocked by this approach.

redtaped commented 1 year ago

Deployment can just be a zip file for MVP that includes all required binaries and exes

redtaped commented 1 year ago

No license for now