How do you usually split a large application into modules?

How do you usually split a large application into modules?

Let's say you have a very big application, do you split it into separated .EXE's, .BPL's, .DLL's How do you do usually? ¿Pros, cons of an approach against the other?

I'm almost decided for DLLs but want to hear from others, I'm talking of a Win32 desktop application here (inhouse modules only no third party extensions to the app), Firemonkey could be an option in the near future, who knows, I'm on XE3 still btw.

Comments

  1. David Heffernan Jani Pelttari Thank you both, I'll go with EXEs two or three as maximum.

    ReplyDelete
  2. I use external bpl only for delphi lib, as vcl, rtl etc, and i compress our exe with aspack or, better, upx

    ReplyDelete
  3. We use to use the one big EXE with only 2 or 3 DLLs, but when the EXE reached 25+mb (15 years ago, that was huge) we broke it into EXEs and DLLs.  At the time we only had 3 or 4 modules so we put forms (related to a module or feature) in the DLLs then load & unload the DLLs on the fly as users move from module to module. We have less then a dozen call structures and only use basic types (ints and a few pchars).  Each DLL is almost a standalone module/feature.  90% table driven so we can add a new DLL, insert a record or two and the new module is available if the users choose to use it.  We now have 100+ DLLs and 30+ EXEs.  There is a downside, with all the EXEs and DLLs our software install has reached almost 1gb.  Makes we wish we had used BPL's instead, we could have shared more, but the size of the BPLs would have pushed the install size over 1gb I'm sure.

    ReplyDelete

Post a Comment