So, it would be really interesting to know how you develop a modular business application in SAP. You know, have a base module to manage users and modules and allow the user to install modules like Accountancy, Human Resources, etc.
How you do something like this on C#? Is there a pattern to handle complex modules and stuff?
Thanks!
Generic question, so the asnwer is pretty theoric too 🙂
Hostthat exposes basically UI and logic interfaces in order to be able to “arbitrary” app that implements some “contract” to be visualized or hosted into the environment. ( They implement basically interfaces for this)Pluginbased system2.1 Every
Pluginconsists of logic and/or UI part that usingHost'sAPI make him integrate into environment.Pluginsubscribe to events of it’s UI (if any exists), subscribe to events ofHostPluginlisten’s user interaction with host by interacting withHost'sevents (via proxy usually) and sending signals back toHostby using its specific API.There could be a lot of other considerations, like: what kind of UI can plugin support? Does need also
Controls collectionbe wrapped to specificHostControlAPI? Like SAP Business One does (don’t know if you ever programmed plugins for it). They usually do that, cause you need gurantee the consistency and homogenucity of yourHost'sUI, so it’s better to provideHostspecific control’s collection.This kind of application are fairly complicated, before you begin you should analyze your app requeirements, cause there will come point when you will need to choose between extremely flexible architecture and performance, scallability and maintanability in time but solid secure design.
Hope with this give a couple of hints on subject.
EDIT:
Answering your question about precise pattern: don’t think there is a single pattern that can afford all this stuff, you will need to combine a several of them to achieve that kind of complexity.
Regards.