Благодарность
Благодарим JetBrains за предоставление лицензии с открытым исходным кодом для Resharper.
Обзор проекта
Данный фреймворк направлен на повышение эффективности разработки и снижение сложности реализации предметно-ориентированного проектирования.
Основываясь на многолетнем личном опыте использования, он следует принципам объектно-ориентированной разработки и постепенно эволюционировал из бизнес-проектов.
Во фреймворке широко используются такие технологии .NET, как дженерики, рефлексия, делегаты, события, лямбда-выражения, EntityFramework, расширения поведения WCF, закладки WF, HttpModule ASP.NET, промежуточное ПО OWIN и другие. Также используются сторонние технологии, такие как Newtonsoft.Json, MrAdvice и Redis.
Применяются паттерны проектирования, включая Factory, Mediator, Adapter, Provider, Facade, а также принципы и супертипы.
Изменён уровень доступа к DbContext на protected;
Добавлен метод построения выражения для фильтрации сущностей, что позволяет избежать переопределения метода FindAllInner для фильтрации связанных агрегатов с нулевыми или удалёнными объектами.
Добавлен компонент для выполнения задач по расписанию, включающий выполнение задач по расписанию и постоянное хранение в Redis.
Добавлена базовая функциональность слоя представления ASP.NET Core, включающая общие расширения, фильтры исключений и фильтры авторизации.
Атрибут AddedTime в классе PlainEntity изменил уровень доступа на protected для совместимости с EF Core;
Исправлена ошибка в EF/EF Core, связанная с удалением объектов после их удаления.
Полностью активирована версия v2.6.1;
Основные классы библиотеки фреймворка перенесены на .NET Standard 2.0 (см. список проектов);
Добавлена реализация репозитория EF Core;
Добавлены базовые компоненты промежуточного ПО ASP.NET Core.
Возобновлена поддержка версии 2.6.1 фреймворка;
Фреймворк перенесён на .NET Standard 2.0, см. список проектов;
Добавлена реализация репозиториев EF Core;
Добавлено базовое промежуточное ПО для сервисов ASP.NET Core;
Агрегатные корни сущностей теперь содержат информацию о создателе и операторе;
Добавлены интерфейсы для проверки и отключения сущностей;
Используется CallContext.LogicalSetData()/LogicalGetData() для поддержки асинхронного программирования;
Добавлена базовая инфраструктура веб-API;
Версия .NET Framework обновлена до 4.6.1;
Уровень изоляции транзакций изменён на моментальный снимок, добавлена поддержка асинхронных транзакций;
Методы UnitOfWork/UnitOfWorkExtension расширены для асинхронной работы;
Логические события домена расширены для асинхронной обработки;
API репозиториев упрощён.
В Common удалены зависимости от PanGu для сегментации слов;
Базовый интерфейс службы домена удаляет GetKeywords;
Модель страницы реализует IEnumerable;
Ключевые слова перемещены из PlainEntity в AggregateRootEntity;
Репозитории скорректированы соответствующим образом.
Добавлен атрибут OperatorAccount в Aggregate Root;
Удалён атрибут Sort из обычных сущностей;
Атрибуты SavedTime, Deleted и DeletedTime имеют уровень доступа protected internal;
В репозитории EF добавлены события для получения информации об операторе при выполнении операций над агрегатами, чтобы записывать информацию об операторе во время операций создания, обновления и удаления;
Часть атрибутов обычных сущностей (Number, Name, SavedTime, Deleted, DeletedTime) перемещена в Aggregate Root;
Репозиторий разделён на базовый репозиторий для агрегатов и базовый репозиторий для обычных сущностей;
Реализация репозиториев для Entity Framework и RavenDB разделена.
Список проектов
SD.Infrastructure (.NET Standard 2.0)
Базовые компоненты инфраструктуры, включая константы системы, пользовательские исключения и базовые интерфейсы и классы.
NuGet пакет: https://www.nuget.org/packages/SD.Infrastructure
SD.Infrastructure.AOP (.NET Standard 2.0)
Инфраструктура AOP, включая различные способы обработки исключений для разных проектов.
NuGet пакет: https://www.nuget.org/packages/SD.Infrastructure.AOP
SD.Infrastructure.Global (.NET Standard 2.0)
Глобальные операции инфраструктуры, включая глобальную инициализацию, освобождение ресурсов и транзакции.
NuGet пакет: https://www.nuget.org/packages/SD.Infrastructure.Global
SD.Infrastructure.EventBase (.NET Standard 2.0)
Базовая инфраструктура событий домена, включая базовые классы событий домена, фабрики обработчиков событий домена, посредники событий домена и провайдеры хранения сеансов.
NuGet пакет: https://www.nuget.org/packages/SD.Infrastructure.EventBase
SD.Infrastructure.EventStoreProvider.RabbitMQ (.NET Standard 2.0)
Поставщик хранилища событий домена RabbitMQ.
NuGet пакет: https://www.nuget.org/packages/SD.Infrastructure.EventStoreProvider.RabbitMQ
SD.Infrastructure.EventStoreProvider.Redis (.NET Standard 2.0)
Поставщик хранилища событий домена Redis.
NuGet пакет: https://www.nuget.org/packages/SD.Infrastructure.EventStoreProvider.Redis
SD.Infrastructure.CrontabBase (.NET Standard 2.0)
Базовая инфраструктура задач по расписанию, включая базовые классы задач по расписанию, фабрики исполнителей задач по расписанию и посредники планирования.
NuGet пакет: https://www.nuget.org/packages/SD.Infrastructure.CrontabBase SD.Infrastructure.CrontabStoreProvider.Redis (.NET Standard 2.0)
Поставщик хранилища для задач, выполняемых по расписанию в Redis.
NuGet-пакет доступен по адресу: https://www.nuget.org/packages/SD.Infrastructure.CrontabStoreProvider.Redis
Серверная часть
SD.Infrastructure.AspNetCore.Server (.NET Core 2.0)
Базовая инфраструктура для ASP.NET Core на серверной стороне.
NuGet-пакет доступен по адресу: https://www.nuget.org/packages/SD.Infrastructure.AspNetCore.Server
SD.Infrastructure.MVC.Server (.NET Framework 4.6.1)
Инфраструктура для серверной стороны ASP.NET MVC 5.
NuGet-пакет доступен по адресу: https://www.nuget.org/packages/SD.Infrastructure.MVC.Server
SD.Infrastructure.WebApi.Server (.NET Framework 4.6.1)
Инфраструктура для серверной стороны ASP.NET WebApi 2.0.
NuGet-пакет доступен по адресу: https://www.nuget.org/packages/SD.Infrastructure.WebApi.Server
SD.Infrastructure.WCF.Server (.NET Framework 4.6.1)
Инфраструктура для WCF на серверной стороне.
NuGet-пакет доступен по адресу: https://www.nuget.org/packages/SD.Infrastructure.WCF.Server
Хранилище данных
SD.Infrastructure.Repository.EntityFramework (.NET Framework 4.6.1) Инфраструктура хранилища данных, включающая в себя три уровня абстракции EntityFramework DbContext, средство очистки базы данных, поставщик хранилища EntityFramework и поставщик UnitOfWork EntityFramework.
NuGet-пакет доступен по адресу: https://www.nuget.org/packages/SD.Infrastructure.Repository.EntityFramework
SD.Infrastructure.Repository.EntityFrameworkCore (.NET Core 2.0)
Инфраструктурная основа для хранилища данных — реализация с использованием EF Core.
NuGet-пакет доступен по адресу: https://www.nuget.org/packages/SD.Infrastructure.Repository.EntityFrameworkCore
SD.Infrastructure.Repository.MongoDB (.NET Standard 2.0)
Инфраструктурная основа для хранилища данных — реализация с использованием MongoDB.
NuGet-пакет доступен по адресу: https://www.nuget.org/packages/SD.Infrastructure.Repository.MongoDB
SD.Infrastructure.Repository.RavenDB (.NET Standard 2.0)
Инфраструктурная основа для хранилища данных — реализация с использованием RavenDB.
NuGet-пакет доступен по адресу: https://www.nuget.org/packages/SD.Infrastructure.Repository.RavenDB
Уровень представления
SD.Infrastructure.AspNetCore (.NET Core 2.0)
Базовая инфраструктура уровня представления для ASP.NET Core.
NuGet-пакет доступен по адресу: https://www.nuget.org/packages/SD.Infrastructure.AspNetCore
SD.Infrastructure.MVC (.NET Framework 4.6.1)
Базовая инфраструктура уровня представления для ASP.NET MVC 5.
NuGet-пакет доступен по адресу: https://www.nuget.org/packages/SD.Infrastructure.MVC
SD.Infrastructure.WPF (.NET Framework 4.6.1)
Базовая инфраструктура уровня представления WPF.
NuGet-пакет доступен по адресу: https://www.nuget.org/packages/SD.Infrastructure.WPF
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )