03.07.2017, 14:00 | #121 |
Участник
|
Прикольно.
Только там не описали как обращаться к переменным класса. Вот так можно ? X++: class BaseClass1 { str memberVar; // axforum str method1(int arg) { memberVar+="; "+int2str(arg); // axforum } } [ExtensionOf(ClassStr(BaseClass1))] class BaseClass1_Extension { str method1(int arg) { // Part 1 info(memberVar); // axforum var s = next method1(arg + 4); info(memberVar); // axforum // Part 2 return s; } } Вернулись к корням ? Последний раз редактировалось Logger; 03.07.2017 в 14:03. |
|
03.07.2017, 14:29 | #122 |
Участник
|
думаю да
Цитата:
can also access other public and protected methods and variables of the class.
|
|
03.07.2017, 14:50 | #123 |
Участник
|
неужели таки сделают extension method как у нормальных людей.
http://kotlinlang.org/docs/reference/extensions.html |
|
|
За это сообщение автора поблагодарили: Logger (3). |
03.07.2017, 15:48 | #124 |
Banned
|
Цитата:
Сообщение от mazzy
неужели таки сделают extension method как у нормальных людей.
http://kotlinlang.org/docs/reference/extensions.html https://roadmap.dynamics.com/?i=296a...3a1#collapse13 непонятно наследование это или нет. К примеру если у базового класса есть абстрактные методы, то что? Но главное как подметили это обязательность или нет вызова базового метода. Потому как обертка вокруг и полная подмена - очень разные вещи. Вот скучная статья если кому интересно. http://wiki.c2.com/?CompositionInsteadOfInheritance |
|
|
За это сообщение автора поблагодарили: mazzy (2), Logger (3). |
04.07.2017, 21:33 | #125 |
Участник
|
Цитата:
Сообщение от ax_mct
У Котлин это без необходимости наследования, а вот по
https://roadmap.dynamics.com/?i=296a...3a1#collapse13 непонятно наследование это или нет. К примеру если у базового класса есть абстрактные методы, то что? Но главное как подметили это обязательность или нет вызова базового метода. Потому как обертка вокруг и полная подмена - очень разные вещи. Про next говорят, что его выкинуть нельзя. |
|
|
За это сообщение автора поблагодарили: ax_mct (3). |
05.07.2017, 15:05 | #126 |
Banned
|
Цитата:
В том же xppPrePostArgs через getThis() и parm() я точно так же могу иметь доступ к переменным класса, если конечно он нормально спроектирован. В чем прибыток то? |
|
05.07.2017, 17:26 | #127 |
Участник
|
Цитата:
Разница в доступе к protected methods / protected class fields |
|
05.07.2017, 17:46 | #128 |
Участник
|
Dave Froslie очень адекватный чувак, и нормально в техническом плане, так что это вы зря.
Он курирует партнерами с которыми мы ближе работаем, и extensibility requests по Finance, Project, GAB, etc. То есть с точки зрения именно application Йорис - энтузиаст, поэтому больше интересовался возможностями платформы, конечно же. Он бывший MVP - вот его блог http://daxmusings.codecrib.com/ Поэтому могло так показаться на конференции, что Дейв не шарил. Это не так |
|
05.07.2017, 20:06 | #129 |
Banned
|
Цитата:
Вроде отдельная тема появилась - пойду почитаю... |
|
05.07.2017, 20:27 | #130 |
Banned
|
Цитата:
Сообщение от kashperuk
Dave Froslie очень адекватный чувак, и нормально в техническом плане, так что это вы зря.
Он курирует партнерами с которыми мы ближе работаем, и extensibility requests по Finance, Project, GAB, etc. То есть с точки зрения именно application ... Поэтому могло так показаться на конференции, что Дейв не шарил. Это не так |
|
08.07.2017, 21:17 | #131 |
Banned
|
Тихо и с косами стоят...
А у меня вопрос. При overlaying конфликты кода и как результат логики - налицо, а при extension модели расширений конфликта кода нет и как результат конфликта логики не видно. При seemless updates со стороны MS в production клиента встаёт вопрос о совместимости существующих расширений и этих апдейтов. Это реальная проблема или я опять занимаюсь от скуки scaremongering? |
|
08.07.2017, 23:32 | #132 |
Участник
|
Цитата:
Сообщение от ax_mct
Тихо и с косами стоят...
А у меня вопрос. При overlaying конфликты кода и как результат логики - налицо, а при extension модели расширений конфликта кода нет и как результат конфликта логики не видно. При seemless updates со стороны MS в production клиента встаёт вопрос о совместимости существующих расширений и этих апдейтов. Это реальная проблема или я опять занимаюсь от скуки scaremongering? Последний раз редактировалось skuull; 08.07.2017 в 23:37. |
|
|
За это сообщение автора поблагодарили: ax_mct (5). |
09.07.2017, 01:51 | #133 |
Banned
|
Цитата:
Сообщение от skuull
Ну если и занимаетесь то точно не один. Вот начинание https://github.com/Adacta/source-dependency где человек хочет знать, что метод который он расширял поменялся и не плохо было бы его посмотреть. Присоеденяйтесь, внесите лепту делом, а не словом
Даже если предположить возможность контроля над обновлениями в случае on-premise то выявление возможных конфликтов в случае использования точек расширения (где визуально не видно конфликтов кода и как результат - логики) становится на порядок более тяжелой задачей чем при явном наложении одного кода на другой. Насчет лепты не готов. Мне кредит за дом платить надо, а не песочные замки строить вместе с играющими в песочнице Последний раз редактировалось ax_mct; 09.07.2017 в 01:55. |
|
09.07.2017, 11:02 | #134 |
Участник
|
Цитата:
Хотелось бы еще заметить, что титаник задраен не до конца, даты задраивания модели Currency я нигде не видел. |
|
09.07.2017, 12:54 | #135 |
Banned
|
Цитата:
Сообщение от skuull
Есть слухи, что рано или поздно, но скорее рано, platform обновления будут ставиться раз в месяц сами по себе, как на винду. По поводу application suite даже слухов нет. Т.е. будете сами их ставить на дев, сами этим или каким другим образом смотреть, что ваши чудо расширения не развалились и сами их потом деплоить. А в связи с тем, что МС очень сильно хочет, чтобы мы их ставили, нам бы какой-то инструмент в помощь.
Хотелось бы еще заметить, что титаник задраен не до конца, даты задраивания модели Currency я нигде не видел. Application stack and server architecture https://docs.microsoft.com/en-us/dyn...r-architecture New extensibility support in the July 2017 Update https://blogs.msdn.microsoft.com/mfp...y-2017-update/ Цитата:
Refactoring of the *TableType and *LineType classes, so insert/update/delete events on the backing tables can be used as extension points.
|
|
09.07.2017, 14:51 | #136 |
Banned
|
Нет. Банально идет речь о том, что на методы SalesTableType.update() и SalesLineType.update() повесили атрибут [Hookable] или отрефакторили там, чтобы можно было вклиниваться в исполнение кода.
|
|
|
За это сообщение автора поблагодарили: ax_mct (3). |
09.07.2017, 15:27 | #137 |
Banned
|
Цитата:
Но зачем? Затем чтобы можно было автоматически и без спроса менять этот "базовый" код в Production. То есть, код SalesLineType.update() может меняться автоматически и без спроса в Production. Это так или нет? В этом вопрос. |
|
09.07.2017, 15:41 | #138 |
Модератор
|
Нет. Не может
__________________
-ТСЯ или -ТЬСЯ ? |
|
09.07.2017, 17:21 | #139 |
Moderator
|
Цитата:
И разговоры об автоматическом обновлении чего либо просто демонстрируют как в MS на самом деле плохо понимают свой рынок... |
|
09.07.2017, 18:26 | #140 |
Участник
|
Цитата:
После рефакторинга super() будет вызываться в salesLine.update(), а весь код вокруг него который был в salesLineType вынесен в различные методы. Тем самым достигается несколько вещей: - Теперь можно будет подписаться на вызов onInserted, onUpdated, onUpdating, etc. на SalesLine - раньше это было невозможно, так как event тригеррится в super() - Теперь можно будет с помощью CoC или pre/post-method handlers добавлять требуемую партнерскую логику, которая должна выполняться во время обновления строки заказа. |
|
Теги |
#многоходовочка, #стокгольмскийсиндром, extensions, overlayering, все пропало, титаник задраен |
|
|