---
id: requirements_netcore
title: Requirements
linkTitle: Requirements
weight: 2
keywords:
  - .net core
  - rest api
  - cqrs
  - example
  - template
  - azure
  - application insights
  - cosmos db
  - build
  - run
  - application
  - configure
  - docker
  - tests
  - github
  - scaffolding
  - cli
---

.Windows
[%collapsible]
=====
[discrete]
=== Requirements for running the API locally

[discrete]
==== Mandatory
* link:https://dotnet.microsoft.com/en-us/download/dotnet/8.0[.NET 8 SDK] and Runtime .0.* or superior (for .NET 8 templates)
* link:https://aka.ms/cosmosdb-emulator[CosmosDB Emulator 2.4.5+]

[discrete]
==== Optional
* link:https://visualstudio.microsoft.com/vs/[Visual Studio 2022]
* link:https://code.visualstudio.com/[Visual Studio Code] 1.35+ with C# Extension from Microsoft (C# for Visual Studio Code (powered by OmniSharp))

[discrete]
=== Additional requirements for running the API in docker containers

[discrete]
==== Mandatory
* link:https://desktop.docker.com/win/stable/Docker%20Desktop%20Installer.exe[Docker Desktop(for Windows)]: Version 2.1.0.1 (37199) or superior
** Enable:
*** Kubernetes 1.14+
*** Linux container (Not windows containers)
** Docker Engine 19.03.1+ (provided with docker)
** WSL (Windows Subsystem for Linux: recommended v1, v2 is still in preview and has not been tested) (provided with docker)
*** For running build, test and deployment scripts targeting Linux environment
** kubectl v1.14+ (provided with docker)
*** Also link:https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-windows[downloaded from k8s.io]

[discrete]
=== Additional requirements for running the API in a kubernetes cluster

* NGINX ingress controller
** Install the ingress controller in you local cluster.
** Make sure you follow the process for Bare Metal deployment described here.
=====

.macOS
[%collapsible]
=====
[discrete]
=== Requirements for running the API locally

* homebrew
* azure-cli: brew install azure-cli
* link:https://dotnet.microsoft.com/en-us/download/dotnet/8.0[.NET 8 SDK] 8.0.* or superior: brew cask install dotnet-sdk
* link:https://aka.ms/cosmosdb-emulator[CosmosDB Emulator 2.4.5+]: Currently the Cosmos emulator can only be run on Windows. If you have an Azure subscription, you are able to use the Azure version instead

[discrete]
=== Additional requirements for running the API in docker containers

* link:https://desktop.docker.com/mac/stable/Docker.dmg[Docker Desktop for Mac]
* kubectl: docker run --name kubectl bitnami/kubectl:latest
=====

NOTE: The current version of Ensono Stacks are templates for .NET 8 (Current LTS, recommended).
