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
Warum kennt eine PluginDLL die ApplikationsDLL? Oder was meinst Du mit Basis DLL?
Und ist das Plugin System selbst gebastelt oder zB MEF?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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:
Wie macht man so etwas im .NET Bereich?
Gruß
wax
edit: Das Plugin System wurde selbst entwickelt.
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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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
Jop, war keine gute Idee.
Das wäre eine Circular Reference - und das geht in .NET nicht.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code