Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Solution refactor #211

Merged
merged 1 commit into from
Jun 30, 2024
Merged

Solution refactor #211

merged 1 commit into from
Jun 30, 2024

Conversation

tareqimbasher
Copy link
Owner

@tareqimbasher tareqimbasher commented Jun 6, 2024

Solution restructure

When I started this project I knew I wanted to work towards these high-level minimum requirements:

  1. Must support Windows, macOS and Linux
  2. Must support at least .NET 6 or higher
  3. Must run with as little hassle as possible for end users.

However I had yet to figure out how the pieces will fall on the board. I initially took a layered approach to structuring the solution, this helped me clearly understand the different components, abstractions and dependencies that will make up the app during development. That has now served its purpose, and its time for a simpler structure that's easier to understand and maintain. This restructure aims to:

  1. Make the solution easier to maintain by reducing separation between components and bringing more related functionality together.
  2. Make the solution easier to review by the community and easier to understand and contribute to.

I plan to add documentation explaining the high level concepts and structure of the solution to help facilitate review and contribution.

Some notable technical changes:

  • Reduced number of projects. Most of the core functionality of NetPad is now in a new NetPad.Runtime project
  • The concept of a "ScriptRuntime" is now called a "ScriptRunner" and is part of the "Execution Model"
  • Use Directory.Build.props file and C# 12 features
  • No refactoring was done to the JS app
  • Fix web version 'process' pollyfill
  • Passing --swagger flag to NetPad.Apps.App generates Swagger client code

Refactoring that is also planned soon:

  • Upgrading to .NET 8
  • Refactoring of the JS app
  • Changing the name of the NetPad.Apps.App project and the folder containing the JS client app, currently named "App"

When I started this project I knew I wanted to work towards these minimum requirements:

1. Must support Windows, macOS and Linux
2. Must support at least .NET 6 or higher
3. Must run with as little hassle as possible for end users.

I initially took a layered approach to structuring the solution, this helped me clearly understand the different components, abstractions and dependencies that will make up the app during development. Its time for a simpler structure however that's easier to understand and maintain. This restructure aims to:

1. Make the solution easier to maintain by reducing separation between components and bringing more related functionality together.
2. Make the solution easier to review by the community and easier to understand and contribute to.

I plan to add documentation explaining the high level concepts and structure of the solution to help facilitate review and contribution.

Some notable technical changes:

- Reduced number of projects. Most of the core functionality of NetPad is now in a new NetPad.Runtime project
- The concept of a "ScriptRuntime" is now called a "ScriptRunner" and is part of the "Execution Model"
- Use Directory.Build.props file and C# 12 features
- No refactoring was done to the JS app
- Fix web version 'process' pollyfill
- Passing --swagger flag to NetPad.Apps.App generates Swagger client code

Refactoring that is also planned soon:
  - Refactoring of the JS app
  - Changing the name of the NetPad.Apps.App project and the folder containing the JS client app, currently named "App"
@tareqimbasher tareqimbasher marked this pull request as ready for review June 30, 2024 12:53
@tareqimbasher tareqimbasher merged commit 15bd926 into main Jun 30, 2024
9 checks passed
@tareqimbasher tareqimbasher deleted the solution-refactor branch June 30, 2024 12:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant