A modular and extensible calculator application built with .NET 8, leveraging the power of the Managed Extensibility Framework (MEF) to support dynamic plugins for different mathematical operations.
- Modular Design: Easily extend the calculator with new operations by adding plugins.
- Dynamic Plugin Discovery: Automatically discover and load operation plugins at runtime.
- Tested and Reliable: Comprehensive unit tests ensure the reliability of each component.
-
Clone the repository:
git clone https://github.com/abbasghomi/ModularCalculator.git cd ModularCalculator -
Build the solution:
dotnet build
-
Run the application:
dotnet run --project src/CalculatorApp/CalculatorApp.csproj
-
Run the tests:
dotnet test
Once the application is running, you can enter two numbers and choose an operation from the list of available plugins. The result of the operation will be displayed on the console.
We welcome contributions from the community! Here’s how you can get involved:
-
Give a Star: ⭐
- If you find this project useful or interesting, please give it a star! It helps others discover the project and motivates us to keep improving it.
-
Submit Issues: 🐞
- Found a bug or have a feature request? Please open an issue to let us know.
-
Contribute Code: 💻
- Check out the Contributing Guide to learn how to set up your development environment, create pull requests, and follow our coding standards.
-
Join the Discussion: 💬
- Have questions or want to discuss ideas? Start a conversation in our Discussions section.
- Fork the repository and create a new branch for your feature or bugfix.
- Write tests to cover your changes.
- Submit a pull request with a clear description of your changes and how they address the issue.
Here are some planned features and enhancements:
- Support for advanced mathematical operations (e.g., trigonometry).
- GUI version of the calculator.
- Localization and support for multiple languages.
Feel free to suggest new features or improvements!
This project is licensed under the MIT License. See the LICENSE file for details.
- Thanks to the .NET community for their valuable libraries and resources.
- Special shout-out to all the contributors who have helped improve this project!
Happy coding! 🎉
Made with ❤️ by Abbas (https://github.com/abbasghomi)