Category Archives: Architecture

Rich Client Application Checklist

Design Considerations Design patterns, such as MVC and Supervising Controller, are used to separate presentation logic from user interface implementation. User interface features such as layout, navigation, choice of controls, and localization are designed to maximize accessibility and usability. Business rules and other tasks not related to the interface are extracted to a separate business… Read More »

Rich Internet Application (RIA) Checklist

Design Considerations The application is designed for running in the browser sandbox. The application is designed for supporting multiple browsers and operating systems. The application detects when the browser plug-in is not installed and takes the appropriate action. The application provides alternative for clients that do not have RIA support. The application uses mechanisms to… Read More »

Web Application Checklist

Design Considerations Abstraction is used to design loose coupling between layers. Caching is used wherever appropriate, to improve performance of the application. Business and system critical events are logged and the application is instrumented appropriately to gather information for solving any application issue. Users are authenticated across trust boundaries. Sensitive data passed across network is… Read More »

Service Layer Checklist

Design Considerations Services are designed to be application scoped and not component scoped. Entities used by the service are extensible and composed from standard elements. Your design does not assume to know who the client is. Your design assumes the possibility of invalid requests. Your design separates functional business concerns from infrastructure operational concerns. Authentication… Read More »

Data Access Layer Checklist

Design Considerations Abstraction is used to implement a loosely coupled interface to the data access layer. Data access functionality is encapsulated within the data access layer. Application entities have been mapped to data source structures. Data exceptions that can be handled are caught and processed. Connection information is protected from unauthorized access. Blob Images are… Read More »

Business layer checklist

Design Considerations A separate business layer is used to implement the business logic and workflows. Component types are not mixed in the business layer. Common business logic functions are centralized and reused. Design reduces round trips when accessing a remote business layer. Business layer is not tightly coupled to other layers. Authentication Users are authenticated… Read More »

Presentation layer checklist

Design Considerations UI technology choice is based on application requirements and constraints. Relevant presentation layer patterns such as Template View pattern are identified and used in the design. The application is designed to separate rendering components from components that manage presentation data and process. Organizational UI guidelines are well understood and addressed by the design.… Read More »

Communication checklist

Design Considerations Unmanaged code is used for communication across AppDomain boundaries. Message-based communication is used when crossing process or physical boundaries. Round trips are minimized when accessing remote layers. Data types that cross physical boundaries are serializable. Message-Based Communication Partially connected scenarios are supported by storing messages and sending them, when a connection becomes available.… Read More »

Design checklist

Design Considerations Areas of concern are separated. Every component has a single responsibility. Components do not rely on the internal details of other components. Functionality is not duplicated within the application. Components are grouped logically into layers. Abstraction is used to design loose coupling between layers. Authentication Trust boundaries have been identified, and users are… Read More »

Create sequence diagrams with PlantUML

Sometimes ago, I found an interesting Eclipse plugin called PlantUML. It’s very useful when you want to draw UML sequence diagrams. With a sequence diagram it’s very easy to represent interactions and processes between the actors. Bellow is an example of PlantUML source text: @startuml title Sequence diagram example actor User participant SystemA box “Bank Statement… Read More »