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

[DELPHI] Modulaire Applicatie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste mensen.

Ik moet een modulaire applicatie bouwen. Nu wil ik mijn modules scheiden van de applicatie.
De applicatie wil ik het liefst MDI, dus ik kwam al snel uit bij packages (bpl) die je mee kunt linken.
Dit gedeelte werkt ook goed, maar nu wil ik dat alle packages gebruik maken van dezelfde datamodule. Hoe doe ik dit?

Dus in het kort, 1 executable met:
- mainform (mdi-parent)
- datamodule
- packages (mdi-children, per module verschillend)
Ik maak hierbij gebruik van late-binding door expliciet LoadPackage aan te roepen.

Of moet die datamodule ook in een package? Als dat zo is, hoe benader ik deze dan.

Een klein voorzetje zou al enorm helpen

edit:

Nu ik het nog een keer overlees ziet het er erg uit als een programmeer-vraag.
Wat ik eigenlijk vraag is een model, want het model dat ik nu voor ogen heb schijnt technisch gezien tekort te komen. Of ik doe nog steeds wat verkeerd, dan moet de vraag naar de programmeer afdeling.

[ Voor 18% gewijzigd door Verwijderd op 24-06-2008 10:08 ]


  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 10:45

MicroWhale

The problem is choice

is die datamodule een verzameling van tabellen van dezelfde database, die je in verschillende packages opnieuw gebruikt?

Wat je ook kan doen is in elk package een datamodule maken met alleen die tabellen die die package gebruikt. Er zijn dan wel meerdere verbindingen naar dezelfde tabel, maar dat moet met een goede database (lees: niet de standaard meuk van BDE) geen probleem zijn.

Dit maakt de oplossing wat meer modulair. Ook zorgt het ervoor dat alleen de modules opnieuw gecompileerd dienen te worden en niet de master-app. Die faciliteert in principe alleen de packages.

e.e.a. is natuurlijk wel afhankelijk van de overlap van de gebruikte tabellen in de packages. Als elke package 100% van de tabellen gebruikt, zou ik bovenstaande niet eens gaan proberen.

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


Verwijderd

Met hierboven. Je kunt dan de connection string meegeven aan de modules en dan gebruiken ze hun eigen verbinding. Dit wil je sowieso, want modules kunnen niet allemaal tegelijk met één verbinding werken, zeker niet als je met threads gaat werken.

Je kunt natuurlijk altijd de datamodule ook in een aparte package doen.

Een andere, wellicht nettere, oplossing is een data access layer maken in een aparte gedeelde package. Je werkt dan met entities en collecties. Insert/Update/Delete worden dan methods.

[ Voor 7% gewijzigd door Verwijderd op 04-07-2008 14:18 ]