Over then next months, I will be posting about putting together an architecture for line of business applications. First, I would like to break down the many components that would comprise building enterprise level applications.
Let’s first talk about cross-cutting concerns at a very high level:
- Security – this would include authentication and authorization. We will discuss permissions based authorization in order to support more than just screen level authorization but break it down to screen part and individual control level security.
- Logging – this will provide global logging in a centralized manner. Our goal will be to facilitate a flexible logging infrastructure without impacting any of modules that desire to log. We should be able to change out the logging implementation whether it be a flat file, database, or rest service.
- Exception Handling – this will provide a common means for receiving exceptions and notifying users of issues. We will provide a mechanism to report exceptions and then allow for the developer to decide whether the end user should see the exception or just silently log to through the logging service.
- Messaging – this service will be used throughout the other cross-cutting concerns. It main purpose is to allow other modules to broadcast messages(events) without the need to have references to the other various modules.
We will go into each of these global services in more detail as dedicated posts. Next we will take a look at one approach as to building a shell and module infrastructure to support the development of modular applications. These posts will go into detail using both Prism and MEF (Managed Extensible Framework).
Stay tuned for more.