Aller au contenu

Exigences pour les cBots

Il existe deux exigences principales que vous devez respecter pour garantir que vos instances de cBot peuvent s'exécuter sans problème dans le cloud : les références au moment de la compilation et les dépendances multiplateformes.

Références au moment de la compilation

Il existe plusieurs façons de travailler avec les dépendances dans .NET. Par exemple, vous pouvez fournir des dépendances sous forme de fichiers .dll individuels sans les inclure directement dans l'exécutable de votre projet.

Cependant, seules les références au moment de la compilation sont entièrement compatibles avec l'exécution des cBots dans le cloud. Le cloud agit comme un environnement dédié qui exécute l'exécutable du cBot (le fichier .algo) sans gérer de fichiers .dll externes.

Les dépendances au moment de la compilation sont garanties dans tous les cas où vous référencez une bibliothèque dans les instructions using en haut de votre code. Cependant, si vous référencez un fichier .dll autonome dans le corps de votre code (par exemple, via la méthode Assembly.Load()), cette référence ne sera pas au moment de la compilation, et votre cBot n'effectuera aucune opération associée dans le cloud.

Dépendances multiplateformes

Le cloud exécute tous les cBots dans un environnement basé sur Linux. Cela signifie que si vous souhaitez utiliser des dépendances externes, ces dépendances doivent être multiplateformes.

À titre d'illustration, voici quelques dépendances qui ne fonctionneront pas dans le cloud car elles sont spécifiques à Windows.

  • WPF
  • WinForms
  • WinAPI

Lorsque vous ajoutez une nouvelle dépendance à votre projet, lisez sa documentation pour savoir si elle est prise en charge dans les environnements basés sur Linux.

Fonctionnalités de l'API

Il existe plusieurs fonctionnalités de l'API Algo qui fonctionnent différemment dans le cloud par rapport à l'exécution locale.

Fonctionnalité/méthode Comment elle fonctionne dans le cloud
MessageBox Renvoie toujours MessageBoxResult.None
Window Est toujours ignoré
Notifications.PlaySound() Est toujours ignoré
Account.UserNickName Appelle toujours le gestionnaire OnException()
Chart.TakeChartshot() Renvoie toujours null
WebSocketClient Ne fonctionne que si vous vous connectez à un service via le port 25345
HTTP Aucune requête HTTP n'est envoyée
LocalStorage et opérations sur les fichiers Ne fonctionne que si des chemins relatifs sont spécifiés ou si de nouveaux répertoires sont créés à partir de zéro

Stockage local et opérations sur les fichiers

Chaque fois qu'une instance cloud est arrêtée ou supprimée, toutes les ressources qui lui sont allouées dans le cloud sont automatiquement libérées. Si votre cBot crée des fichiers ou des répertoires puis accède aux données qu'ils contiennent, ces fichiers seront supprimés à chaque redémarrage ou suppression de l'instance.

Image title