Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Programmazione/BlazorWebAssembly"
Differenze tra le versioni 1 e 15 (in 14 versioni)
Versione 1 del 01/01/2023 06.41.40
Dimensione: 3072
Autore: rafbor
Commento:
Versione 15 del 01/01/2023 14.52.23
Dimensione: 6119
Autore: rafbor
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 6: Linea 6:
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=511838"; rilasci="20.04")>> <<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=651564"; rilasci="20.04")>>
Linea 10: Linea 10:
'''Blazor !WebAssembly''' è un framework SPA (Single Page Application) open source sviluppato da Microsoft per la creazione di applicazioni web UI lato client, basate su [[https://docs.microsoft.com/it-it/dotnet/core/introduction|.NET]] e sul linguaggio di programmazione [[https://wiki.ubuntu-it.org/Programmazione/CSharp|C#]] anziché su !JavaScript. '''Blazor !WebAssembly''' è un framework '''SPA''' (Single Page Application) open source sviluppato da [[https://www.microsoft.com/|Microsoft]] per la creazione di applicazioni web UI lato client, basate su [[https://docs.microsoft.com/it-it/dotnet/core/introduction|.NET]] e sul linguaggio di programmazione [[https://wiki.ubuntu-it.org/Programmazione/CSharp|C#]] anziché su '''!JavaScript'''.
Linea 21: Linea 21:
 * Può essere distribuito su un server di pagine statiche (ad esempio, pagine Github o Surge).
 * Richiede una conoscenza minima o nulla di !JavaScript per costruire un sito web quindi è ideale per chi sviluppa applicazioni desktop in C# e vuole dedicarsi allo sviluppo web.
 * Conversione PWA integrata.
 * Compatibile con le librerie !JavaScript esistenti.
 * Può essere distribuito su un server di pagine statiche (ad esempio [[https://pages.github.com/|Github Pages]] o [[https://surge.sh/|Surge]]).
 * Richiede una conoscenza minima o nulla di '''!JavaScript''' per costruire un sito web quindi è ideale per chi sviluppa applicazioni desktop in '''C#''' e vuole dedicarsi allo sviluppo web.
 * Conversione '''PWA''' integrata.
 * Compatibile con le librerie '''!JavaScript''' esistenti.
Linea 29: Linea 29:
 * Il download di un'applicazione di grandi dimensioni in un browser richiede un certo tempo perché il runtime .NET e gli assembly vengono scaricati e memorizzati nella cache del browser, il che può influire sull'esperienza dell'utente.  * Il download di un'applicazione di grandi dimensioni in un browser richiede un certo tempo perché il runtime '''.NET''' e gli assembly vengono scaricati e memorizzati nella cache del browser, il che può influire sull'esperienza dell'utente.
Linea 37: Linea 37:
 * È richiesta la conoscenza del linguaggio di programmazione '''C#'''.
 * '''.NET [[https://it.wikipedia.org/wiki/Software_development_kit|SDK]]''' deve essere installato. Consultare la [[https://wiki.ubuntu-it.org/Programmazione/CSharp|guida sul C#]] per installare l'SDK.
 * per sviluppare in C# in '''!VisualStudioCode''', deve essere installata l'estensione '''[[https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp|C#]]''' (normalmente l'editor propone di installarla quando si apre un file C#); per installare le estensioni di '''!VisualStudioCode''' nel '''VS Code Extension Marketplace''' consultare [[https://code.visualstudio.com/docs/editor/extension-gallery|questa guida]]..
 * È richiesta la conoscenza di base:
  0. del linguaggio di programmazione '''C#'''
  0. dei concetti di web app.
 * '''.NET [[https://it.wikipedia.org/wiki/Software_development_kit|SDK]]''' deve essere installato. Consultare [[https://wiki.ubuntu-it.org/Programmazione/CSharp|questa guida]] per installare l'SDK.
 * per sviluppare in '''C#''' in '''!VisualStudioCode''', deve essere installata l'estensione '''[[https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp|C#]]''' (normalmente l'editor propone di installarla quando si apre un file '''C#'''); per installare le estensioni di '''!VisualStudioCode''' nel '''VS Code Extension Marketplace''' consultare [[https://code.visualstudio.com/docs/editor/extension-gallery|questa guida]]..
Linea 43: Linea 45:
 0. Nel terminale di '''!VisualStudioCode''' eseguire il seguente comando per creare il progetto che chiameremo `TestBlazorApp`:{{{
dotnet new blazorwasm -o TestBlazorApp
 0. Selezionare dal menù principale '''''File → Apri cartella'''''.
 0. Nella finestra di dialogo '''Apri cartella''' creare una cartella `TestBlazorApp` e selezionarla.
 0. Fare quindi clic su '''Aprire'''. Per impostazione predefinita il nome della cartella diventerà il nome e il ''namespace'' del progetto.
 0. Aprire il terminale integrato da '''!VisualStudioCode''' selezionando '''''Visualizza → Terminale''''' dal menu principale e eseguire il seguente comando: {{{
dotnet new blazorwasm
Linea 46: Linea 51:
 Verranno creati tutti i file del progetto. Convalidare tutte le richieste di '''!VisualStudioCode''' per installare le estensioni mancanti.
 0. Per avviare l'applicazione, eseguire il seguente comando:{{{
dotnet run
}}}
 Nel terminale vengono visualizzate le seguenti righe: {{{
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: https://localhost:7166
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5214
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
}}}
 0. Fare '''''Ctrl + Clic''''' sul link [[http://localhost:5214]]. La pagina web, che contiene il testo `Hello World!` viene aperta nel browser.
 
 <<BR>>{{{#!wiki important
Se si fa clic sul collegamento '''https''', il browser vi avvertirà che il sito non è sicuro, ma è possibile continuare senza rischi. La pagina sarà considerata non sicura.
}}}
 <<BR>>{{{#!wiki tip
 Invece del comando `dotnet run` si può usare `dotnet watch` che, tra le altre cose, lancerà direttamente il link https.
}}}
 Nella barra laterale sinistra si possono consultare altre due pagine: `Counter` et `Fetch data`. Alcune spiegazioni sulla pagina `Counter` in questo [[#CounterCode|paragrafo]]<<BR>>
 0. Fare '''''Ctrl + C''''' per finire.
Linea 47: Linea 74:
<<Anchor(CounterCode)>>
= Analisi della pagina Counter =
Selezionare il pulsante "'''Click me'''" per incrementare il conteggio senza aggiornare la pagina.<<BR>>
L'implementazione del componente `Counter` si trova in `Pages/Counter.razor`:
{{{#!cplusplus
@page "/counter"

<PageTitle>Counter</PageTitle>

<h1>Counter</h1>

<p role="status">Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
    private int currentCount = 0;

    private void IncrementCount()
    {
        currentCount++;
    }
}
}}}
Il codice mischia '''HTML''' e '''C#'''. Tutto il codice '''C#''' si trova nella direttiva `@code`. Si accede alla variabile `currentCount` nella pagina usando `@currentCount`.

Una richiesta di `/counter` nel browser, come specificato dalla direttiva `@page` in alto, provoca il rendering del contenuto del componente Counter.

Ogni volta che si seleziona il pulsante "'''Click me'''":
 * L'evento `onclick` viene attivato.
 * Viene richiamato il metodo `IncrementCount`.
 * `currentCount` viene incrementato.
 * Il componente viene reso per mostrare il conteggio aggiornato.
Linea 50: Linea 110:
 * [[https://learn.microsoft.com/fr-fr/dotnet/architecture/blazor-for-web-forms-developers/|Presentazione di Blazor]]
 * [[https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor|Sito ufficiale]]
 * [[https://github.com/AdrienTorris/awesome-blazor|Risorse per blazor]]
 * [[https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor|Sito ufficiale]] (in inglese)
 * [[https://raw.githubusercontent.com/dotnet-architecture/eBooks/main/current/blazor-for-web-forms-developers/Blazor-for-ASP-NET-Web-Forms-Developers.pdf|Manuale]]
 * [[https://github.com/AdrienTorris/awesome-blazor|Awesome Blazor]] (una raccolta di fantastiche risorse Blazor)
Linea 54: Linea 114:
## da questo punto in poi non modificare!


Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento.

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Blazor WebAssembly è un framework SPA (Single Page Application) open source sviluppato da Microsoft per la creazione di applicazioni web UI lato client, basate su .NET e sul linguaggio di programmazione C# anziché su JavaScript.

Per creare applicazioni lato server esistono Blazor Server e Blazor Hybrid ma queste tecnologie non vengono trattate in questa guida.

Vantaggi

  • Può essere eseguito direttamente nel browser.
  • Non sono richiesti plug-in per il browser.
  • Funziona in tutti i moderni browser web, compresi quelli mobili.
  • Può essere distribuito su un server di pagine statiche (ad esempio Github Pages o Surge).

  • Richiede una conoscenza minima o nulla di JavaScript per costruire un sito web quindi è ideale per chi sviluppa applicazioni desktop in C# e vuole dedicarsi allo sviluppo web.

  • Conversione PWA integrata.

  • Compatibile con le librerie JavaScript esistenti.

Svantaggi

  • Il download di un'applicazione di grandi dimensioni in un browser richiede un certo tempo perché il runtime .NET e gli assembly vengono scaricati e memorizzati nella cache del browser, il che può influire sull'esperienza dell'utente.

Creazione di un'applicazione Blazor WebAssembly

Questo progetto sarà realizzato con VisualStudioCode.

Prerequisiti:

  • È richiesta la conoscenza di base:
    1. del linguaggio di programmazione C#

    2. dei concetti di web app.
  • .NET SDK deve essere installato. Consultare questa guida per installare l'SDK.

  • per sviluppare in C# in VisualStudioCode, deve essere installata l'estensione C# (normalmente l'editor propone di installarla quando si apre un file C#); per installare le estensioni di VisualStudioCode nel VS Code Extension Marketplace consultare questa guida..

Seguire la procedura descritta di seguito:

  1. Selezionare dal menù principale File → Apri cartella.

  2. Nella finestra di dialogo Apri cartella creare una cartella TestBlazorApp e selezionarla.

  3. Fare quindi clic su Aprire. Per impostazione predefinita il nome della cartella diventerà il nome e il namespace del progetto.

  4. Aprire il terminale integrato da VisualStudioCode selezionando Visualizza → Terminale dal menu principale e eseguire il seguente comando:

    dotnet new blazorwasm

    Verranno creati tutti i file del progetto. Convalidare tutte le richieste di VisualStudioCode per installare le estensioni mancanti.

  5. Per avviare l'applicazione, eseguire il seguente comando:

    dotnet run

    Nel terminale vengono visualizzate le seguenti righe:

    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: https://localhost:7166
    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: http://localhost:5214
    info: Microsoft.Hosting.Lifetime[0]
          Application started. Press Ctrl+C to shut down.
  6. Fare Ctrl + Clic sul link http://localhost:5214. La pagina web, che contiene il testo Hello World! viene aperta nel browser.


    Se si fa clic sul collegamento https, il browser vi avvertirà che il sito non è sicuro, ma è possibile continuare senza rischi. La pagina sarà considerata non sicura.


    • Invece del comando dotnet run si può usare dotnet watch che, tra le altre cose, lancerà direttamente il link https.

    Nella barra laterale sinistra si possono consultare altre due pagine: Counter et Fetch data. Alcune spiegazioni sulla pagina Counter in questo paragrafo

  7. Fare Ctrl + C per finire.

Analisi della pagina Counter

Selezionare il pulsante "Click me" per incrementare il conteggio senza aggiornare la pagina.
L'implementazione del componente Counter si trova in Pages/Counter.razor:

   1 @page "/counter"
   2 
   3 <PageTitle>Counter</PageTitle>
   4 
   5 <h1>Counter</h1>
   6 
   7 <p role="status">Current count: @currentCount</p>
   8 
   9 <button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
  10 
  11 @code {
  12     private int currentCount = 0;
  13 
  14     private void IncrementCount()
  15     {
  16         currentCount++;
  17     }
  18 }

Il codice mischia HTML e C#. Tutto il codice C# si trova nella direttiva @code. Si accede alla variabile currentCount nella pagina usando @currentCount.

Una richiesta di /counter nel browser, come specificato dalla direttiva @page in alto, provoca il rendering del contenuto del componente Counter.

Ogni volta che si seleziona il pulsante "Click me":

  • L'evento onclick viene attivato.

  • Viene richiamato il metodo IncrementCount.

  • currentCount viene incrementato.

  • Il componente viene reso per mostrare il conteggio aggiornato.

Ulteriori risorse


CategoryNuoviDocumenti