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

OSCHINA-MIRROR/faib920-zero

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

Пример использования Fireasy Zero

Этот демонстрационный проект показывает, как использовать Fireasy для создания системы управления сайтом с возможностью администрирования. Решение включает два примера — ASP.NET MVC5 и ASP.NET Core, использует базу данных SQLite и основано на easyUI 1.4.3.

Демонстрация создана с использованием framework Fireasy, Fireasy онлайн-документация доступна по следующей ссылке: http://www.fireasy.cn/docs.

Примечание

  • Последняя версия основана на .NET Core 2.2 / .NET Core 3.1 (по умолчанию используется 2.2; если требуется изменить целевой фреймворк, то измените значение TargetFramework в файле проекта). Убедитесь, что вы установили SDK, иначе приложение не будет работать.
  • В примерах Redis используется для кэширования данных. Вы можете установить Redis 2.8 или отключить кэширование (удалить раздел конфигурации).
  • В примерах MongoDB используется в качестве базы данных для логов. Если MongoDB не установлен или неправильно настроена, после входа в систему запись логов может привести к ошибкам соединения, которые будут выводиться в консоль, но это считается нормальным поведением.
  • Логин: admin Пароль: admin

Особенности

  • Операции с базой данных и использование Entity Framework имеют схожие особенности, так как используют LINQ, что снижает затраты на обучение. Однако в отличие от последнего, предоставляются методы вставки, обновления, удаления и пакетной операции, что делает работу более быстрой и ближе к нативному SQL.* Взаимодействие между представлением и сервером в системе управления сайтов, основанной на EasyUI, осуществляется через AJAX. Поэтому при получении параметров в действии используется обратная сериализация JSON для привязки модели. Преимущество такого подхода заключается в том, что сложные структуры данных, такие как несколько списков или вложенные объекты, легко принимаются в действии.

  • Экземпляр объекта, передаваемый действием, может самостоятельно различать, какие свойства были изменены благодаря конвертеру LightEntityJsonConverter. Это позволяет избежать проблем с перезаписью существующих данных при создании или обновлении записей.

  • Отсутствие использования ViewModel и прямое применение DataModel экономит много времени разработки. Однако это также вызывает проблему, аналогичную той, которая возникает при использовании Entity Framework — все свойства, поддерживающие ленивую загрузку, будут сериализованы. Для решения этой проблемы была оптимизирована сериализация JSON, используя Fireasy JSON Serializer, который способен распознавать объекты с ленивой загрузкой.

  • Несмотря на отсутствие ViewModel, можно расширять больше атрибутов для использования на клиентской стороне. В классах _Ex можно определять неvirtual атрибуты и использовать метод расширения ExtendAs, чтобы избежать сложностей при присвоении значений через new {}.* В новой версии также внедрен паттерн DTO; более подробную информацию о нем можно найти в функциях, связанных с пользователями.

  • Сервисы реализуются на основе AOP и предоставляют интерцепторы для транзакций и кэширования. Для активации этих функций достаточно указать соответствующее свойство. Также обязательно использование контейнера IoC Fireasy. Структура проекта

Fireasy.Zero.Models Энтитетные модели

Fireasy.Zero.Infrastructure Инфраструктура

Fireasy.Zero.Helpers Вспомогательные функции

Fireasy.Zero.Services Сервисы

Fireasy.Zero.AspNet Пример MVC5

Fireasy.Zero.AspNetCore Пример ASP.NET Core

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

Для конфигурации Fireasy обратитесь к разделу fireasy в файле web.config:

dataInstances — конфигурация экземпляров баз данных, использует SQLite.

cachings — конфигурация кэширования, использует Redis. При удалении этой конфигурации используется память как кэш.

containers — конфигурация контейнера IOC.

mvc/bundles — конфигурация файлов ресурсов bundle.

Обратите внимание на конфигурацию Fireasy в глобальном файле, это все необходимое.

BundleManager.Config();

//Добавление фабрики контроллеров MVC в контейнер IOC
var container = ContainerUnity.GetContainer();
ControllerBuilder.Current.SetControllerFactory(new ControllerFactory(container));

//Регистрация привязки easyui для проверки
SettingsBindManager.RegisterBinder("validatebox", new ValidateBoxSettingBinder());
SettingsBindManager.RegisterBinder("numberbox", new NumberBoxSettingBinder());
```// Использование LightEntity для преобразования JSON
GlobalSetting.Converters.Add(new LightEntityJsonConverter());

// Добавление преобразователя из контейнера для декодирования типов
GlobalSetting.Converters.Add(new ContainerJsonConverter(container));


<b>Конфигурация Core</b>

Аналогично примеру выше, конфигурация Core находится в файле appsettings.json и также включает конфигурацию экземпляров баз данных и контейнера IOC.

Настройка в файле Startup.cs (см. актуальный код)


```csharp
public void ConfigureServices(IServiceCollection services)
{
	services.AddFireasy(Configuration, options =>
	{
		// Регистрация подписчика событий энтитетной персистентности
		options.AddSubscriber<EntityPersistentSubject>(string.Empty, subject => new EntitySubscriber().Accept(subject));
	})
	.AddIoc(ContainerUnity.GetContainer()) // Добавление конфигурации IOC из файла appsettings.json
	.AddEntityContext<DbContext>(options =>
	{
		options.AutoCreateTables = true; // При значении true используется режим CodeFirst для управления таблицами базы данных
		options.NotifyEvents = true; // При значении true события энтитетной персистентности будут активированы
	});

	services.AddMvc()
		.AddSessionStateTempDataProvider()
		.ConfigureFireasyMvc(options =>
		{
			options.JsonSerializeOption.Converters.Add(new LightEntityJsonConverter()); // Этот объект является энтитетом, который был обработан через уровень Fireasy
		})
		.ConfigureEasyUI();
}
services.AddSession()
    .AddSessionRevive<SessionReviveNotification>(); // восстановление сессии
}
```![](http://www.fireasy.cn/content/images/Donate_fireasy.png)

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

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

Введение

Данный демо-пример демонстрирует, как использовать Fireasy для создания системы управления бэкендом. Решение включает два примера на основе ASP.NET MVC 5 и ASP.NET Core с использованием базы данных SQLite, построенной на EasyUI версии 1.4.3. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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