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.
