3

Создаю онлайн-сервис для чтения книг. День 2-3. Подключение сервера к БД

Серия Записки вкатуна

👮 Ограничения платформы

Для реализации базовых функций используется .NET 7.0 со следующими компонентами:

  • Avalonia (для кроссплатформенного UI, если потребуется).

  • .NET Framework Core (базовые библиотеки и runtime).

  • .NET Framework Tools (инструменты разработки).

  • .NET Framework Design (шаблоны и архитектурные решения).

🏗️ Проектирование структуры решения
Решение состоит из трёх проектов:

1. Server (Веб-API ASP.NET Core)

  • Роль: Точка входа приложения.

  • Содержит:

    • Эндпоинты API,

    • Middleware,

    • Конфигурацию сервера.

  • Зависимости:

    • ServerLibrary,

    • HelpLibrary,

    • Swashbuckle.AspNetCore.Filters.

2. HelpLibrary (Библиотека классов)

  • Роль: Хранение сущностей БД и DTO.

  • Пример сущности:

    public class User

    {

    public int Id { get; set; }

    public string Name { get; set; }

    }

3. ServerLibrary (Библиотека классов)

  • Роль: Бизнес-логика и работа с БД.

  • Функционал:

    • Аутентификация,

    • Валидация данных,

    • Взаимодействие с базой данных.

Структура папок

Структура папок

📦 Установка пакетов Nuget

Для ServerLibrary:

  • Microsoft.AspNetCore.Identity

  • Microsoft.AspNetCore.Authentication.JwtBearer

  • Microsoft.EntityFrameworkCore

  • Microsoft.EntityFrameworkCore.SqlServer

  • Microsoft.EntityFrameworkCore.Tools

  • Microsoft.IdentityModel.Tokens

  • System.IdentityModel.Tokens.Jwt

Для Server:

  • Swashbuckle.AspNetCore.Filters (для документации API).


🔗 НАСТРОЙКА ССЫЛОК МЕЖДУ ПРОЕКТАМИ

  • Проект Server ссылается на:

    • ServerLibrary,

    • HelpLibrary.

Пакеты и ссылки

Пакеты и ссылки

🛠️ Генерация сущностей через scaffolding

Что это такое? - scaffolding

  1. Выполнение команды:

    Scaffold-DbContext "Server=.\SQLEXPRESS;Database=Readify;Trusted_Connection=True;encrypt=false;" Microsoft.EntityFrameworkCore.SqlServer

  2. Распределение кода:

    • DbContext → перемещён в ServerLibrary,

    • Сущности → остаются в HelpLibrary.

В конечном итоге сгенерировались сущности и контекст базы данных.

Контекст базы данных

Контекст базы данных

Сущности

Сущности

🗄️ Настройка подключения к БД

  1. Добавление строки подключения в appsettings.json:

    "ConnectionStrings":

    {

    "DefaultConnection": "Server=.\\SQLEXPRESS;Database=Readify;Trusted_Connection=True;Encrypt=false;"

    }

  2. Регистрация контекста БД в Program.cs:

    builder.Services.AddDbContext<ReadifyContext>(options =>

    {

    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection") ??

    throw new InvalidOperationException("Error to connection!"));

    });


✅ Итоги

  • Сгенерированы сущности БД через EF Core Scaffolding.

  • Настроено подключение к SQL Server.

  • Реализована трёхслойная архитектура:

    • Server (API),

    • HelpLibrary (DTO/Entities),

    • ServerLibrary (Бизнес-логика).

Проект готов к реализации бизнес-логики и разработке API!


Продолжение следует...

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества