Requisiti per i cBot
Ci sono due requisiti principali che devi soddisfare per garantire che le tue istanze di cBot possano funzionare senza problemi in cloud: riferimenti in fase di compilazione e dipendenze multipiattaforma.
Riferimenti in fase di compilazione
Esistono diversi modi per lavorare con le dipendenze in .NET. Ad esempio, puoi fornire le dipendenze come singoli file .dll senza includerle direttamente nell'eseguibile del progetto.
Tuttavia, solo i riferimenti in fase di compilazione sono completamente compatibili con l'esecuzione dei cBot in cloud. Il cloud funge da ambiente dedicato che esegue il file eseguibile del cBot (il file .algo) senza gestire alcun file .dll esterno.
Le dipendenze in fase di compilazione sono garantite in tutti i casi in cui si fa riferimento a una libreria nelle istruzioni using all'inizio del codice. Tuttavia, se si fa riferimento a un file .dll autonomo all'interno del corpo del codice (ad esempio, tramite il metodo Assembly.Load()), questo riferimento non sarà in fase di compilazione e il cBot non eseguirà alcuna operazione correlata in cloud.
Dipendenze multipiattaforma
Il cloud esegue tutti i cBot in un ambiente basato su Linux. Ciò significa che se si desidera utilizzare dipendenze esterne, queste dipendenze devono essere multipiattaforma.
A titolo di esempio, ecco alcune dipendenze che non funzioneranno in cloud in quanto specifiche per Windows.
- WPF
- WinForms
- WinAPI
Quando si aggiunge una nuova dipendenza al progetto, leggere la relativa documentazione per verificare se è supportata in ambienti basati su Linux.
Funzionalità API
Esistono diverse funzionalità dell'API Algo che funzionano in modo diverso in cloud rispetto all'esecuzione locale.
| Funzionalità/metodo | Come funziona in cloud |
|---|---|
MessageBox | Restituisce sempre MessageBoxResult.None |
Window | Viene sempre ignorato |
Notifications.PlaySound() | Viene sempre ignorato |
Account.UserNickName | Chiama sempre il gestore OnException() |
Chart.TakeChartshot() | Restituisce sempre null |
WebSocketClient | Funziona solo se ci si connette a un servizio tramite la porta 25345 |
HTTP | Non viene inviata alcuna richiesta HTTP |
LocalStorage e operazioni sui file | Funziona solo se vengono specificati percorsi relativi o se vengono create nuove directory da zero |
Archiviazione locale e operazioni sui file
Ogni volta che un'istanza cloud viene interrotta o eliminata, tutte le risorse ad essa allocate all'interno del cloud vengono automaticamente liberate. Se il cBot crea file o directory e quindi accede ai dati da essi, questi file verranno eliminati a ogni riavvio o eliminazione dell'istanza.
