Introduction

Are you a leader in an enterprise software development organization, interested in producing quality software? Have you experienced the challenges in managing software projects - satisfying customers’ needs to produce software faster, but yet at the same time, facing quality issues?

Have you seen systems which rapidly deteriorated in quality, whereby the architecture is a “big ball of mud”, and low code quality - and the decreased productivity of the whole team? Is there an increasing pile of bugs, and are changes taking longer and longer to implement, breaking existing functionality? Do you face challenges in incorporating new team members, increasing the technical level of your team, and incorporating code standards and quality control?

Are you looking for a solution which will enable you to:

If you’ve answered “yes”, then you’ve come to the right place. Welcome to Optivem Open Source Software (OSS). Our goal is to support you in quality Enterprise Application Software (EAS) development.

Architecture

The underlying architecture for our projects is based on the “Clean Architecture” approaches:

For an introductory overview, we recommend DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together.

The key concept is the separation of concerns:

The dependencies are as follows:

But, given the independence above, how do they communicate? The answer is: Inversion of Control (IoC) - Dependency Injection (DI). For example, the Application Core defines interfaces for communicating with a database (i.e. Repository interfaces), and inside the Infrastructure layer, the Repository interfaces are implemented (e.g. using ORM frameworks or any other mechanisms).

The core benefits is that due to the independence of the Application Core, it ensures separation of concerns and modulaity, swappability of databases, UIs and any frameworks, and also enables the system to be testable. These factors increase system quality and decreasing overall total development and maintenance cost.

Optivem Framework

The Optivem Framework is designed to support the Clean Architecture, enabling:

The Optivem Framework is on GitHub and NuGet:

To show the Optivem Framework usage, we developed a sample application using the well-known Northwind database from Microsoft, as an illustration relevant for enterprise software samples:

Optivem Framework and Optivem Northwind are licensed under the MIT licence, so that it can be used freely for commercial projects. Our goal is to help spread best practices in IT organizations and support developers in their daily work.

System Requirements

The following are the applications and technologies installed, which are required to run the projects above:

Feedback

You can send questions, improvement suggestions and issue reports on GitHub. These will be used to further improve our open source software.

License

Licensed under the MIT license.

Copyright © 2019 Optivem All Rights Reserved.