Remote-Aufrufe (Delegierung von Methodenaufrufen über das Netzwerk) belasten zum einen die Netzwerkschicht und verursachen ggf. Rechenleistung auf Serverseite. Methoden, die keine Änderung des Objektzustands (Änderung der Eigenschaftswerte einer Instanz) zur Folge haben müssen daher nicht zwangsläufig serverseitig ausgeführt werden. Hier kommen sogenannte Client-seitige Methoden zum Einsatz
Verwenden Sie die Attributklasse ACMethodClient immer dann wenn:
- alle Daten (Objektzustand) in der Proxy-Komponente vorliegen die für den Methodenalgorithmus benötigt werden,
- wenn die Methode oft aufgerufen wird und nur clientseitige Relevanz hat (z.B. für die GUI: Berechnung einer Signalfarbe, Umrechnung von Einheiten...)
- Datenbankoperationen clientseitig gemacht werden können bzw. sollen.
Clientseitige Methoden mit der Attributklasse ACMethodClient können nur statisch sein. Ähnlich dem Konzept der .NET-Erweiterungsmethoden, muss dem Algorithmus der statischen Methode der "this-Pointer" bekannt sein. Deswegen muss die Signatur der Methode immer so aufgebaut sein, dass der erste Parameter immer eine IACComponent acComponent ist:
[ACMethodClient ("ExGroup", "en{'Example clientside'}de{'Beispiel clientseitig'}", 202, false)]
public static Boolean MyClientsideMethod(IACComponent acComponent, string stringParam)
{... return false; }
Beim Aufruf von clientseitigen Methoden per ACUrlCommand wird der erste Parameter (this-Pointer) automatisch vom iPlus-Framework gesetzt und darf daher nicht explizit übergeben werden!
Parameter müssen bei clientseitigen Methoden nicht serialisierbar sein.
Die IsEnabled-Methode muss dem zufolge auch statisch sein und benötigt den Parameter IACComponent acComponent:
public static bool IsEnabledMyClientsideMethod(IACComponent acComponent)
{... return true; }