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

OSCHINA-MIRROR/JamesYeung-shriek-fx

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

Шриэк Эф Икс: зап:

Билд статус МайГет Пре Релиз Автор Лицензия GitHub

Shriek-Fx — это простой в использовании и легко расширяемый фреймворк для быстрой разработки, основанный на .NET Core 2.0, который следует принципам проектирования, управляемого предметной областью (DDD), и объединяет архитектуру CQRS для обеспечения реализации таких функций, как событийно-управляемая разработка, отслеживание событий и реактивность. Внутренние вызовы практически незаметны для пользователя, и фреймворк готов к использованию сразу после установки. Цель состоит в том, чтобы помочь разработчикам небольших приложений использовать мышление DDD при разработке и в конечном итоге отказаться от сложных концепций проектирования, управляемых предметной областью, и наслаждаться истинным чувством объектно-ориентированного дизайна.

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

PS. Проектирование, управляемое предметной областью — это метод проектирования программного обеспечения, а этот фреймворк предоставляет набор инструментов разработки (SDK), который позволяет реализовать эту теорию проектирования на практике.

Этот фреймворк вдохновлён книгами «Проектирование, управляемое предметной областью» и «Реализация проектирования, управляемого предметной областью», а также ENode.

Особенности:

  1. Проектирование, управляемое предметной областью (DDD).
  2. Разделение ответственности за команды и запросы (CQRS).
  3. Событийно-управляемая архитектура (EDA).
  4. Отслеживание событий (ES).
  5. Конечная согласованность (Eventually Consistent).
  6. Контракт как услуга. (Автоматическое создание клиентских и серверных реализаций через определённые интерфейсы, поддержка Http и Socket).
  7. Каждый компонент фреймворка имеет базовую реализацию, и для запуска требуется только основной класс библиотеки.
  8. Следование портам и адаптерам, компоненты фреймворка адаптируются к различным сторонним реализациям, позволяя масштабировать от монолитной архитектуры до сервис-ориентированной по мере необходимости.

Принципы проектирования:

  1. По возможности используйте .NET Standard и официальные библиотеки классов, проектируйте сторонние библиотеки как компоненты и используйте DI для их комбинирования по мере необходимости.

Документация:

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

В настоящее время разрабатываемая версия опубликована в MyGet, при установке из Nuget необходимо добавить источник адреса MyGet или добавить файл NuGet.config в корень решения со следующим содержимым:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
	<add key="Shriek-Fx" value="https://www.myget.org/F/shriek-fx/api/v3/index.json" />
	<add key="Nuget.org" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>

Среда разработки:

  1. Visual Studio 15.3+.
  2. .NET Core SDK 2.0+.

Пример проекта:

Система аутентификации и авторизации ShriekFX.Auth находится в стадии разработки.

Система управления контентом ShriekFX.CMS находится в стадии разработки. Другие примеры можно найти в каталоге Samples.

Список задач (будет постоянно обновляться):

  • Сторона C:
    • Командная шина CommandBus.
    • Шина событий EventBus.
    • Асинхронная очередь внутри процесса.
    • Кэш событий в памяти.
    • Автоматическая регистрация интерфейсов.
    • Акторная архитектура.
    • Архитектура саги.
    • Архитектура, управляемая событиями + хранилище событий + агрегатные снимки (режим журнала).
      • Режим в памяти (агрегатные изменения немедленно сохраняются).
      • Реализация EF Core.
      • NoSQL реализация:
        • LiteDB.
        • Cosmos DB (MongoDB API).
      • InfluxDB (база данных временных рядов).
      • Redis.
    • Шина / очередь сообщений (MQ):
      • RabbitMQ.
  • Сторона Q + реальная база данных адаптеров:
    • EF Core.
    • Dapper:
      • Маркировка интерфейсов SQL-особенностями для динамического создания репозиториев.
      • SmartSql расширение (реализация шаблонов XML SQL).
      • Linq расширение.
      • Специфические характеристики транзакционных областей.
    • TiDB.
    • Базовый класс запросов.
  • Уровень прикладных сервисов:
    • Интерфейсы как услуги:
      • Http / MVC.
      • TCP / RPC.
      • Dotnetty.
    • GraphQL.
  • UI слой:
    • Управление доступом.
    • OAuth 2.0.
    • ASP.NET Core расширение:
      • WebApi JS-клиент сгенерирован.
    • Angular.
    • Vue (Vuetify).
  • Запланированные задачи:
    • Hangfire.
  • Базовая инфраструктура:
    • Aop перехватчики:
    • Мониторинг и отслеживание:
    • Журналы:
      • NLog.
      • Log4net.
      • Exceptionless.
    • Сериализатор.
    • Сервисный локатор.
    • Шифрование.
    • Сканеры.
  • Модульное тестирование:
    • CQRS.
    • ServiceProxy.
  • Примеры (Samples):
    • Хранилище событий в памяти.
    • Хранилище событий EF Core.
    • NoSQL хранилище событий.
    • InfluxDB хранилище событий.
    • Redis хранилище событий.
    • RabbitMQ шина.
    • Прокси WebApi.
    • Полный пример CQRS.

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

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

Введение

Простой и удобный фреймворк для разработки на основе доменного проектирования (DDD+CQRS), созданный с использованием .NET Core 2.0, призван сделать DDD доступным для небольших приложений и избавить разработчиков от необходимости глубокого погружения в принципы доменного проектирования. Если вам нравится этот проект, пожалуйста, добавьте звезду ... Развернуть Свернуть
MIT
Отмена

Обновления

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

Участники

все

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

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