Autor Beitrag
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Fr 02.12.11 21:27 
Scheint ein interessantes Projekt zu sein, was mir dazu so einfällt:

- Wo steht dein Plugin-System im Vergleich zu anderen Systemen?
COM (und Erweiterungen) stellt ja bereits ein Plugin System dar (z.B. ActiveX Plugins). Mit DCOM kann man remote Services anbieten. Mit COM+ hast du Transaktionen, Resource Pooling und mehr. Solche Plugins können auch GUI-Komponente beinhalten und mit Typelibraries hast du genügend Metadaten, um diese in beliebige Sprachen zu importieren. Du kannst z.B. den Formeleditor von Word per Knopfdruck in die Delphi-IDE importieren und damit arbeiten, als würde es sich um eine Delphi-Komponente handeln.

- Weshalb hast du die Referenzzählung verworfen? Du scheinst einige Probleme damit gehabt zu haben und hast dann das Konzept verworfen. Da die Plugin-Klassen sowieso von TBasePlugin ableiten, hättest du die Referenzzählung nicht einfach durch eine Nullimplementierung ersetzen können?

- Welche Typen werden als Parameter von Methoden unterstützt? Ist das ähnlich wie bei COM (primitive Datentypen, WideStrings, Interfaces, ...) oder gibt es da eine Übersetzungsschicht für dynamische Arrays, Delphi-Strings, usw.?

- Werden Exceptions unterstützt? Müssten die Methoden safecall sein?

- Wie sieht's mit Events aus? Geht das nur über das Observer-Pattern?

Zum Schluss: Die zwei Welten sollte man vielleicht nicht einfach 1:1 vergleichen, aber rein architektonisch gesehen kann das beste Plugin-System in Delphi vermutlich nie mit .NET konkurrieren. Dort kannst du DLLs einfach zur Laufzeit reinladen und die darin enthaltenen Typen (d.h. Klassen, Interfaces) verhalten sich so, als wären sie direkt in der Exe. Du hast dort auch zusätzliche Sicherheit durch Signaturen.