AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.07.2017, 01:03   #22  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Пиши в log файл короче. Что-то мне предсказывает, что это не самое главное в твоей задаче.
не, лог-файл худшее решение на мой взгляд. чой-то нахлебался я ими при работе с ритейлом.

и... мне не столько мою задачку хочется решить, сколько найти правильные подходы к такому классу задач.

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

когда захотел сделать проект для публичного выкладывания тут же начались аспекты "защита от дурака".
  • проект вламывается в очень базовый класс - кэши. без кэшей аксапта просто не запускается. поэтому кэши должны работать что бы там ни произошло со счетчиками. проинсталированы-не проинсталированы, есть права-нет прав, на сервере-на клиенте. причем должно работать без личного участия администратора. когда делаешь проект для себя, то можно сделать на коленке и в случае чего поправить на лету. когда делаешь проект для публичного выкладывания, то не хотелось бы подставлять людей и рушить их систему
  • раз счетчики могут безмолвно и без последствий для системы отламываться, то хотелось бы дать информацию для людей которые используют этот проект. причем удобным для них способом.
  • ну и конечно счетчики используются и на сервере, и на клиентах. на клиентских машинах пользователи могут быть вообще не в курсе происходящего.
  • проект для акс2012 сделан в черновом варианте. теперь я хочу сделать аналогичный в акс7 но только на эксеншенах (заодно хочу проверить как живется в условиях закрытого кода)
  • кроме того, пытаюсь нащупать какой-то баланс "сложности разработки". за основу взял проект https://github.com/DmitryNaumov/PerformanceCounters обратите внимание, как красиво и по делу там используются атрибуты для инсталляции счетчиков, как нормально вписана фабрика вместо конструкторов. как используются интерфейсы для рабочего функционала и для класса заглушки. Заодно проверил скорость разных вариантов реализации. в акс2012 вариант на интерфейсах работает медленнее всего, а вариант на иерархии - вдвое быстрее остальных вариантов. в акс7 ровно наоборот - вариант dummy-класса в иерархии работает вчетверо медленнее остальных вариантов, а вариант на интерфейсах так же быстр как и простой-класс-с-проверками-внутри.

сейчас в работе 6 вариант реализации этих счетчиков. пока я все еще думаю, что в аксапте конструкторы лучше (из-за единого для всех классов namespace). Но аксаптовский класс уже очень хочется раздербанить на SysPerformaceCounter, SysLog, SysPerformaceCounterInstaller. Но это путь к тому, о чем говорил MaxBelugin в ветке про сложность. Но нужны неймспейсы или вложенные классы, чтобы можно было создавать friend-классы, не опасаясь пересечений с другими доработками.

в общем, как обычно, когда делаешь публичные проекты или публично отвечаешь на вопросы, начинаешь узнавать про систему больше, чем содержится в проекте или в ответе.

думаю, что у меня будет еще пара-тройка подходов к снаряду и новых вариантов реализации. )
проектом приходится заниматься в свободное от работы время, поэтому не быстро.
в принципе могу выложить на github, если кому-то интересна промежуточная версия.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: gl00mie (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Поговорим о SysGlobalObjectCacheItemWrapper? Кто использовал? Как правильно? Что можно сделать? mazzy DAX: Программирование 1 16.06.2017 13:07
Как правильно хранить статичный набор начальных данных в классах? mazzy DAX: Программирование 58 14.04.2011 12:10
Запуск пакетной обработки (batch) в последний день месяца petr DAX: Функционал 10 03.12.2010 00:11
Снять задание сервера пакетной обработки fomenka DAX: Программирование 9 24.04.2007 14:33
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:26.