1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/pang-mingjun-RuYiAdmin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 20:58 a27b773

RuYiAdmin

Проект: краткое описание

RuYiAdmin — это решение для унифицированного управления безопасностью на основе RBAC (Role-Based Access Control) с разделением на клиентскую и серверную части. Оно разработано на платформе .NET 8 и может работать на различных операционных системах, что обеспечивает кроссплатформенность решения. RuYiAdmin отличается высокой производительностью, поддерживает аутентификацию 4A, соответствует требованиям безопасности «три защиты» и предоставляет следующие возможности:

  • поддержка интеллектуального большого экрана;
  • генерация кода для нескольких бизнес-уровней: представления, контроллера, сервиса, хранилища, домена и DTO;
  • интеграция с VForm для создания и предварительного просмотра форм;
  • использование ORM SqlSugar с поддержкой различных баз данных;
  • не-реляционные базы данных: Redis, MongoDB, Elasticsearch, Meilisearch;
  • обмен сообщениями через ActiveMQ, RabbitMQ, Kafka, Redis;
  • централизованная конфигурация через Apollo;
  • унифицированная обработка исключений, ограничение скорости запросов;
  • обнаружение сервисов и проверка работоспособности, а также возможность отключения и понижения уровня обслуживания;
  • MiniProfiler для анализа производительности интерфейсов;
  • распределённые транзакции CAP и EventBus;
  • управление и планирование распределённых задач;
  • поддержка FTP, FXP, FTPS, SFTP;
  • защита от SQL-инъекций, перехвата токенов и атак на интерфейсы;
  • обеспечение уникальности запросов и предотвращение повторных отправлений;
  • шифрование с использованием отечественных алгоритмов SM;
  • шлюз Ocelot для обеспечения безопасности сети;
  • полная поддержка HTTPS для шифрования передачи данных.

Изучение и общение

RuYiAdmin предлагает широкий спектр возможностей для изучения и использования. Проект открыт для сообщества и доступен бесплатно с момента выпуска версии .NET 8. Для получения дополнительной информации и поддержки можно присоединиться к группам обсуждения:

  • коммерческая группа: 664802523;
  • группа для изучения: 806522770.

Важно отметить, что проект представляет собой сложное решение с высоким начальным уровнем сложности, поэтому рекомендуется тщательно изучить его перед началом работы.

Архитектура программного обеспечения

В описании архитектуры программного обеспечения представлена диаграмма, которая иллюстрирует структуру системы. Однако в запросе отсутствует текст, описывающий эту диаграмму.

Преимущества проекта

Frontend:

  • фреймворк Vue2 с использованием Element UI и Vue Element Admin;
  • стандартизация API и базовых страниц;
  • функции блокировки экрана и добавления водяных знаков;
  • контроль видимости кнопок и представлений;
  • гранулярное управление доступом для кнопок и представлений;
  • возможность снижения прав доступа;
  • интеллектуальный большой экран;
  • многоязычность для представлений и бизнес-логики;
  • защищённый обмен данными;

Backend:

  • платформа .NET 8 с поддержкой кроссплатформенности и Docker для Linux;
  • интегрированная система с единой аутентификацией;
  • веб-API на ASP.NET Core для построения независимых сервисов или поддержки фронтенда;
  • Swagger как инструмент управления веб-API с подробными комментариями;
  • настраиваемые белые списки маршрутов и проверка заголовков запросов;
  • JWT-аутентификация для предотвращения злоупотреблений веб-API;
  • стандартные форматы возврата данных;
  • мощные условия запросов для адаптации к фронтенду;
  • однократная генерация кода для различных бизнес-слоёв;
  • онлайн-поддержка для предварительного просмотра системы;
  • динамическое обновление конфигурации и логов;
  • мониторинг поведения пользователей с помощью AOP;
  • авторизация пользователей на основе их поведения с помощью AOP;
  • AutoFac для автоматического внедрения зависимостей;
  • log4net для ведения журналов консоли;
  • Quartz для управления задачами и планирования;
  • ORM SqlSugar для работы с различными базами данных и мультиарендностью;
  • гибкие и эффективные SQL-запросы с возможностью горячей замены и разделения чтения и записи;
  • поддержка двухфазной фиксации для операций чтения/записи;
  • оптимистичные блокировки для параллелизма;
  • обработка больших объёмов данных при записи и обновлении;
  • логические и физические удаления данных;
  • базовый класс модели и поддержка экспорта в Excel с проверкой данных;
  • пути относительно и абсолютные, включая NAS-хранилища;
  • AutoMapper для преобразования POCO и DTO;
  • мгновенные сообщения;
  • отключение пользователей из системы в реальном времени;
  • пулы потоков и многозадачность;
  • восстановление после сбоев и понижение уровня обслуживания;
  • уведомления о сбоях по электронной почте;
  • Consul для управления сервисами и проверки работоспособности;
  • ограничения одновременных запросов;
  • RateLimit для распределённого ограничения скорости;
  • единая обработка исключений;
  • защита от SQL-инъекций;
  • предотвращение перехвата токенов и атак на интерфейсы;
  • уникальность запросов и защита от повторных отправлении;
  • OCR;
  • MongoDB;
  • полнотекстовый поиск с Elasticsearch;
  • Apollo для централизованной конфигурации;
  • анализ производительности интерфейсов;
  • транзакции CAP и EventBus для распределённой обработки;
  • FTP, FXP, FTPS и SFTP;
  • отечественные алгоритмы SM и международные RSA и AES для шифрования;
  • Ocelot в качестве шлюза для обеспечения сетевой безопасности;
  • полное HTTPS-шифрование для всех коммуникаций.

База данных:

  • визуальная модель ER для проектирования баз данных;
  • реляционные базы данных MySQL, SQL Server, SQLite, Oracle, PostgreSQL и OpenGauss;
  • скрипты инициализации базы данных для быстрого запуска;
  • автоматическое создание баз данных;
  • нереляционные базы данных Redis, MongoDB, Elasticsearch и Meilisearch.

Middleware:

  • высокоскоростное кэширование с Redis и кластеризация с Sentinel;
  • ActiveMQ для обмена сообщениями с поддержкой Master Slave и Broker Cluster;
  • очереди сообщений через ActiveMQ, RabbitMQ, Kafka и Redis.

Системный дизайн

Представлена диаграмма системного дизайна, но без текстового описания.

Установка

Описаны шаги установки, включающие установку Redis, ActiveMQ (или RabbitMQ), MySQL (с поддержкой репликации главный-подчиненный и разделения чтения-записи), Node.js, клонирование кода, инициализацию базы данных, изменение конфигураций и запуск системы.

Снимки экрана системы

Приведены скриншоты интерфейса системы с описанием основных функций, таких как вход в систему, главная страница, управление организациями, пользователями, меню, ролями, словарями данных и журналами аудита. Онлайн-задачи по планированию

Многоязычное управление системой

Управление административными регионами

Управление уведомлениями и объявлениями

Онлайн-управление пользователями Мониторинг серверов Статистика системных файлов Анализ производительности интерфейсов

Системное руководство

Дизайнер форм Генератор кода API системы Web Проект системной базы данных

Интеллектуальный большой экран

Интеграция системы и единая аутентификация

Интеграция системы Единая авторизация Множественная авторизация Единая аутентификация Единый доступ

Swagger

Другие

Примеры кода в минималистичном стиле

    /// <summary>
    /// Интерфейс бизнес-уровня для ведения журнала
    /// </summary>
    public interface ILogService : IBaseService<SysLog>
    {
    }

Постскриптум

Я изучил множество открытых исходных кодов .Net, будь то фронтенд, бэкенд или фреймворк. Я не нашёл ни одного, который бы меня полностью устраивал. После использования Vue версии Ruyi Spring Boot (Java Framework) я обнаружил, что он очень всеобъемлющий и мощный, но также имеет некоторые проблемы: отсутствие унифицированных абстракций и инкапсуляции как во фронтенде, так и в бэкенде.

Если архитектура не имеет уровней и не инкапсулирована, это означает, что объём кода будет большим. Поэтому у меня возникла идея унифицировать и обобщить абстракции и инкапсуляцию на уровне фронтенда, контроллера, сервисного уровня, уровня хранилища и общего бизнеса, чтобы максимально сократить объём кода на бизнес-уровне и облегчить разработку.

В марте 2021 года, после изучения множества выдающихся проектов с открытым исходным кодом, я завершил первоначальную разработку концепции дизайна и выбора технологий. В апреле 2021 года я начал разработку нижнего уровня фреймворка. Затем я энергично завершил его в свободное время и открыл исходный код. Чтобы отметить её рождение, я назвал её в честь имени моей дочери — «RuYiAdmin». По состоянию на 18 февраля 2022 года проект RuYiAdmin с открытым исходным кодом прошёл через 15 крупных итераций, архитектура становится более стабильной, а бизнес — более зрелым.

«С чашей вина под весенним ветром персика и сливы, десять лет спустя светят фонари над ночной рекой и озером». Проект RuYiAdmin с открытым исходным кодом является результатом моего десятилетнего опыта работы с фреймворками и технологиями. Я намерен объединить проект RuYiAdmin с открытым исходным кодом с текущими популярными технологиями, чтобы превратить свой личный опыт и технологии в мощный производственный инструмент, чтобы помочь большему количеству людей.

Наконец, от всего сердца благодарю бескорыстных участников сообщества открытого исходного кода за их огромный вклад в прогресс информационных технологий человечества. Ваш вклад вдохновляет нас и освещает наш путь вперёд!

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/pang-mingjun-RuYiAdmin.git
git@api.gitlife.ru:oschina-mirror/pang-mingjun-RuYiAdmin.git
oschina-mirror
pang-mingjun-RuYiAdmin
pang-mingjun-RuYiAdmin
master