21.12.2007, 14:41 | #1 |
Участник
|
Зачем нужны client и static одновременно?
Зачем нужны client и server одновременно?
client понятно server понятно server client не понятно X++: server client static method() { .... } |
|
21.12.2007, 14:58 | #2 |
Участник
|
указание одновременно модификаторов client и server равносильно тому, чтобы не указать ни одного модификатора.
Но это считается BestPractice - когда ты видишь такой метод, это значит, что программист, который его написал, подумал, и написал код таким образом, чтобы он оптимально выполнялся как на стороне сервера, так и на стороне клиента. То есть таким образом разработчик дает тебе понять, что метод может вызываться и там и там. |
|
|
За это сообщение автора поблагодарили: belugin (5), Beast-L (1). |
21.12.2007, 15:23 | #3 |
Участник
|
Понял спасибо
|
|
21.12.2007, 18:27 | #4 |
Участник
|
Цитата:
Если не указать client server то метод будет работать всегда на той стороне, на которой живет объект. Если же указать client server то код будет выполняться там же где и вызывающий его код. |
|
|
За это сообщение автора поблагодарили: kashperuk (5). |
23.12.2007, 23:35 | #5 |
Участник
|
Logger - спасибо за поправку. На самом деле, я тоже прав
Просто я говорил о табличных методах (по моим личным наблюдениям, именно там чаще всего встречается такая ситуация), а вы, видимо, говорили о методах на классах. Вот цитата из книги Inside Microsoft Dynamics AX, на которой основывался мой ответ: Цитата:
By default, table instance and static methods are executed as "called from" if neither the server nor the client modifier is specified. You can, however, specify both client and server as modifiers in the same method, but doing so does not influence where the method is executed; it signals that the developer of the method has evaluated the method and decided that it should be executed as "called from" and should not be client bound or server bound.
.... If neither the client nor the server modifier is specified in static class methods, the methods are executed on the tier specified by the RunOn property on the class. Specifying both client and server in these methods does, however, force the methods to be executed as "called from" and thereby disregard the property value on the class. Но если такой параметр указать для класса, который должен выполняться только на сервере либо только на клиенте, то поведение поменяется. |
|
|
За это сообщение автора поблагодарили: glibs (1). |