This is one area where IBS is lacking - it does not really have a well defined business object layer separate from the UI layer and separate from the DAL (data access layer).
In most cases, the UI layer works directly with the DAL. For example, there is no "clean" class for a PortalModule. There are some properties embedded in the ModuleSettings class, some methods embedded in the
Security class, some in the Admin classes, etc. This is also true for tabs, users, portals, etc.
Also, for the modules, it would be nice, i.e., better design, to have, for example, an Announcement class that encapsulates the properties and methods for an Announcement in addition to the AnnouncementDB class that provides the basic DAL. Using this approach, you could have several UI components/controls that allow the user to interact with Announcements but just one Announcement class.
In my own code, I've started to define proper classes, e.g., PortalModule, PortalTab, PortalUser, etc. When I'm done, this should yield a more flexible and durable architecture.
Mike Beller
Lightship Partners LLC