More Information
CaroWorks Components

Caro offers different classes of components that are ready to use out of the box; business technical, framework, and infrastructure components.

Business components are a class of components that are directed to a very specific vertical slice of industry domain. For instance, an enterprise in the banking business might require components that address capturing retail investment products and their product rules, account applications, etc. This class of component would have the least amount of re-use potential outside of a particular kind of organization given its specific focus.

Infrastructure components
can have meaning and relevance from a business perspective. Unlike technical and framework components, infrastructure components are designed to target common business problem domains. For example, our (business) Party component addresses the common need in any enterprise to capture basic information about the people and organizations they deal with, to record their potentially many roles (customer, vendor, prospect, employee, etc.), their contact information, and relationships with other parties. The infrastructure components can form basic building blocks for much more complex and larger business components.

Framework components provide developer aids, and tools for managing external communication and caching of client data. they are useful utilities that help us develop other components and applications quickly. For example, we use our code generator tool, to generate the base methods (e.g. create, read, update, delete, find ....) for our services automatically without having to handcraft them.

Technical components are small, low level components that often form the building blocks for other components or address some specific technical requirement. This class of component is very specific in the problem domain that they address and can be re-used in virtually any application. For example, our "Standard Types" component provides a simple means of storing and retrieving common definitions of code values in multiple languages.

One key difference between the different levels of components includes their size and complexity, as well as their level of reuse. Where a technical component would address a very specific problem, a business component would be expected to be much larger in scope and complexity given the busness rules it must implement.

The larger-grained, industry-specific business components have the least re-use potential as opposed to other classes of components and are primarily useful only in the same vertical industry. It is always useful to employ component concepts to realize the benefits of encapsulation and isolation of the internal structure so that the impact of chance to a component can be isolated to that component.

Not all components are the same even though they can all employ the same component-based design principles. The benefits of insulating an application from internal changes to its component parts can be realized, but depending on the granularity and complexity of the underlying components some of them may realize more re-use benefits than others.