Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[C#] Plugin systeem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Goedendag medetweakers :w

Ik heb een programmatje gemaakt wat snel een proxy aan en uit kan zetten en kan veranderen. Dit werkt nu enkel nog voor windows (simpelweg een registrykey aanpassen) maar ik wil dit ook voor andere applicaties doen zoals Firefox en Opera. Nu zat ik er aan te denken om dit als een pluginsysteem te doen.

Mijn idee was om een /plugin directory te maken en daarin verzamel ik dll bestanden waarin elk een class staat die de functionaliteit heeft om een proxy aan of uit te zetten van elk een andere applicatie. Vervolgens heb ik in mijn applicatie een class die de plugin directory uitleest en elke plugin in een array of linked list zet. Zodra de gebruiker dan de proxy wil aanpassen wordt die array uitgelezen en van elke class wordt een instantie aangemaakt die de juiste functie(s) aanroept.

Nu wou ik eigenlijk een interface maken voor de plugin zodat ik weet dat elke plugin die ik inlees wel zal werken. Dan kan ik heel makkelijk met reflection valid plugins eruit filteren. Maar dat is waar ik tegen een probleem aankom, hoe moet ik een losstaande dll maken als ik dat interface dan niet heb. Of ik moet dat interface er apart aan koppelen, maar dat lijkt me ook weer zo omslachtig.

Het makkelijkste is gewoon om zonder een interface te werken en er gewoon vanuit gaan dat alle plugins de vereiste functies hebben, maar het lijkt mij mooier om zoiets te doen via een interface. Of moet ik het op een kompleet andere manier aanpakken?

Alvast bedankt voor elk antwoord. :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:22
Verwijderd schreef op dinsdag 12 augustus 2008 @ 20:41:
Het makkelijkste is gewoon om zonder een interface te werken en er gewoon vanuit gaan dat alle plugins de vereiste functies hebben
Fail. Iets met aannames, en fataal enzo.
Wat is het probleem om een aparte assembly te maken met daarin de interface waar alle plugins moeten aan voldoen ?
Plugins moeten gewoon die assembly gebruiken om het 'contract' van de plugin te weten .

https://fgheysels.github.io/


Verwijderd

Topicstarter
Dus als ik het goed gegrijp simpelweg een dll bestand met het interface en die dan als referentie compilen bij een plugin? Zoja dan zou dat inderdaad wel een mooie oplossing zijn. :)

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 13-11 10:30

mOrPhie

❤️❤️❤️❤️🤍

Zit je aan .NET Framework 2.0 vast of mag het ook in 3.5? Alle ins en outs van add-ins/plug-ins zijn in .NET Frameowork 3.5 namelijk al uitgedacht en zo redelijk out of the box te gebruiken. Dingen als security, sandboxing/isolation, interfacing, versioning en dergelijke hoef je dan zelf niet meer op te lossen. Want vergis je niet in een plug-in systeem.

Het heet "Managed Add-in Framework". Office 2007 is er bijvoorbeeld al helemaal compatible mee, maar je kunt het ook voor je eigen applicaties gebruiken. Daniel Moth heeft er een mooie screencast over:

http://channel9.msdn.com/.../Managed-AddIn-Framework/

Dus voordat je het wiel opnieuw uitvindt, ga hier 'ns mee spelen.

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • beany
  • Registratie: Juni 2001
  • Laatst online: 16-11 14:01

beany

Meeheheheheh

Probleem bij het plug-in systeem van .Net 3.5 is wel dat je op zijn minst 7 componenten moet gaan schrijven wil je het geheel aan de praat krijgen ookal wil je niet alle functionaliteit van het plug-in systeem gebruiken.

Dagelijkse stats bronnen: https://x.com/GeneralStaffUA en https://www.facebook.com/GeneralStaff.ua


  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 13-11 10:30

mOrPhie

❤️❤️❤️❤️🤍

4 van die 7 genereer je met clraddin en heb je geen omkijken naar. Het schrijven zit 'm vooral in de host, het contract en de addin. :)

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.

Pagina: 1