cBotの要件
cBotインスタンスがクラウドでスムーズに実行されるようにするには、コンパイル時の参照とクロスプラットフォームの依存関係という2つの主要な要件を満たす必要があります。
コンパイル時の参照
.NETでは依存関係を扱う方法が複数あります。 例えば、プロジェクトの実行ファイルに直接含めずに、個別の.dllファイルとして依存関係を提供することができます。
しかし、コンパイル時の参照のみがクラウドでのcBotの実行と完全に互換性があります。 クラウドは、外部の.dllファイルを管理せずにcBotの実行ファイル(.algoファイル)を実行する専用環境として機能します。
コンパイル時の依存関係は、コードの先頭でusing文を使用してライブラリを参照するすべての場合で保証されます。 ただし、コードの本文内で独立した.dllファイルを参照する場合(例えば、Assembly.Load()メソッドを介して)、この参照はコンパイル時ではなく、cBotはクラウドで関連する操作を実行しません。
クロスプラットフォームの依存関係
クラウドはすべてのcBotをLinuxベースの環境で実行します。 つまり、外部の依存関係を使用したい場合、これらの依存関係はクロスプラットフォームである必要があります。
例として、Windows固有のため、クラウドでは動作しない依存関係をいくつか紹介します。
- WPF
- WinForms
- WinAPI
プロジェクトに新しい依存関係を追加する際は、そのドキュメントを読んでLinuxベースの環境でサポートされているかどうかを確認してください。
API機能
ローカル実行と比較して、クラウドで異なる動作をするAlgo API機能がいくつかあります。
| 機能/メソッド | クラウドでの動作 |
|---|---|
MessageBox | 常にMessageBoxResult.Noneを返す |
Window | 常に無視される |
Notifications.PlaySound() | 常に無視される |
Account.UserNickName | 常にOnException()ハンドラーを呼び出す |
Chart.TakeChartshot() | 常にnullを返す |
WebSocketClient | ポート25345を介してサービスに接続する場合のみ機能する |
HTTP | HTTPリクエストは送信されない |
LocalStorageとファイル操作 | 相対パスが指定されているか、新しいディレクトリが最初から作成される場合のみ機能する |
ローカルストレージとファイル操作
クラウドインスタンスが停止または削除されるたびに、クラウド内で割り当てられたすべてのリソースは自動的に解放されます。 cBotがファイルやディレクトリを作成し、そこからデータにアクセスする場合、これらのファイルはインスタンスの再起動または削除のたびに削除されます。
