Ambiente di sviluppo
È possibile sviluppare applicazioni per Azure Sphere su Windows 11, Windows 10 Aggiornamento dell'anniversario (o versione successiva) o su un computer Linux che esegue Ubuntu 24.04 (versione preliminare), Ubuntu 22.04 LTS o Ubuntu 20.04 LTS. Se usi Windows 11, usa la versione 22.02 (o successiva) di Azure Sphere SDK.
- Per Windows, installa il Windows SDK. Puoi usare Visual Studio, Visual Studio Code o la riga di comando per creare, distribuire ed eseguire il debug di applicazioni in Windows.
- Per Linux, installa l'SDK di Linux. È possibile usare Visual Studio Code o la riga di comando per creare, distribuire ed eseguire il debug di applicazioni su Linux.
Azure Sphere SDK include i seguenti componenti principali:
- Sysroots, che contiene le librerie, i file di intestazione e gli strumenti usati per compilare e collegare un'applicazione destinata a un particolare set di API.
- Definizioni hardware, che descrivono le funzionalità hardware disponibili in vari dispositivi hardware e possono essere utilizzate per specificarle nei file app-manifest.json.
- CMakeFiles, che definiscono le estensioni di Azure Sphere per CMake.
- Azure Sphere Command-Line Interface (CLI).
Le esercitazioni consentono di creare e distribuire la prima applicazione. In GitHub viene inoltre fornito un repository di campioni che include applicazioni di esempio che dimostrano come programmare l'hardware Azure Sphere e usare le API.
Azure Sphere Application Runtime
Azure Sphere Application Runtime fornisce due set di librerie per lo sviluppo di applicazioni di alto livello: le API di base e le API applicabili. Le API di base si basano su librerie che non puntano esclusivamente ai dispositivi Azure Sphere, mentre le API applicabili sono destinate specificamente ai dispositivi Azure Sphere. Applicazioni di alto livello compilate con Azure Sphere SDK e collegate a queste interfacce. Queste API non possono essere usate in applicazioni in tempo reale.
I file di intestazione per le API di base sono installati nelle cartelle Sysroots\API set\usr\include della directory di installazione di Azure Sphere SDK. I file di intestazione per le API applicabili vengono installati nella cartella Sysroots\API set\usr\include\applibs della directory di installazione di Azure Sphere SDK.
Mancia
Le intestazioni standard POSIX C si trovano in due cartelle: Sysroots\API set\usr\include per le intestazioni API generali e Sysroots\API set\usr\include\sys per le intestazioni API dipendenti dal sistema di basso livello. È consigliabile usare le API generali.
Strumenti
Azure Sphere SDK include Azure CLI per la gestione dei dispositivi, lo sviluppo e la distribuzione di applicazioni e l'uso dei servizi cloud.
CMake, insieme all'utilità di compilazione lightweight Ninja, fornisce il coordinamento delle build per le applicazioni Azure Sphere. Se usi Visual Studio, CMake e Ninja vengono installati automaticamente. Se usi Visual Studio Code o Azure CLI, devi installarli manualmente in Windows o Linux.
Sia Visual Studio che Visual Studio Code dispongono di estensioni Azure Sphere che semplificano lo sviluppo di applicazioni Azure Sphere. Con queste estensioni, è possibile creare, eseguire facilmente il debug, testare e distribuire le applicazioni Azure Sphere direttamente dall'IDE. Entrambe le estensioni dispongono del supporto completo per gli strumenti CMake di Azure Sphere.
Contenitori
Azure Sphere fornisce un contenitore che confeziona l'SDK in un ambiente Linux autonomo. Usando un contenitore con un ambiente di compilazione predefinito, è possibile evitare la procedura di installazione (o disinstallazione e reinstallazione) dell'ambiente di compilazione DELL'SDK corretto. È possibile modificare l'ambiente di compilazione in base alle proprie esigenze e replicare l'ambiente in tutti i computer host contemporaneamente con risultati uniformi. Per informazioni dettagliate, vedere Usare i contenitori per creare app Azure Sphere . È anche possibile usare un contenitore come parte di uno scenario di integrazione continua in cui una pipeline di compilazione, ad esempio GitHub Actions o Pipeline di Azure, ricrea automaticamente l'applicazione ogni volta che viene apportata una modifica al codice sottostante. Per informazioni dettagliate, vedere Aggiungere un'integrazione continua alle build dei contenitori .
Che cos'è un contenitore?
I contenitori sono pacchetti portatili dotati di ambienti leggeri che vengono eseguiti sul kernel di un computer host. I contenitori sono leggeri perché usano layer condivisi. Questi livelli possono essere sezioni condivise di un sistema operativo o applicazioni condivise. I layer evitano il sovraccarico di una macchina virtuale, che contiene un intero sistema operativo e tutte le applicazioni associate. La condivisione consente ai contenitori di essere piccoli e di avviarsi rapidamente.
È possibile scaricare contenitori da un Registro di sistema contenitore, ad esempio il Registro artefatti Microsoft (MAR).
Quali contenitori portano ad Azure Sphere
Il contenitore per l'ambiente di compilazione di Microsoft Azure Sphere SDK fornisce un ambiente di sviluppo pre-creato. Il contenitore fornisce quanto segue:
- La versione di Ubuntu Linux per la versione corrente di Azure Sphere
- La versione corrente di Azure Sphere SDK per Linux
- Strumenti aggiuntivi necessari per l'SDK come CMake e Ninja
Azure Sphere usa contenitori Docker configurati con file di testo Dockerfile . È possibile creare file Docker che usano un'immagine contenitore di base per creare un contenitore personalizzato per la creazione di applicazioni Azure Sphere. L'esecuzione del contenitore personalizzato scarica l'immagine di base più recente se non si trova nel computer host, crea il nuovo contenitore personalizzato, se necessario, crea l'applicazione specificata e esce. È quindi possibile copiare l'output della build dell'applicazione in un computer host in cui è installato Azure Sphere SDK e trasferire l'applicazione in un dispositivo. Il contenitore di compilazione personalizzato non viene in genere usato in modo interattivo, ma può essere, ad esempio, per diagnosticare i problemi di compilazione.