mboost-dp1

Plugin udvikling i Java / C#


Gå til bund
Gravatar #1 - squad2nd
24. jan. 2008 22:34
Nogen der kan give mig et præg om hvordan man laver plugin/modul baserede software?

Fx at når man har deployed en application, hvordan man så kan installere nye udvidelser uden at brugeren skal downloade en helt ny binær fil.
Lidt ala Eclipse princippet.


How?
Gravatar #2 - arne_v
25. jan. 2008 00:37
#1

Systemet har et interface som alle plugins skal implementere.

Den der skal lave et plugin skriver en klasse som implenterer dette interface. Den klasse og diverse hjælpe klasser compiles til en jar fil (Java) eller dll fil (.NET).

Systemet kan så instantiere en instans af klassen fra den jar/dll og kalde metoderne i interfacet.

Det var princippet.

Jeg kan godt give dig lidt kode til hvordan du loader klassen, hvis det har interesse.
Gravatar #3 - plazm
25. jan. 2008 01:19
Hehe, arne_v, du er en kendt bruger både her og på exp.dk
men vil alligevel lige smide linket til artiklen fra exp

http://www.eksperten.dk/artikler/1164?
Gravatar #4 - arne_v
25. jan. 2008 03:19
#3

Det er en glimrende artikel.
Gravatar #5 - squad2nd
26. jan. 2008 12:13
#2 Hey tak for svaret!
Hvis du har lyst må du gerne poste lidt kode her hvordan man gør!
Jeg fandt nogen artikler her og der, men de linkede til kode hvor man først kodemæssigt skulle udpakke sin jarfil og dernæst loade dine classes!
Gravatar #6 - arne_v
26. jan. 2008 13:52
#5

Java med jar i classpath:

YourInterface o = Class.forName(fullclassname).newInstance();

Java med jar udenfor classpath:

URLClassLoader cl = new URLClassLoader(jarfileurl);
YourInterface o = Class.forName(fullclassname, true, cl).newInstance();

C#:

YourInterface o = Assembly.LoadFile(fullassemblyname).CreateInstance(fullclassname);

Ovenstående eksempler forudsætter at der er en constructor uden argumenter, men det er naturligvis også muligt at instantiere objekter med constructor som kræver argumenter.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login