Показать сообщение отдельно
Старый 30.06.2011, 20:44   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Где это жизненно можно применить?
Есть достаточно большое количество модификаций, которые сводятся к дописыванию чего-нибудь в конец метода. Или в начало. Например, есть validateField, в табличку добавили поле, и надо дописать в конце метода проверку и для этого поля.

Проблема в том, что может случиться обновление системы и разработчики MS допишут свой код в validateFIeld. В этом случае придется объединять код руками.

А можно добавленный код выделить в отдельный метод validateField_MY. И этот метод прицепить обработчиком события "после validateField". Тогда при обновлении просто изменится код validateFIeld, а validateField_MY останется неизменным на нашем слое как и факт того, что он является обработчиком. Это может сэкономить время и делает более явной отделение кастомизации от исходного кода.

Или вот, например, есть такая приблуда - InfologStackTrace. Когда я ее писал, я специально не стал помещать ее код полнотью в XPO, чтобы случайно не затерли какой-то другой код (там надо добавить строчку в начале Info.add). Нужно импортировать xpo а потом дописать info.add. Теперь в Ax2012 можно сделать так:
- добавить нужный код в свой обработчик события перед вызовом info.add
- переместить весь код утилиты включая обработчик события в свою модель
- выгрузить модель в файл.

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

А если кто-то напишет приблуду, которая, допустим, записывает добавляемые сообщения инфолога в файл, он может сделать по тому же сценарию и загрузить свою модель независимо. И эти две утилиты модно будет сразу накатить одновременно, не исправляя руками info.add - просто у этого метода будут два подписчика.

Кстати, документацию по Ax2012 уже выложили в MSDN - см про события в AOT

Последний раз редактировалось belugin; 30.06.2011 в 20:51.
За это сообщение автора поблагодарили: mazzy (2), MikeR (5), S.Kuskov (2).