Orleans progetti di esempio

Salve, mondo!

codice di esempio per l'app Hello World Orleans.

Un'applicazione Hello, World! che illustra come creare e usare i primi grani.

Hello World illustra

  • Come iniziare a usare Orleans
  • Come definire e implementare un'interfaccia granulare
  • Come ottenere un riferimento a una grana e richiamarla

carrello acquisti

screenshot dall'app di esempio Carrello Orleans.

Un'applicazione di esempio canonica di carrello della spesa creata con Microsoft Orleans. Questa app mostra le funzionalità seguenti:

  • Carrello acquisti: una semplice applicazione carrello acquisti che usa Orleans per il supporto multipiattaforma e le funzionalità di applicazione distribuite scalabili.

    • gestione inventario: modifica e/o creazione dell'inventario dei prodotti.
    • Negozio inventario: esplora i prodotti acquistabili e li aggiungi al carrello.
    • Carrello: visualizza un riepilogo di tutti gli articoli nel carrello e gestisci questi articoli rimuovendo o modificando la quantità di ogni articolo.

Il carrello acquisti dimostra

  • Come creare un'esperienza di carrello acquisti distribuita
  • Come gestire la persistenza granulare in relazione agli aggiornamenti dell'inventario in tempo reale
  • Come esporre elementi specifici dell'utente che si estendono su più client

Avventura

copertina per l'app Adventure Orleans.

Prima delle interfacce utente grafiche, delle console di gioco e dei giochi multiplayer massicce, c'erano terminali e giochi VT100 come Colossal Cave Adventure, Zork e Microsoft Adventure. Forse banale secondo gli standard di oggi, allora era un mondo magico di mostri, uccelli cinguettanti e cose che si potevano raccogliere. Questo esempio trae ispirazione da questi giochi.

Adventure mostra

  • Come strutturare un'applicazione (in questo caso, un gioco) usando grani
  • Come connettere un client esterno a un cluster Orleans (ClientBuilder)

Chirper

Codice di esempio per l'app Chirper Orleans.

Un sistema pub/sub di social network in cui gli utenti inviano messaggi di testo brevi l'uno all'altro. Gli editori inviano brevi messaggi "Chirp" (da non confondere con "Tweet" per vari motivi legali) a qualsiasi altro utente che li segue.

Chirper dimostra

  • Come creare un'applicazione di social media/social network semplificata usando Orleans
  • Come memorizzare lo stato all'interno di un grain utilizzando la persistenza dei grain (IPersistentState<TState>)
  • Grani che implementano più interfacce di granularità
  • Grani rientranti, consentendo l'esecuzione simultanea di più chiamate ai grani in modo interleaved su un singolo thread.
  • Uso di un osservatore granulare (IGrainObserver) per ricevere notifiche push da grani

Localizzatore GPS

codice di esempio per l'app GPS Orleans.

Un servizio per tenere traccia dei dispositivi IoT dotati di GPS su una mappa. Le posizioni dei dispositivi vengono aggiornate quasi in tempo reale usando SignalR, dimostrando un approccio all'integrazione Orleans con SignalR. Gli aggiornamenti del dispositivo provengono da un gateway del dispositivo, implementato usando un processo separato che si connette al servizio principale e simula diversi dispositivi che si spostano pseudocasualmente in un'area di San Francisco.

Gps Tracker dimostra

  • Come usare Orleans per creare un'applicazione internet delle cose di
  • Come Orleans può essere ospitato insieme e integrato con ASP.NET Core SignalR
  • Come trasmettere gli aggiornamenti in tempo reale da un grain a un insieme di client utilizzando Orleans e SignalR

HanBaoBao

HanBaoBao - Orleans acquisizione dello schermo dell'applicazione di esempio.

Un'applicazione Web del dizionario English-Mandarin che illustra la distribuzione in Kubernetes, le chiamate con granularità fan-out e la limitazione delle richieste.

HanBaoBao dimostra

  • Come creare un'applicazione realistica usando Orleans
  • Come distribuire un'applicazione basata su Orleansin Kubernetes
  • Come integrare Orleans con ASP.NET Core e un'applicazione a pagina singola framework JavaScript (Vue.js)
  • Come implementare la limitazione delle richieste con l'algoritmo leaky bucket
  • Come caricare e interrogare dati da un database
  • Come memorizzare nella cache i risultati in modo pigro e temporaneo
  • Come distribuire le richieste a molte unità e raccogliere i risultati

Servizio di Presenza

output dell'app per il servizio di presenza Orleans.

Un servizio di presenza per giochi, simile a uno dei servizi basati su Orleanscreati per Halo. Un servizio di presenza tiene traccia di giocatori e sessioni di gioco quasi in tempo reale.

Il servizio di presenza dimostra

  • Una versione semplificata di un uso reale di Orleans
  • Uso di un osservatore granulare (IGrainObserver) per ricevere notifiche push da grani

Tic Tac Toe

Logo dall'app di esempio Tic Tac Toe Orleans.

Un gioco Tic-tac-toe basato sul Web che usa ASP.NET MVC, JavaScript e Orleans.

Tic Tac Toe dimostra

  • Come creare un gioco online usando Orleans
  • Come creare un sistema di lobby di gioco di base
  • Come accedere ai grani di Orleans da un'applicazione MVC core ASP.NET

voto

cattura dello schermo dell'app di esempio Voting Orleans.

Un'applicazione Web per votare su un set di scelte. Questo esempio illustra la distribuzione in Kubernetes. L'applicazione usa l'host generico .NET per ospitare ASP.NET Core e Orleans, nonché il Orleans dashboard, insieme nello stesso processo.

Il dashboard Orleans che funziona come parte dell'app di esempio Voting.

Il voto dimostra

  • Come distribuire un'applicazione basata su Orleansin Kubernetes
  • Come configurare la dashboard di Orleans

sala chat

Output di esempio dall'app Chat Room in esecuzione Orleans.

Un'applicazione di chat basata su terminale creata usando Orleans Streams.

Chat Room dimostra le sue funzionalità

  • Come creare un'applicazione di chat usando Orleans
  • Come usare i flussi Orleans

Conto Bancario

Output dell'app di esempio di client di conto bancario in esecuzione Orleans.

Simula conti bancari, utilizzando transazioni ACID per trasferire importi casuali tra un set di conti.

Il conto bancario dimostra

  • Come usare Orleans Transazioni per eseguire operazioni che coinvolgono più grani con stato persistente con garanzie ACID e isolamento serializzabile.

Blazor Server e Blazor WebAssembly

acquisizione dello schermo dell'app di esempio Blazor Orleans

Questi due esempi di Blazor si basano sulle esercitazioni introduttive Blazor , adattate per l'uso con Orleans. L'esempio Blazor WebAssembly usa il modello di hosting Blazor WebAssembly. L'esempio Blazor Server usa il modello di hosting Blazor Server. Includono un contatore interattivo, un elenco TODO e un servizio Meteo.

Le app di esempio Blazor dimostrano

  • Come integrare ASP.NET Core Blazor Server con Orleans
  • Come integrare ASP.NET Core Blazor WebAssembly (WASM) con Orleans

Azioni

Output dell'app di esempio client Stock in esecuzione Orleans.

Un'applicazione di quotazioni azionarie che recupera i prezzi da un servizio remoto usando una chiamata HTTP e memorizza temporaneamente i prezzi nella cache in un'unità di memorizzazione. Un BackgroundService esegue periodicamente un controllo dei prezzi aggiornati delle azioni da vari StockGrain grain corrispondenti a un set di simboli azionari.

L'applicazione di esempio per titoli dimostra

  • Come usare Orleans da un BackgroundService.
  • Come usare i timer all'interno di un grain.
  • Come effettuare chiamate a servizi esterni utilizzando il HttpClient di .NET e memorizzare nella cache i risultati all'interno di un grain.

Sicurezza del Livello di Trasporto

Output dell'app di esempio TLS Orleans in esecuzione.

Un Hello, World!'applicazione configurata per l'uso di Transport Layer Security per proteggere la comunicazione di rete tra ogni server.

Sicurezza del livello di trasporto dimostra

  • Come configurare l'autenticazione mutual-TLS (mTLS) per Orleans

Visual Basic Hello World

Un'applicazione Ciao, Mondo! con Visual Basic.

Visual Basic Hello World dimostra

  • Come sviluppare applicazioni basate su Orleanscon Visual Basic

F# Hello World

Un Hello, World! è un'applicazione con F#.

F# "Hello World" dimostra come funziona

  • Come sviluppare applicazioni basate su Orleanscon F#

streaming : flussi pub/sub su Hub eventi di Azure

Un'applicazione che usa Orleans Streams con Hub Eventi di Azure come provider e come sottoscrittori impliciti.

I flussi pub/sub dimostrano

  • Come usare i flussi Orleans
  • Come usare l'attributo [ImplicitStreamSubscription(namespace)] per sottoscrivere in modo implicito una granularità al flusso con l'ID corrispondente
  • Come configurare i flussi di Orleans per l'uso con Azure Event Hubs

Streaming: adattatore dati personalizzato

Un'applicazione che usa Orleans Streams con un non-Orleans publisher che esegue il push in un flusso che un granello consuma tramite un adattatore dati personalizzato, indicando Orleans come interpretare i messaggi del flusso.

Custom Data Adapter (Adattatore dati personalizzato) illustra

  • Come usare i flussi Orleans
  • Come usare l'attributo [ImplicitStreamSubscription(namespace)] per sottoscrivere in modo implicito una granularità al flusso con l'ID corrispondente
  • Come configurare i flussi di Orleans per l'uso con Azure Event Hubs
  • Come utilizzare i messaggi di flusso pubblicati da editori nonOrleans fornendo un'implementazione personalizzata di EventHubDataAdapter (un adattatore dati personalizzato)