Eclipse er både en platform og en IDE. Applikationsmodellen, som Eclipse-applikationens logiske model bliver kaldt, kan modificeres både under udvikling og mens applikationen kører. Applikationsmodellen er afkoblet fra GUI-delen, således at man kan benytte forskellige GUI værktøjer (såsom SWT eller andre).
En Eclipse applikation består af mange Eclipse komponenter, også kaldet plug-ins. Eclipse RCP applikationer bruger Eclipse platformens basiskomponenter samt mere applikationsspecifikke komponenter.
Selve Eclipse IDE’en, som mange kender i.f.m. software udvikling er blot en speciel Eclipse applikation, der understøtter udviklingen af software.
Fordelene ved at bruge Eclipse RCP til udvikling af applikationer er mange:
- Det er et open source-projekt, så der er ingen licenser. Man kan selv videreudvikle egne komponenter, og man kan udvikle kommercielle produkter oven på platformen.
- I forhold til C# og Visual Studio, kan en client-applikation (skrevet i Java) med Eclipse RCP køre oven på en vilkårlig OS. Hvis din kunde pludselig gerne vil køre applikationen på Linux (i stedet for på Windows), er dette muligt.
- En dynamisk plug-in struktur
- Ingen begrænsninger mht. brugen af andre API’er eller plug-ins, der måtte være nødvendige
- En Eclipse-platform med rigtig mange features lige til at bruge i sin egen applikation.
Hvis man er vant til at bruge Eclipse som IDE, så vil man i sin nye Eclipse RCP applikation kunne genkende den samme struktur og udseende som i Eclipse IDE’en.
Kom godt i gang med at udvikle Eclipse RCP applikationer
Første gang man går i gang med at udvikle en client-applikation i Eclipse RCP, kan det godt være lidt svært og knudret, men når man først er kommet ind i tankegangen med plug-ins/bundles så er det ikke så tungt længere.
Opret en ny RCP applikation i Eclipse 4 ved at vælge File -> New -> Other… -> Eclipse 4 -> Eclipse 4 Application Projekt
I Eclipse 3.x er det en smule anderledes. For at oprette et nyt projekt, vælg: File -> New -> Plug-in Project
Hvert plug-in i din applikationen har to konfigurationsfiler, som definerer API’et og plug-in’ets afhængigheder (fx hvilke andre plug-ins dette plug-in afhænger af). De to filer hedder: MANIFEST.MF og plugin.xml
I plugin-xml filen kan man tilføje såkaldte extension points og extensions. Det er disse to koncepter, der gør at man dynamisk og fleksibelt kan udvide Eclipse applikationer.
Extension points definerer interfaces for andre plug-ins (som bidrager med funktionalitet). Extensions er funktionaliteten til disse interfaces. Dvs. extension points er vel-definerede steder i koden, hvor andre kan tilføje udvidet funktionalitet.
Plug-ins indeholder den udvidede funktionalitet ved at benytte allerede eksisterende extension points samt evt. stille nye extension points til rådighed.
Eclipse platformens runtime system kan dynamisk opdage, loade og køre nye plug-ins. For eksempel: hvis du sidder med din Eclipse IDE og vil downloade og installere et nyt plug-in til Eclipse (fx Subclipse), så bliver det udført mens Eclipse kører.
Når man efterhånden har fået udviklet en stor applikation med rigtig mange plug-ins, så er det smart at applikationen ikke behøver at loade samtlige plug-ins på én gang, når den starter. Man kan nøjes med de vigtigste plug-ins. Efterfølgende er det kun de plug-ins, der hører til et bestemt view, et perspective eller en bestemt bruger, der fx logger på, som loades når den bestemte funktion, der bruger dem, bliver kaldt. Det sparer tid (ved opstart) og sparer på mængden af data der skal ligge i hukommelsen.
Har du prøvet at udvikle client-applikationer med Eclipse RCP? Er det nemt at bruge, eller er det alt for indviklet? Hvorfor udvikles de fleste GUI applikationer i .NET/Visual Studio og ikke i Eclipse RCP? Er det pga. manglende kendskab. Eller fordi man foretrækker C# fremfor Java?