Laden...

Web Api Plugin Controller soll aufwärtskompatibel sein

Erstellt von Wax vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.980 Views
Wax Themenstarter:in
731 Beiträge seit 2006
vor 7 Jahren
Web Api Plugin Controller soll aufwärtskompatibel sein

Guten Morgen,

ich habe eine ASP.NET Web Api Lösung die z.B. mit der Assembly Version 1.0 markiert wurde. Für diese Basis Dll wurden nun Plugin Controller entwickelt. Die Plugins verweisen auf die Basis Dll. Wenn ich nun eine neue Version 2.0 der Web Api veröffentliche, wie kann ich dann sicher stellen, dass die alten Plugins weiterhin funktionieren?

Eine Neukompilierung aller Plugins kommt nicht in Frage.

Gruß
wax

16.788 Beiträge seit 2008
vor 7 Jahren

Warum kennt eine PluginDLL die ApplikationsDLL? Oder was meinst Du mit Basis DLL?
Und ist das Plugin System selbst gebastelt oder zB MEF?

Wax Themenstarter:in
731 Beiträge seit 2006
vor 7 Jahren

Die Plugin Controller erben von einem Basis-Controller und dieser ist in einer "Basis-Dll" definiert.
Wenn nun diese Basis-Dll-Version aus z.B. firmenpolitischen Gründen erhöht wird, was geschieht dann mit abhängigen Assemblies?

Mir fallen zwei Lösungen spontan ein:

  1. Die Plugin-Hersteller zwingen neu zu kompilieren.
  2. Den Plugins sagen, dass sie nicht eine spezifische Basis-Dll referenzieren sollen.

Wie macht man so etwas im .NET Bereich?

Gruß
wax

edit: Das Plugin System wurde selbst entwickelt.

16.788 Beiträge seit 2008
vor 7 Jahren

Mir ist immer noch nicht klar, was diese BasisDLL sein soll. Ist das nachher die WebAPI DLL oder ist das ein drittes Projekt?
Wenn ein Plugin ein WebAPI kennt, dann ist das ein Architekturfehler.

Eine Änderung der AssemblyVersion löst immer ein Konflikt aus, sodass referenzierte DLLs neu kompiliert werden müssen.
Deswegen gibt es Pluginsysteme wie MEF, die sowas einem abnehmen. Wenn das euer Pluginsystem nicht kann, dann ist das meines Erachtens ein Designfehler.

Wax Themenstarter:in
731 Beiträge seit 2006
vor 7 Jahren

Hi,

ja die BasisDLL ist meine WebAPI. In dieser sind "Haupt" Controller der Anwendung implementiert und eben auch ein PlugInBaseController.

Von diesem PlugInBaseController leiten PlugIn-Controller ab.

Anscheinend war das nicht die beste Idee....

Gruß
wax

16.788 Beiträge seit 2008
vor 7 Jahren

Jop, war keine gute Idee.
Das wäre eine Circular Reference - und das geht in .NET nicht.