UserControl als PlugIn

  • VB.NET
  • .NET (FX) 4.0

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von zn-gong.

    UserControl als PlugIn

    Hallöchen ihr lieben.
    Ich bin nun auch wieder zum Thema Programmieren zurückgekommen, und möchte nun ein neues Projekt starten.
    Ich würde ganz gerne ein kleines PlugIn System schreiben, aber: Ich möchte nicht irgendwelche Code-Teile auslagen, sondern:
    Ich möchte UC erstellen lassen und diese als PlugIn ins Programm einladen. Sie sollen ganz normal funktionieren wie ein UC das halt tut, aber:
    Sie müssen Eigenschaften enthalten (wo sie gespeichert werden, was für Einstellungen sie benötigen etc.) und auf Code der Stammanwendung zugreifen.
    Das kann ich zum Teil schon, ich hab mir das Tutorial schon durchgelesen.
    Mein Problem ist eher, das das ganze ein UC ist und ich da nicht weiß, wie ich das hinbekomme.
    Ihr wisst doch bestimmt, wie das geht :D
    Liebe Grüße
    sothere
    Hallo,

    Interface erstellen und als Proberty ein UC definieren, weitere eigenschaften inclusive und dann die Hostanwendung cooden. Es geibt hier auf vbp sogar auch ein sehr nettet tutorial wo alles gut beschieben wird. Natürlich Minimal (kein C&P^^) aber esw ist dann relativ leicht zu coden.

    wichtig is beim selber cooden (Grüne wise^^) die Assembly mit System.Reflection zu laden, die Typen mit For Each durchzugehen und dann in einer (sub??) Try Catch die Typen mit CreateInstanz zu Instanzieren und gleich in einen rutsch mit CType zum Typ Interface (Deine Schnittstelle) zu Konvertieren. Anschlißend nur noch mit return (muss also ne funktion sein^^) ausgeben und Fertig.

    Dann ein Container (Pannel, Tabcontroll, Form, Was auch immer^^ nehmenh und mit Controls.Add das controll aus deinen Interface hinzufügen und fertig.

    Das ist nur der Weg, aber die genauen Details muss man (Project Spezifisch^^) selber ausarbeiten.

    LG, herbrich
    Also erstmal danke für deine Antwort.
    Aber: Das Tutorial konnte ich nicht finden, kannst du mir eventuell den Link dazu schicken. Und dann klingt das alles sehr Kompliziert. Das fängt schon mit "Das Interface erstellen" an. Was genau meinst du damit?
    Es soll für den Benutzer so einfach wie möglich sein, PlugIns zu programmieren, sprich: UC erstellen, zwei Propertys festlegen und dann wird geladen. Das würde ich ja gerne selbst ausarbeiten, aber ich habe halt keine Quellen -.-
    Liebe Grüße
    sothere

    sothere schrieb:

    Das fängt schon mit "Das Interface erstellen" an.
    Aua, da fehlen (erweiterte?) Grundlagen...

    -> bzgl. Tutorial Wie erstelle ich ein PlugIn System unter VB.NET (Framework 2)
    Ich Antworte nach bestem Wissen und Gewissen. Ich übernehme keine Garantie für die Richtigkeit oder Fehlerfreiheit meiner Texte.


    Ich konnte dir helfen?
    - Das ist schön :) Ich würde mich über ein "Hilfreich" freuen ^^

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „misbe“ ()

    Hallo, Mit dasInterface isteine Schnittstelle gemint.

    VB.NET-Quellcode

    1. Public Interface DeineSchnittstelle
    2. Sub Test
    3. Sub Test (ByVal param as object)
    4. Function 1p1(ByVal zahl1 as integer, ByVal zahl2 as integer) as integer ' Beispiel für1+1 Addtion Rechner
    5. Propety Irgendwas as object
    6. End Interface


    In Plugin hast du ne Klasse

    VB.NET-Quellcode

    1. ​Public Class Plugin
    2. Implements DeineSchnittstelle
    3. ''''Die Methoden
    4. end Class


    Ist also ganz einfach, ich schick dir noch mal den Link zum tut.

    LG, Herbrich
    Hi
    Also normale Code-Schnittstellen kann ich ja ohne Probleme mithilfe von Mef erstellen (finde das unter Net.2 einfach nur veraltet und umständlich).
    Ich weiß halt bloß nicht, wie ein UC einbinde. Sprich von Code-Plugins kann ich auch auf den Anwendungscode zugreifen, alles kein Problem. Bloß weiß ich nicht, wie ich das mit einem UC mache und das ganze dann auch korrekt lade.
    Liebe Grüße
    sothere

    VB.NET-Quellcode

    1. Me.panel.1.controls.Ad(MyPluginInterface.MyControl)
    Gut, aber wie kann ich das ganze auch umgekehrt? Sprich auf den Code der Zielanwendung zugreifen?
    Wenn ich z.B. auf einen Button im PlugIn klicke und dadurch ein Sub / Function in der Hauptanwendung ausgefürht werden soll?
    Liebe Grüße
    sothere

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „sothere“ ()

    Hallo,

    Direkt garnicht :D Du nutzt das Interface was du zum Laden des Plugins verwendest einfach um dir eine Art Proxy zu schaffen, ale Reletavent elemente kommen dann da rein und zack du kannst die subs what auch ever in Interface ausführen und in der Client anwendung kommen die an, umgekert geht dass ganze natürlich auch mit Events :D

    Lg, Herbrich
    Bitte,

    du hast glück, ich arbeite gerade z.Z. selber an einen eigenen Pluginsystem (Coodename: Extender) für mein Herbrich-20 Project :)

    LG, Herbrich