|
![]() |
#1 |
Участник
|
Цитата:
![]() Классы бывают не только вызываемые из непосредственно из UI, не только с методами main но и всякие другие. Использование контроля прав доступа нужно далеко не везде. (Я кстати не видел нигде ключевой атрибут по mеnuitem - тут ты ломишься в открытую дверь - если класс именно вызывается - то есть потомок runbase, и по меню айтем можно его однозначно определить, то он связывается с ним непосредственно). Последний раз редактировалось belugin; 03.06.2017 в 22:18. |
|
![]() |
#2 |
Участник
|
Цитата:
Цитата:
Сообщение от Raven Melancholic
![]() Для начала, чтобы не тратить время, определимся что такое конструктор. На мой взгляд, конструктор это то, что создает класс. В Аксе это метод new. Принято создавать статический метод construct, но, несмотря на название это все-таки не конструктор в общем понимании, а метод фабрики.
Цитата:
Цитата:
насколько я помню, это было еще до того, как научились сохранять параметры диалога для пакетных заданий. сейчас скорее будет запущено что-то через главное меню или через меню в какой-то форуме. Цитата:
но пусть будут такими, что покрывают множество сценариев использования. пусть они будут универсальными. Цитата:
я говорю о добавлении функционала, который потом будет предоставлен пользователям. чтобы предоставить пользователям добавленный класс, нужен будет menuItem. Цитата:
Сообщение от belugin
![]() Классы бывают не только вызываемые из непосредственно из UI, не только с методами main но и всякие другие. Использование контроля прав доступа нужно далеко не везде. (Я кстати не видел нигде ключевой атрибут по mеnuitem - тут ты ломишься в открытую дверь - если класс именно вызывается - то есть потомок runbase, и по меню айтем можно его однозначно определить, то он связывается с ним непосредственно).
не нужен UI - просто создай menuItem и ничего с ним не делай. понадобиться - просто продолжай использовать menuItem. в отличие от атрибута. вы снова говорите как это работает. это работает. я говорю о трудоемкости и стоимости работ на разобраться, добавить функционал, дать пользователю, поддерживать в дальнейшем. технология на атрибутах требует двойных-тройных трудозатрат. я только об этом. и да: большинство преимуществ атрибутов можно проявить только для решения внутренних МСовских задач и только в окружении МС, где атрибуты уже повсеместно используются. Там таки да - шикардос и позднее связывание рулит. остальным только усложнит жизнь. Последний раз редактировалось mazzy; 04.06.2017 в 22:41. |
|
![]() |
#3 |
Участник
|
чтобы не быть голословным.
по существующей технологии - для того, чтобы помечать атрибутом, нужно создать класс атрибута и прописать как параметры будут преобразованы в ключ. всего сейчас 83 потомка от SysExtensionAttribute. 3 из них универсальные - enum, menuItem, dataset. остальные - как правило просто специализированные классы для enum'ов. (почему не универсальный FormEnumSymbolFactoryAttribute? а ХЗ. универсальный класс сейчас используется только в 8 местах) так вот, получается, чтобы работать по текущим рекомендациям с атрибутами, нужно: = создать сам класс и встроить его в иерархию = разобраться с классом атрибутов и встроить туда (или создать класс атрибутов) = разобраться с фабрикой и встроить туда = добавить menuItem, если нужно дать функционал пользователю, разобраться как menuItem должен запустить нужный класс плюс работа, которой никогда нет в МС, но частенько бывает на проекте - решить что делать с функционалом, который добавлен разными партенрами. раньше пересечения нужно было искать только в construct. теперь пересечения нужно искать по разнообразным семействам - классы, атрибуты, стратегии инстанцирования, menuItem. |
|
Теги |
sysextension framework, sysoperation framework, как правильно, полезное |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|