Saltar a contenido

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.

Image title