Enables organizing ASP.NET Core MVC controllers and views into feature-based folders for better project structure.
AddFeatureFolders is a NuGet package for ASP.NET Core that enables feature folder organization for MVC controllers and views. It replaces the default separation of controllers and views into different directories by grouping all files related to a feature into a single folder, improving code navigation and maintainability in larger projects.
ASP.NET Core developers building MVC applications who want to adopt a feature-based project structure instead of the traditional technical separation.
It provides a simple, convention-based way to organize MVC projects by feature, reducing cognitive overhead when working on specific application capabilities and making it easier to locate related files.
Enable feature folders for MVC controllers and views in ASP.NET Core
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Groups controllers, views, and related files like view models and handlers into single folders per feature, as demonstrated in the sample folder structure with Features/Home containing all Home-related components.
Automatically locates views based on the controller's namespace, simplifying routing without manual path configuration, as highlighted in the README's 'Important!' section where views are found under Features/Robots for a controller in the .Features.Robots namespace.
Works seamlessly with ASP.NET Core areas to organize features across application sections, with clear code examples provided for enabling areas via AddAreaFeatureFolders() and route configuration.
Includes JetBrains annotations to resolve view locations correctly in supported IDEs, reducing IDE warnings and improving developer productivity, as shown in the README with assembly attributes for custom folder names.
Heavily relies on controller namespaces for view resolution; misaligned namespaces can cause views not to be found, requiring careful setup and debugging, as emphasized in the README's troubleshooting note.
Enabling areas involves extra steps like calling AddAreaFeatureFolders() and configuring routes separately, adding complexity compared to the base feature folder setup, which might confuse beginners.
The feature folder name cannot be in the project namespace, leading to potential conflicts and errors if not managed properly, as warned in the disclaimer referencing Issue #27.