2026-02-13-13-03-13-Шаблон презентации 2

1.

Разработка клиентсерверной системы
управления базой
знаний
Евгений
Викторович
Черепнин
Слушатель. Программное
обеспечение вычислительной
техники
Новосибирский
государственный
технический
университет
nstu.ru
www.nstu.ru

2.

Разработка клиент-серверной системы управления базой знаний
Цель и задачи работы
Цель: Разработка полнофункциональной кроссплатформенной системы
для создания, хранения, структурирования и совместного использования
документации (базы знаний).
Задачи:
1.Анализ предметной области и существующих решений.
2.Проектирование архитектуры (клиент-сервер, REST API).
3.Реализация бэкенда на ASP.NET Core Web API (аутентификация, CRUD
для статей, разделов, изображений).
4.Разработка клиентского приложения на Windows Forms с богатым
пользовательским интерфейсом.
5.Интеграция возможностей загрузки и отображения изображений в
контенте.
6.Тестирование и отладка комплексной системы.
www.nstu.ru

3.

Разработка клиент-серверной системы управления базой знаний
Архитектура системы
Трехзвенная архитектура:
1.Клиент (Frontend): Windows Forms приложение (.NET 8.0)
1. Интерфейс пользователя (UI)
2. Бизнес-логика представления
3. HTTP-клиент для API
2.Сервер (Backend): ASP.NET Core Web API (.NET 10.0)
1. RESTful API контроллеры
2. Бизнес-логика сервисов
3. JWT-аутентификация и авторизация
3.База данных (Data): Microsoft SQL Server
1. Хранение пользователей, статей, разделов, метаданных
изображений
2. Связи с поддержкой ссылочной целостности
Технологический стек: C#, .NET, WinForms, ASP.NET Core, Entity
Framework Core, SQL Server, JWT.
www.nstu.ru

4.

Разработка клиент-серверной системы управления базой знаний
Архитектура системы (ClientServer)
Преимущества выбранной архитектуры:
1.Разделение ответственности – клиент
занимается UI, сервер – бизнес-логикой
2.Масштабируемость – можно разработать
другие клиенты (веб, мобильные)
3.Безопасность – вся бизнес-логика на
защищенном сервере
4.Современный подход – REST API как
стандарт взаимодействия
5.Поддержка офлайн-работы (потенциально)
– кэширование данных на клиенте
www.nstu.ru

5.

Разработка клиент-серверной системы управления базой знаний
Реализованные модули клиента
Program.cs – Точка входа, глобальная обработка исключений.
ApiClient.cs – Центральный HTTP-клиент для всех запросов к API.
MainForm.cs – Основное окно с деревом разделов, списком статей и
просмотрщиком.
ArticleEditorForm.cs – Продвинутый редактор с HTML-разметкой и
кнопкой вставки изображений.
LoginForm.cs, SectionManagerForm.cs, SearchForm.cs – формы для
авторизации, управления разделами и поиска.
ArticleImageManagerForm.cs – Менеджер прикрепленных изображений.
www.nstu.ru

6.

Разработка клиент-серверной системы управления базой знаний
Реализованные модули сервера (API)
AuthController, ArticlesController, SectionsController, ImagesController
– REST API endpoints.
AuthService, ArticleService – Слой бизнес-логики.
ApplicationDbContext – Контекст базы данных (Entity Framework Core).
Модели данных (Article, User, Section, Image) – Описание сущностей.
DTO (Data Transfer Objects) – Объекты для передачи между клиентом и
сервером.
www.nstu.ru

7.

Разработка клиент-серверной системы управления базой знаний
Схема базы данных
Таблица Users
(Пользователи)
Таблица Sections (Разделы) –
с самореференцией
(ParentSectionId)
Таблица Articles (Статьи) –
связана с Users и Sections
Таблица Images
(Изображения) – связана с
Articles
www.nstu.ru

8.

Разработка клиент-серверной системы управления базой знаний
Хитрый трюк с авторизацией
public static string HashPassword(string password)
{
using var sha256 = SHA256.Create();
var hashBytes = sha256.ComputeHash(
Encoding.UTF8.GetBytes(password)
);
// Преобразуем байты в строку без Convert.ToHexString
return BitConverter.ToString(hashBytes)
.Replace("-", "").ToLower();
}
Почему это важно:
• Пароли никогда не хранятся в открытом виде
• Даже при утечке базы данных пароли защищены
• Работает в .NET 6+ без Convert.ToHexString
• Гарантированная уникальность хэша для каждого пароля
www.nstu.ru

9.

Разработка клиент-серверной системы управления базой знаний
Заключение и результаты
Результаты:
• Разработано полнофункциональное клиент-серверное приложение для
управления базой знаний.
• Реализован современный REST API с аутентификацией и CRUDоперациями.
• Создан удобный пользовательский интерфейс на Windows Forms с
поддержкой WYSIWYG-редактирования.
• Успешно решена задача интеграции изображений в контент статей.
• Система готова к использованию и расширению.
Направления развития:
Веб-клиент на Blazor/React.
Ролевая модель пользователей (Админ, Редактор, Читатель).
История изменений статей.
Экспорт в PDF/Markdown.
Комментирование статей.
www.nstu.ru
English     Русский Правила