Skip to content

[Epic] Components #2942

@bekir-ozturk

Description

@bekir-ozturk

Audience: authors (advanced)

Background

Allow custom extensibility scenarios for the templates.

The template engine already considers extensibility by using components. Component is a class implementing IIdentifiedComponent interface. Template engine is managing components in ComponentManager class.
At the moment the only way to install additional components is from code (adding components via ITemplateEngineHost or adding components via IEngineEnvironmentSettings.ComponentManager.
To allow extensibility scenario:

  • the way of adding and managing additional assemblies with components should be implemented. The initial (currently disabled) implementation is available in Scanner.ScanForComponents method. Detected components are not saved to settings.
  • installing additional assemblies should be surfaced via command available in dotnet new.

Already defined components suitable for extensibility for template authoring:

Missing parts:

  • acquisition/distribution workflow for components assemblies/packages
  • managing the component assemblies versions (different templates may require the same component of different version)
  • documentation

Justification

  • give advanced authors more customization beyond standard features of template engine

Related issues:

Metadata

Metadata

Assignees

No one assigned

    Labels

    gathering-feedbackThe issue requires feedback in order to be planned, please comment if the feature is useful for youtriagedThe issue was evaluated by the triage team, placed on correct area, next action defined.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions