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

OSCHINA-MIRROR/alonsoalon-TenantSite.Server

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение

На основе netcore3.x рекомендуется разрабатывать в IDE Visual Studio 2019

Корпоративная система управления приложениями, ориентированная на SaaS-сервисы корпоративных приложений, является базовой платформой разработки для облачных корпоративных приложений. Система разработана для мультитенантной архитектуры и использует полностью раздельную технологию для фронтенда и бэкенда. Система абстрагирует общую часть разработки корпоративных прикладных программ, позволяя разработчикам сосредоточиться на бизнес-разработке. Реализованы базовые функции управления данными, такие как управление правами, кэширование, авторизация, загрузка и т. д.

UI проект можно найти:

Docs

  • Дополнительные документы доступны по адресу: www.iusaas.com

DEMO

Пример арендатора 1
Пример арендатора 2

image image

Структура каталогов

Структура каталогов решения выглядит следующим образом:

TenantSite.Server 
├── 1-Presentation
│   ├── AlonsoAdmin.HttpApi // Проект API для TenantSite.UI
│   └── AlonsoAdmin.HttpApi.Init // Проект API для AlonsoAdmin.Developer.Tools
├── 2-Application
│   ├── AlonsoAdmin.Services // Уровень сервиса
├── 3-Domain
│   └── AlonsoAdmin.Domain // Доменный уровень, используемый для написания логики, связанной с доменом (например, обработка транзакций и т.д.)
└── 4-Infrastructure
    ├── AlonsoAdmin.Common // Библиотека общих инструментов, пользователей, конфигурации, правил для фронта и бэкэнда
    ├── AlonsoAdmin.Entities // Библиотека классов сущностей базы данных
    ├── AlonsoAdmin.MultiTenant // Библиотека многопользовательских классов
    └── AlonsoAdmin.Repository // Библиотека классов репозитория данных

Конфигурация

Рекомендуется использовать инструменты разработчика для настройки при первом использовании.

Конфигурация проекта HttpApi и описание:

{
  // Параметры запуска, изменение требует перезапуска программы для вступления в силу
  "Startup": {
    // Кэширование
    "Cache": {      
      "Type": 0, // 0: память 1: Redis
      "Redis": {
        "ConnectionString": "127.0.0.1:6379,password=,defaultDatabase=2"
      }
    },
    // Логирование
    "Log": {
      "Operation": true // Переключатель журнала доступа API
    },
    "TenantRouteStrategy": 0 // Стратегия арендатора, 0: режим маршрута 1: режим хоста
  },
  // Системная конфигурация, поддержка горячего обновления, изменения вступают в силу немедленно, без необходимости перезапуска программы
  "System": {
    // Мониторинг CURD действий SQL-запросов, включение покажет выполнение SQL-запроса в окне журнала
    "WatchCurd": true, 
    // Используется для алгоритма снежинки, ID центра обработки данных
    "DataCenterId": 5, 
    // Используется для алгоритма снежинки, идентификатор рабочей станции
    "WorkId": 20, 
    // Включение проверки подлинности API, если включено, API должен быть связан с ресурсами, иначе доступ к API будет запрещен
    "EnableApiAccessControl": true, 
    // Параметр последнего пути аватара
    "uploadAvatar": {
      "uploadPath": "D:/upload/avatar", // Корневой путь загрузки
      "requestPath": "/upload/avatar", // Относительный корневой путь
      "maxSize": 1048576, 
      "contentType": [
        "image/jpg",
        "image/png",
        "image/jpeg",
        "image/gif"
      ]
    }
  },
  // Конфигурация арендаторов, в настоящее время используется выборочная конфигурация, которая должна быть заменена конфигурацией из общей платформы управления
  "Tenants": [
    {
      "Id": "1", // Уникальный идентификатор арендатора
      "Code": "Tenant1",// Код арендатора (уникальный идентификатор), который будет использоваться в качестве субдомена арендатора в режиме хоста
      "Name": "Арендатор 1", // Название арендатора
      // Текущая конфигурация параметров базы данных арендатора, поддерживает несколько баз данных, разные приложения могут указывать на разные базы данных
      "DbOptions": [
        {
          // Ключ приложения базы данных
          "Key": "system", 
          // Тип базы данных MySql = 0, SqlServer = 1, PostgreSQL = 2, Oracle = 3, Sqlite = 4 
          // Дополнительная поддержка: https://github.com/dotnetcore/FreeSql/wiki/Getting Started
          "DbType": "0",
          "ConnectionStrings": [
            {
              // Строка подключения
              "ConnectionString": "Server=localhost; Port=3306; Database=tenant1db; Uid=root; Pwd=000000; Charset=utf8mb4;", 
              // 0 основная база данных 1 для базы данных реплик
              "UseType": 0 
            },
            {
              "ConnectionString": "Server=localhost; Port=3306; Database=Tenant1db; Uid=root; Pwd=000000; Charset=utf8mb4;",
              "UseType": 1 
            }
          ]
        },
        // Поддержка нескольких баз данных, блог — это пример конфигурации второй библиотеки приложений, структура аналогична системе
        {
          "Key": "blog",
          "DbType": "0",
          "ConnectionStrings": [
            {
              "ConnectionString": "Server=localhost; Port=3306; Database=Tenant1db; Uid=root; Pwd=000000; Charset=utf8mb4;",
              "UseType": 0
            },
            {
              "ConnectionString": "Server=localhost; Port=3306; Database=Tenant1db; Uid=root; Pwd=000000; Charset=utf8mb4;",
              "UseType": 1
            }
          ]
        }
      ],
      // Текущие параметры JWT Token для текущего арендатора
      "Items": {
        "Audience": "https://www.xxxx.com/", 
        "ExpirationMinutes": "1000", 
        "Issuer": "https://www.xxxx.com/", 
        "Secret": "2qtiOLpT7mJQx239e2kgMheAH7B9lGQJnoxYRCb7KX3x1ogDEd55I7dJ1ziYptiTF"
      }
    },
    // Копируйте конфигурацию арендатора 1 и используйте ее для конфигурации арендатора 2
  ]
}

Использование аутентифицированных пользователей

Зависимость конструктора от IAuthUser может быть использована.

 public class DemoService 
    {
        private readonly IAuthUser _authUser;
        public

Комментарии ( 0 )

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

Введение

Бэкенд-сервис API, фронтенд-пример см. в репозитории TenantSite.UI. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/alonsoalon-TenantSite.Server.git
git@api.gitlife.ru:oschina-mirror/alonsoalon-TenantSite.Server.git
oschina-mirror
alonsoalon-TenantSite.Server
alonsoalon-TenantSite.Server
master