Skip to content
Optivem Framework (.NET Core 2.2)
C# HTML Gherkin Other
Branch: master
Clone or download

Optivem Framework

Build Status Build Status Build Status MIT License

Welcome to the Optivem Framework! The Optivem Framework was created to help you increase code quality, help you deliver products faster to customers and reduce your overall software development cost. This documentation page will show you how to get up-and-running with the Optivem Framework in your .NET Core 2.2 software projects.

Table of Contents

## Introduction

Optivem Framework was created to accelerate the development of enterprise applications, so that you can quickly create new projects for your customers.

The Optivem Framework is founded upon Clean Architecture principles and supports:

  • Modularity & re-usability
  • Extensibility & flexibility
  • Maintainability & testibility
  • Scalability and portability

The architecture consists of the following layers:

  • Core Layer (contains Domain and Application)
  • Infrastructure Layer (contains third-party libraries and frameworks, integration with external systems)
  • Dependency Injection Layer (used to setup the compostion root)
  • Web Layer (contains the REST API and presentation)
  • Test Layer (contains Unit, Integration and System tests)

Getting started

We are using Visual Studio 2019 and .NET Core 2.2.

### Installation

To install the Optivem Template:

  1. Run Visual Studio
  2. Open the Package Manager Console (Visual Studio main menu: Tools > NuGet Package Manager > Package Manager Console)
  3. Run the following command inside the Package Manager Console
PM> dotnet new -i Optivem.Template
  1. In the future, you can run this same command to get updated versions of the template
### Create a new project

To create a new project:

  1. Run Visual Studio
  2. Open the Package Manager Console (Visual Studio main menu: Tools > NuGet Package Manager > Package Manager Console)
  3. Create the directory for your new project, for example:
PM> mkdir C:\Users\Valentina.Cupac\source\repos\MyWebShop
  1. Go inside the new directory:
PM> cd C:\Users\Valentina.Cupac\source\repos\MyWebShop
  1. Create the Visual Studio Solution based on the Optivem Template:
PM> dotnet new optivem
  1. Open the solution (Visual Studio main menu: File > Open Project/Solution, selecting the folder and inside it the solution MyWebShop.sln)

  2. Rebuild the solution

  3. Set MyWebShop.Web.RestApi as the StartUp project

  4. Inside MyWebShop.Web.RestApi, open up the file appsettings.Development.json, you can adjust the DefaultConnection to the location where the database should be created

  5. Inside the Package Manager Console, run the command to create the database:

PM> Update-Database
  1. Run the application

  2. Browser opens up https://localhost:44315/api/values

  3. Go to the Swagger page https://localhost:44315/swagger/index.html where you can execute any API calls

  4. Stop Debugging

  5. Open up the Test Explorer (Visual Studio main menu: Test > Windows > Test Explorer)

  6. Rebuild the solution to discover all the tests

  7. Click on "Run All" inside the Test Explorer (all tests should pass)

## Technical Reference ### Optivem Framework Core
  • NuGet Optivem.Framework.Core.Common
  • NuGet Optivem.Framework.Core.Domain
  • NuGet Optivem.Framework.Core.Application
  • NuGet Optivem.Framework.Core.Application.Interface
  • NuGet Optivem.Framework.Core.All
### Optivem Framework Infrastructure
  • NuGet Optivem.Framework.Infrastructure.AspNetCore
  • NuGet Optivem.Framework.Infrastructure.AutoMapper
  • NuGet Optivem.Framework.Infrastructure.CsvHelper
  • NuGet Optivem.Framework.Infrastructure.EntityFrameworkCore
  • NuGet Optivem.Framework.Infrastructure.FluentValidation
  • NuGet Optivem.Framework.Infrastructure.MediatR
  • NuGet Optivem.Framework.Infrastructure.NewtonsoftJson
  • NuGet Optivem.Framework.Infrastructure.Selenium
  • NuGet Optivem.Framework.Infrastructure.System
### Optivem Framework Dependency Injection
  • NuGet Optivem.Framework.DependencyInjection.Common

  • NuGet Optivem.Framework.DependencyInjection.Core.Domain

  • NuGet Optivem.Framework.DependencyInjection.Core.Application

  • NuGet Optivem.Framework.DependencyInjection.Infrastructure.AutoMapper

  • NuGet Optivem.Framework.DependencyInjection.Infrastructure.EntityFrameworkCore

  • NuGet Optivem.Framework.DependencyInjection.Infrastructure.FluentValidation

  • NuGet Optivem.Framework.DependencyInjection.Infrastructure.MediatR

  • NuGet Optivem.Framework.DependencyInjection.Infrastructure.NewtonsoftJson

### Optivem Framework Web
  • NuGet Optivem.Framework.Web.AspNetCore
### Optivem Framework Test
  • NuGet Optivem.Framework.Test.AspNetCore
  • NuGet Optivem.Framework.Test.EntityFrameworkCore
  • NuGet Optivem.Framework.Test.FluentAssertions
  • NuGet Optivem.Framework.Test.MicrosoftExtensions
  • NuGet Optivem.Framework.Test.Selenium
  • NuGet Optivem.Framework.Test.Xunit

Optivem Template

  • NuGet Optivem.Template
## Getting support

To report any issues and bugs, or if you have any suggestions for improvements and new features, please create a ticket using the Issue Tracker:

## License

Licensed under the MIT license. This means you're free to use it for commercial and non-commercial purposes.


Copyright © 2019 Optivem All Rights Reserved.

You can’t perform that action at this time.