Requisitos para cBots
Hay dos requisitos principales que debe cumplir para garantizar que sus instancias de cBot puedan ejecutarse sin problemas en la Nube: referencias en tiempo de compilación y dependencias multiplataforma.
Referencias en tiempo de compilación
Existen múltiples formas de trabajar con dependencias en .NET. Por ejemplo, puede proporcionar dependencias como archivos .dll individuales sin incluirlos directamente en el ejecutable de su proyecto.
Sin embargo, solo las referencias en tiempo de compilación son totalmente compatibles con la ejecución de cBots en la Nube. La Nube actúa como un entorno dedicado que ejecuta el archivo ejecutable del cBot (el archivo .algo) sin gestionar ningún archivo .dll externo.
Las dependencias en tiempo de compilación se garantizan en todos los casos en los que se hace referencia a una biblioteca en las declaraciones using en la parte superior del código. Sin embargo, si hace referencia a un archivo .dll independiente dentro del cuerpo de su código (por ejemplo, a través del método Assembly.Load()), esta referencia no será en tiempo de compilación y su cBot no realizará ninguna operación relacionada en la Nube.
Dependencias multiplataforma
La Nube ejecuta todos los cBots en un entorno basado en Linux. Esto significa que si desea utilizar dependencias externas, estas dependencias deben ser multiplataforma.
A modo de ilustración, aquí hay algunas dependencias que no funcionarán en la Nube, ya que son específicas de Windows.
- WPF
- WinForms
- WinAPI
Al añadir una nueva dependencia a su proyecto, lea su documentación para saber si es compatible con entornos basados en Linux.
Características de la API
Hay varias características de la API de Algo que funcionan de manera diferente en la Nube en comparación con la ejecución local.
| Característica/método | Cómo funciona en la Nube |
|---|---|
MessageBox | Siempre devuelve MessageBoxResult.None |
Window | Siempre se ignora |
Notifications.PlaySound() | Siempre se ignora |
Account.UserNickName | Siempre llama al controlador OnException() |
Chart.TakeChartshot() | Siempre devuelve null |
WebSocketClient | Solo funciona si se conecta a un servicio a través del puerto 25345 |
HTTP | No se envían solicitudes HTTP |
LocalStorage y operaciones con archivos | Solo funciona si se especifican rutas relativas o se crean nuevos directorios desde cero |
Almacenamiento local y operaciones con archivos
Cada vez que se detiene o elimina una instancia en la Nube, todos los recursos asignados a ella dentro de la Nube se liberan automáticamente. Si su cBot crea archivos o directorios y luego accede a datos de ellos, estos archivos se eliminarán en cada reinicio o eliminación de instancia.
