Archivi Tag: maui

Dependency Injection su Maui

La dependency Injection è una delle funzioni più comode per poter avere del codice facilmente modificabile ma se vogliamo usarla su Maui potremmo incorrere in qualche problema.

Ma andiamo con ordine, come siamo abituati a fare iniziare con il creare la nostra interfaccia con i metodi che ci interessano

public interface IApiAccess
{
    bool Test();
}

e andiamo poi a creare la relativa classe che andrà ad implementarla

public class ApiAccess : IApiAccess
{
    public bool Test()
    {
        return true;
    }
}

Il passo successivo sarà naturalmente quello di andare a registrare il nostro singleton nella classe mauiprogram.cs

mauiAppBuilder.Services.AddSingleton<IApiAccess, ApiAccess>();

A questo punto quello che vogliamo fare è andare ad utilizzare questa interfaccia nella nostra pagina quindi nel costruttore andremo ad aggiungerla come parametro

public MainPage(IApiAccess apiAccess)
{
    InitializeComponent();
}

se a questo punto andremo ad eseguire il nostro programma quello a cui ci troveremo davanti sarà un bell’errore in fase di esecuzione che ci indica che non è presente nessun costruttore senza parametri

Come risolvere il problema quindi? Per fortuna la soluzione è molto semplice, dobbiamo andare ad aggiungere una nuova riga sempre nel file mauiprogram.cs dove andiamo ad aggiungere come Transient la pagina che ci interessa

builder.Services.AddTransient(<MainPage>);

purtroppo dovremo andare ad aggiungere una riga per ogni pagina in cui vogliamo andare ad utilizzare la dependency injection direttamente nel costruttore ma in questo modo potremmo utilizzarla con ogni classe che vogliamo.

Spero questa soluzione possa essere interessante ed evitarvi qualche mal di testa 😀 e come sempre buon coding!!

Diamo il benvenuto a MAUI, il nuovo re di Xamarin Forms

Ieri a build è stato presentato MAUI (.NET Multi-platform App UI) che sarà la base di sviluppo per i futuri progetti Xamarin multipiattaforma.

NET MAUI è un framework di nuova generazione per sviluppare applicazioni native multipiattaforma per dispositivi mobile e desktop. E’ stato sviluppato utilizzando la nuova generazione del framework .NET e di gestione dei progetti e introduce un nuovo modo di sviluppare applicazioni con una architettura  MVU (Model-View-Update) oltre a XAML e MVVM che conosciamo bene.

MAUI semplificherà inoltre lo sviluppo di applicazioni cross platform native introducendo una struttura con un singolo progetto e risorse cross-platform. Inoltre risorse condivise come font ed immagini e le tecnologie di hot reload e hot restart saranno presenti sin dall’inizio

Diciamo che in questo caso un’immagine vale più di molte parole

Riassumendo quindi avremo:

  • Un singolo progetto per le varie piattaforme
  • Una posizione dove avere le risorse come font ed immagini
  • Possibilità di gestire il codice specifico per le varie piattaforme

Ok tutto bello, ma quando potremo metterci le mani? Il lavoro è lungo come possiamo ben immaginare, una prima preview sarà disponibile più avanti quest’anno, mentre il rilascio come GA è previsto insieme al framework .NET 6 per novembre 2021, è disponibile anche una roadmap pubblica su GitHub.

Il lavoro da fare è molto e dovranno essere anche riscritte e modificate molte librerie e pacchetti di controlli, quindi ci sarà tutto il tempo per portarci a questa transizione.

Io sinceramente non vedo l’ora di poter mettere mano alla prima preview e testarla, e voi?

Intanto nell’attesa vi auguro buon coding e vi lascio il link all’articolo originale dove vengono presentate tutte le novità di Xamarin QUI

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi