Orleans exempelprojekt

Hej världen!

Exempelkod för Appen Hello World Orleans.

Ett Hello World! -program som visar hur du skapar och använder dina första korn.

Hello World demonstrerar

  • Så här kommer du igång med Orleans
  • Så här definierar och implementerar du ett kornigt gränssnitt
  • Så här hämtar du en referens till ett korn och anropar det

kundvagn

Skärmdump från exempelappen Kundvagn Orleans.

Ett kanoniskt kundvagnsexempelprogram som skapats med Microsoft Orleans. Den här appen visar följande funktioner:

  • Kundvagn: Ett enkelt kundvagnsprogram som använder Orleans för sitt plattformsoberoende ramverksstöd och skalbara distribuerade programfunktioner.

    • Inventeringshantering: Redigera och/eller skapa produktinventering.
    • Shop Inventory: Utforska köpbara produkter och lägg dem i din kundvagn.
    • Kundvagn: Visa en sammanfattning av alla objekt i kundvagnen och hantera dessa objekt genom att ta bort eller ändra antalet för varje objekt.

Kundvagn demonstrerar

  • Så här skapar du en distribuerad kundvagnsupplevelse
  • Så här hanterar du kornpersistence när det gäller uppdateringar av livelager
  • Så här exponerar du användarspecifika objekt som sträcker sig över flera klienter

Äventyr

Omslagsbild för Adventure Orleans-appen.

Före grafiska användargränssnitt, spelkonsoler och spel med massivt multiplayer fanns det VT100-terminaler och spel som Colossal Cave Adventure, Zork och Microsoft Adventure. Möjligen intetsägande med dagens standarder, då var det en magisk värld av monster, kvittrande fåglar och saker du kunde plocka upp. Det här exemplet hämtar inspiration från dessa spel.

Adventure demonstrerar

  • Så här strukturerar du ett program (i det här fallet ett spel) med hjälp av korn
  • Så här ansluter du en extern klient till ett Orleans kluster (ClientBuilder)

Chirper

Exempelkod för Chirper Orleans-appen.

Ett pub-/undersystem för sociala nätverk där användare skickar korta textmeddelanden till varandra. Utgivare skickar ut korta "Chirp" -meddelanden (ska inte förväxlas med "Tweets" av olika juridiska skäl) till andra användare som följer dem.

Chirper demonstrerar

  • Så här skapar du ett förenklat program för sociala medier/sociala nätverk med hjälp av Orleans
  • Så här lagrar du tillstånd inom ett korn med hjälp av kornpersistence (IPersistentState<TState>)
  • Korn som implementerar flera gränssnitt
  • Självreentranta korn, som möjliggör att flera kornanrop kan köras samtidigt i en enkeltrådad och interleaverad stil
  • Använda en kornobservatör (IGrainObserver) för att ta emot push-meddelanden från korn

GPS Tracker

Exempelkod för GPS-appen Orleans.

En tjänst för spårning av GPS-utrustade IoT-enheter på en karta. Enhetsplatser uppdateras nästan i realtid med SignalR, vilket visar ett sätt att integrera Orleans med SignalR. Enhetsuppdateringarna kommer från en enhetsgateway som implementeras med en separat process som ansluter till huvudtjänsten och simulerar flera enheter som rör sig pseudorandomt i ett område i San Francisco.

GPS Tracker demonstrerar

  • Så här använder du Orleans för att skapa ett Sakernas Internet-program
  • Hur Orleans kan samhanteras och integreras med ASP.NET Core SignalR-
  • Så här sänder du realtidsuppdateringar från ett korn till en uppsättning klienter med hjälp av Orleans och SignalR

HanBaoBao

HanBaoBao – Orleans skärmbild av exempelprogrammet.

Ett English-Mandarin ordlistewebbprogram som demonstrerar distribution till Kubernetes, utblåsningsanrop och begränsning av begäranden.

HanBaoBao demonstrerar

  • Skapa ett realistiskt program med hjälp av Orleans
  • Distribuera ett Orleans-baserat program till Kubernetes
  • Integrera Orleans med ASP.NET Core och ett JavaScript-ramverk (Vue.js)
  • Så här implementerar du *leaky-bucket*-baserad begränsning av förfrågningar
  • Läsa in och fråga efter data från en databas
  • Hur man cachelagrar resultat på ett lat och tillfälligt sätt
  • Så här fördelar du förfrågningar till många instanser och samlar in resultaten.

Närvarotjänst

utdata från appen Presence Service Orleans.

En spelnärvarotjänst som liknar en av de Orleans-baserade tjänster som skapats för Halo. En närvarotjänst spårar spelare och spelsessioner nästan i realtid.

Närvarotjänsten demonstrerar

  • En förenklad version av en verklig användning av Orleans
  • Använda en kornobservatör (IGrainObserver) för att ta emot push-meddelanden från korn

Tic Tac Toe

logotyp från Tic Tac Toe Orleans exempelapp.

Ett webbaserat Tic-tac-toe-spel med ASP.NET MVC, JavaScript och Orleans.

Tic Tac Toe demonstrerar

  • Så här skapar du ett onlinespel med hjälp av Orleans
  • Så här skapar du ett grundläggande spellobbysystem
  • Så här får du åtkomst till Orleans korn från ett ASP.NET Core MVC-program

Röstning

Skärmdump från exempelappen Voting Orleans.

Ett webbprogram för att rösta på en uppsättning alternativ. Det här exemplet visar distribution till Kubernetes. Programmet använder generiska värden i .NET för att vara värd för ASP.NET Core och , samt , tillsammans i samma process.

Instrumentpanelen Orleans som körs som en del av exempelappen Röstning.

Röstning visar

chattrum

Exempel på resultat från det körande chattrumsexemplet Orleans app.

Ett terminalbaserat chattprogram som skapats med Orleans Streams.

Chattrum demonstrerar

  • Så här skapar du ett chattprogram med hjälp av Orleans
  • Så här använder du Orleans flöden

bankkonto

utdata från klientexemplet för bankkonton som körs Orleans app.

Simulerar bankkonton med hjälp av ACID-transaktioner för att överföra slumpmässiga belopp mellan en uppsättning konton.

Bankkonto demonstrerar

  • Så här använder du Orleans-transaktioner för att på ett säkert sätt utföra åtgärder med flera tillståndskänsliga korn med ACID-garantier och serialiserbar isolering.

Blazor Server och Blazor WebAssembly

Blazor Orleans skärmbild av exempelappen

Dessa två Blazor-exempel baseras på de Blazor-introduktionskurserna, anpassade för användning med Orleans. Exemplet Blazor WebAssembly använder Blazor WebAssembly-värdmodellen. Exemplet Blazor Server använder värdmodellen Blazor Server. De innehåller en interaktiv räknare, en TODO-lista och en vädertjänst.

Blazor-exempelapparna demonstrerar

  • Integrera ASP.NET Core Blazor Server med Orleans
  • Integrera ASP.NET Core Blazor WebAssembly (WASM) med Orleans

Aktier

Utdata från det körande lagerklientexemplet, app. Orleans

En applikation för aktiepriser som hämtar priser från en fjärrtjänst genom ett HTTP-anrop och cachelagrar priserna tillfälligt i en grain. En BackgroundService kontrollerar regelbundet efter uppdaterade aktiekurser från olika datakorn som motsvarar en uppsättning aktiesymboler.

Exempelappen Lager visar

  • Så här använder du Orleans inifrån en BackgroundService-.
  • Så här använder du timers inom ett korn.
  • Så här gör du externa tjänstanrop med hjälp av .NET:s HttpClient och cachelagrar resultaten inom en grain.

Transportlager-säkerhet

utdata från den körande TLS-exempelappen Orleans.

En Hello, World! applikation som konfigurerats för att använda ömsesidig Transport Layer Security för att skydda nätverkskommunikationen mellan alla servrar.

Transport Layer Security demonstrerar

  • Konfigurera ömsesidig TLS-autentisering (mTLS) för Orleans

Visual Basic Hello World

En Hello, World! program med Visual Basic.

Visual Basic Hello World demonstrerar

  • Så här utvecklar du Orleans-baserade program med Visual Basic

F# Hello World

En Hello, World! program med F#.

F# Hello World demonstrerar

  • Så här utvecklar du Orleans-baserade program med hjälp av F#

Streaming: Pub/Sub Streams över Azure Event Hubs

Ett program som använder Orleans Streams med Azure Event Hubs som provider och implicita prenumeranter.

Pub/Sub-strömmar visar

  • Så här använder du Orleans flöden
  • Så här använder du attributet [ImplicitStreamSubscription(namespace)] för att implicit prenumerera på ett korn till dataströmmen med motsvarande ID
  • Konfigurera Orleans Streams för användning med Azure Event Hubs

Direktuppspelning: Anpassad Dataadapter

Ett program som använder Orleans Streams med en utgivare som inte är Orleans som skickar till en ström som ett korn använder via en anpassad dataadapter, som meddelar Orleans hur dataströmmeddelanden tolkas.

Anpassad dataadapter demonstrerar

  • Så här använder du Orleans flöden
  • Så här använder du attributet [ImplicitStreamSubscription(namespace)] för att implicit prenumerera på ett korn till dataströmmen med motsvarande ID
  • Konfigurera Orleans Streams för användning med Azure Event Hubs
  • Använda strömmande meddelanden som publicerats av icke-Orleans-utgivare genom att använda en anpassad EventHubDataAdapter-implementation (en anpassad dataadapter)