ASP.NET Core 9 RESTful Web API (Entity Framework Core, Azure SQL, MS SQL, Docker, Docker Compose)
- Первинне створення проекту (з автоматичним розгортанням структури бази даних):
- Вибираємо у VS проект ASP.NET Core Web API
- Вибираємо NuGet пакети:
- Microsoft.EntityFrameworkCore.SqlServer
- Microsoft.EntityFrameworkCore.Design
- Microsoft.EntityFrameworkCore.Tools
- Запускаємо в package manager colsole -> Консоль диспетчера пакетів (через пошук) для розгортання структур таблиці BUFF_IMPORT_DATA PM> Scaffold-DbContext "Data Source = localhost; Initial Catalog = DatabaseTestDB; Integrated Security = True; Persist Security Info = False; Pooling = False; MultiActiveResultSets = False; Connect Timeout = 60; EntityFrameworkCore.SqlServer -OutputDir Models -Context "ASP_NET_Code_RESTful_Context" -DataAnnotations -Tables "BUFF_IMPORT_DATA"
- Додаємо контролер Папка Controllers -> Додати -> Створити шаблонний елемент -> Контролер API з діями, що використовує Entity Framework
- У проекті VS додаємо Docker -> Додати -> Підтримка Docker -> Target OS (Linux) Генерується Dockerfile
- У проекті VS -> Складання -> Зібрати рішення
- У проекті VS додаємо Docker Compose -> Додати -> Підтримку оркестратора контейнерів -> Docker Compose -> Target OS (Linux) Генерується docker-compose.yml
- Створюємо пов'язані контейнери за допомогою Docker Compose у Windows Powershell: -> Шлях до проекту -> cd "d:\Інші\Project\Project C#\ASP_RESTful_Web_API" -> docker-compose -f docker-compose.yml up
- Перевіряємо -> http://localhost:49900/swagger/index.html
- У проекті VS додаємо Docker -> Додати -> Підтримка Docker -> Target OS (Linux) Генерується Dockerfile
- У проекті VS -> Складання -> Зібрати рішення
- Створення мережі в Docker із підключенням MSSQLContainer
- У Windows PowerShell запускаємо: -> docker network create docker-network -> docker network connect docker-network MSSQLContainer Перевіряємо налаштування мережі Docker -> docker network inspect docker-network (Приклад: MSSQLContainer - 172.18.0.2)
- Налаштування DB:
- підключення MS SQL 2022 Docker (.\appsettings\appsettings_mssql_docker.json замінити файл appsettings.json)
- прописуємо IP 172.18.0.2 у appsettings.json
- Створюємо образ у Windows Powershell: -> Шлях до проекту -> cd "d:\Інші\Project\Project C#\ASP_RESTful_Web_API" -> docker build -t asprestfulwebapi:work .
- Створюємо та запускаємо контейнер у Windows Powershell: -> docker run --name ASP_RESTful_Web_API_Work --restart=always -p 49900:80 -d asprestfulwebapi:work
- Мережа в Docker із підключенням ASP_RESTful_Web_API_Work
- У Windows PowerShell запускаємо: -> docker network connect docker-network ASP_RESTful_Web_API_Work Перевіряємо налаштування мережі Docker -> docker network inspect docker-network (Приклад: ASP_RESTful_Web_API_Work - (172.18.0.3) 172.19.0.3)
- Перевіряємо -> http://localhost:49900/swagger/index.html
- Структуру бази даних для MS SQL 2022 Docker можна взяти із проекту Github (#Docker-Win11)
- У проекті VS додаємо Docker -> Додати -> Підтримка Docker -> Target OS (Linux) Генерується Dockerfile
- У проекті VS -> Складання -> Зібрати рішення
- Налаштування DB:
- підключення AzureSQL (.\appsettings\appsettings_azuresql.json замінити файл appsettings.json)
- підключення MS SQL 2022 без пароля (.\appsettings\appsettings_mssql.json замінити файл appsettings.json)
- Підключення MS SQL 2022 з паролем (.\appsettings\appsettings_mssql_SA.json замінити файл appsettings.json)
- Створюємо образ у Windows Powershell: -> Шлях до проекту -> cd "..\Project\Project C#\ASP_RESTful_Web_API" -> docker build -t asprestfulwebapi:work .
- Створюємо та запускаємо контейнер у Windows Powershell: -> docker run --name ASP_RESTful_Web_API_Work --restart=always -p 49900:80 -d asprestfulwebapi:work
- Перевіряємо -> http://localhost:49900/swagger/index.html
- Структуру бази даних для MSSQL можна взяти із проекту Github (# Microsoft_SQL_Server_2022)
- Структуру бази даних для AzureSQL можна взяти із проекту Github (# Microsoft Azure SQL Databases)