wgnf / liz

liz (ˈlɪz) is a tool to extract license-information from your project/solution aimed on a fast and correct process. Whether it's via a dotnet-CLI-Tool, Cake-Addin or Nuke-Addon
MIT License
9 stars 0 forks source link

Move away from DI to Factory #2

Closed wgnf closed 2 years ago

wgnf commented 2 years ago

The current approach relies on the presence of a Unity-DI-Container which is created and used in the .Tool project

  1. Creating and using the DI-Container in the .Tool project does not really make sense, it should rather be used in the .Core project (as this is the central point everyone else will be using (such as Cake, Nuke, Tool, ...)
  2. The project will have a large size yes, when it's finished, but there should be no need for a DI Container. Plus, this Dependency would be leaked to the consumers, which is also not ideal

According to the stuff said above, we should consider using a factory (which is also good way of providing the functionality to consumers (our Tool, Nuke, Cake Project and other users through NuGet) with a Settings and/or Options object as input

Yeah, that Factory will be the one central fuck-up point. But you gotta have that somewhere.

If stuff gets outta hand we can consider using a "self-made" Service Provider or something, but I don't think it's going to be necessary