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

OSCHINA-MIRROR/code2roc-FastExecutor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
FastExecutorBook.md 9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 07:02 cd605f4
  1. Получение информации о токене (обязательно в контексте запроса или связанной с ним операции в базе данных):
InjectUtil.Container.Resolve<AuthUtil>().GetToken()
  1. Использование FastAllowAnonymousAttribute для пометки определённого API как доступного для анонимного доступа в обычных классах, требующих аутентификации с помощью токена:

  2. Использование FastSQLInjectionAttribute для включения защиты от SQL-инъекций в классах и методах:

Использование компонентов сообщений

  1. Создание класса обработки сообщений, который наследуется от FastDefaultMessageHandler:

  2. Пометка класса обработки с помощью MessageChanelAttribute и указание ChannelName:

  3. Переопределение методов CustomHandle (для обработки сообщения) и CheckMessageIsConsume (для подтверждения потребления сообщения):

  4. Отправка сообщения с помощью метода MessageCenter.GetInstance().SendMessage, где класс сущности, отправляемый в сообщении, должен соответствовать типу, десериализованному в методе CustomHandle:

Пример:

    [MessageChanelAttribute(ChannelName = "Login")]
    public class LoginLog : FastDefaultMessageHandler
    {
        public override void CustomHandle(Message.Design.Message Message)
        {
            Frame_LoginLog LogEntity = JsonConvert.DeserializeObject<Frame_LoginLog>(Message.MessageBody.MessageJsonContent);
            @DBUtil.Insert(LogEntity);
            base.CustomHandle(Message);
        }

        public override bool CheckMessageIsConsume(Message.Design.Message Message)
        {
            Frame_LoginLog LogEntity = JsonConvert.DeserializeObject<Frame_LoginLog>(Message.MessageBody.MessageJsonContent);
            DBRow Row = new DBRow("Frame_LoginLog", "RowGuid", LogEntity.RowGuid);
            if (Row.IsExist())
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }

Разработка и настройка элементов домашней страницы

Использование технологии динамического рендеринга Mustache.js для создания настраиваемых и разделённых элементов домашней страницы, которые можно настроить в системе — элемент управления. Необходимо настроить путь к шаблону и URL данных шаблона. Если элемент включён, он будет отображаться на главной странице:

Пример использования конфигурации шаблона

Разработка шаблонов на основе примера FastExecutor/Element/NoticeTemplate.html:

<div class="cellheadcontainer">
    <span class="celltitletext">{{elementtitle}}</span>
    <div class="celltitleop">
        <a style="color:white" class="morebtn" onclick="OpenMore('{{elementmoreurl}}')">更多</a>
    </div>
</div>
<div class="cellcontentcontainer">
    {{#data}}
    <div class="notciecell" onclick="OpenDetail('{{title}}')">
        <div class="noticeleft">
            <span class="noticetitle noticeindex">{{index}}</span>
            <span class="noticetitle">{{title}}</span>
        </div>
        <div class="noticeright">
            <span class="noticetip">{{publishuname}}</span>&nbsp;
            <span class="noticetip">{{publishdate}}</span>
        </div>
    </div>
    {{/data}}
</div>
<script>
    var noticeid = "{{elementid}}";
    function OpenMore(url) {
        OpenTopDialog('noticlelist', '消息通知列表', url, 600, 800, BindNotcieList)
    }
    function BindNotcieList() {
        CommonRefresh(noticeid);
    }
    function OpenDetail(title) {
        OpenTopDialog('noticledetail', '消息详情', "Frame/Demo/NoticeDetail", 600, 800, BindNotcieList, title)
    }
</script>

Все ключи JSON в шаблоне могут быть использованы с помощью синтаксиса Mustache в файле шаблона. Пример метода CommonRefresh в Index — это метод упаковки для обновления данных указанного элемента. Он может использоваться для обработки событий после завершения данных. В файле шаблона также можно определить пользовательские стили и JavaScript для повышения гибкости настройки элементов.

Разработка и конфигурация запланированных задач

Использование компонента задачи Quartz.net для реализации настраиваемого шаблона управления задачами в системе управления — модуль управления задачами:

Конфигурация запланированной задачи

Задачи включают циклические задачи и задачи, выраженные с помощью Corn. Также необходимо привязать класс выполнения задачи, указав полный путь класса. Класс выполнения задачи должен наследовать от FastJob и переопределять метод ExecuteJob. Пример: FastExecutor.ORG.Demo.DemoJob. Базовый класс FastJob также предоставляет методы ведения журнала для задач, которые могут быть легко использованы. Система автоматически классифицирует журналы на основе идентификатора задачи.

 public class DemoJob : FastJob
    {
        public override void ExecuteJob()
        {
            try
            {
                 LogJob("DemoJob正在执行!!!!!");
            }
            catch (Exception e)
            {

                LogJob(string.Format("DemoJob执行发生异常,异常信息", e.Message));
            }
        }
    }

Разработка бизнес-системы

Создание таблиц

Управление бэкендом — управление данными проекта — платформа управления данными проекта (DMP) (все таблицы проектов используют DMP для управления):

  1. Добавить таблицу данных.

  2. Добавить структуру таблицы, определить соответствующие типы параметров и выбрать элементы управления.

  3. Выберите «Создать код» в списке структур таблиц, чтобы создать код для добавления, редактирования, списка страниц и т. д. Эти файлы должны быть помещены в соответствующие папки проекта.

Индивидуальная разработка бэкэнда

  1. Обычно сгенерированный код DB просто переписывает метод генерации первичного ключа. Вы можете переписать любой метод в DB. Сгенерированный код контроллера заменит общий шаблон контроллера.

  2. Если сгенерированного кода DB недостаточно, вы можете создать свой собственный метод. Однако вам нужно объявить класс DB в контроллере, а не использовать базовый класс. Пример кода:

  [AutoWired]
  public DB_User @DB_User;
  1. Контроллер также содержит основные API операций. Если вы хотите добавить индивидуальные условия поиска для операций со списком, пример кода выглядит следующим образом:
  JObject Params = GetParams();
  string DisplayName

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

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

1
https://api.gitlife.ru/oschina-mirror/code2roc-FastExecutor.git
git@api.gitlife.ru:oschina-mirror/code2roc-FastExecutor.git
oschina-mirror
code2roc-FastExecutor
code2roc-FastExecutor
master