https://github.com/tbertuzzi/xamarinformsmsextensions
Exemplo de Xamarin.Forms com Microsoft Extensions
https://github.com/tbertuzzi/xamarinformsmsextensions
Last synced: 2 months ago
JSON representation
Exemplo de Xamarin.Forms com Microsoft Extensions
- Host: GitHub
- URL: https://github.com/tbertuzzi/xamarinformsmsextensions
- Owner: TBertuzzi
- Created: 2021-01-18T17:39:43.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-01-18T17:52:55.000Z (over 4 years ago)
- Last Synced: 2025-03-29T07:21:59.792Z (6 months ago)
- Language: C#
- Homepage:
- Size: 395 KB
- Stars: 12
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# XamarinFormsMSExtensions
Exemplo de Xamarin.Forms com Microsoft Extensions
Vamos ao Nuget Instalar o [Microsoft Extensions](https://docs.microsoft.com/en-us/dotnet/api/?WT.mc_id=DOP-MVP-5003242) em todos os projetos.
Vamos instalar em todos os projetos:
* [Microsoft.Extensions.Hosting](https://www.nuget.org/packages/Microsoft.Extensions.Hosting/)
* [Microsoft.Extensions.Configuration](https://www.nuget.org/packages/Microsoft.Extensions.Configuration/)
* [Microsoft.Extensions.DependencyInjection](Microsoft.Extensions.DependencyInjection/)
* [Microsoft.Extensions.Logging](Microsoft.Extensions.Logging/)Em Seguida precisamos criar como embedded resource o arquivo [appsettings.json](https://github.com/TBertuzzi/XamarinFormsMSExtensions/blob/master/XamarinFormsMSExtensions/appsettings.json)
Então criamos a classe [Startup.cs](https://github.com/TBertuzzi/XamarinFormsMSExtensions/blob/master/XamarinFormsMSExtensions/Startup.cs) como se estivessemos utilizando uma aplicação asp.net core. o Nome Startup é apenas como sugestão sendo que pode ser utilizado qualquer nome para a classe.
O Conteudo deve simular a configuração de Inicio do Asp.net core, subindo os serviços de injeção de Dependencia , log e etc.Inclusive graças ao HostingEnvironment podemos utilizar logicas em Desenvolvimento e produção de forma separada.
Devemos Alterar o App.xaml.cs para entender a injeção de Dependencia e chamada da pagina inicial :
```csharp
using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;namespace XamarinFormsMSExtensions
{
public partial class App : Application
{
public static IServiceProvider ServiceProvider { get; set; }public App()
{
InitializeComponent();MainPage = ServiceProvider.GetService();
}
}
}```
No Caso das ViewModels podemos utilizar Uma Interface para Cada uma :
```csharp
using System;
namespace XamarinFormsMSExtensions.ViewModels
{
public interface IMainViewModel
{
}
}```
E Configurado nas Paginas Xaml :
```csharp
using Xamarin.Forms;
using XamarinFormsMSExtensions.ViewModels;namespace XamarinFormsMSExtensions
{
public partial class MainPage : ContentPage
{
public MainPage(IMainViewModel viewModel = null)
{
InitializeComponent();BindingContext = viewModel;
}protected override async void OnAppearing()
{
base.OnAppearing();
await ((MainViewModel)BindingContext).Carregar();
}
}
}```
É Possivel injetar serviços igual a utilização do Asp.net core.
Um Exemplo completo da configuração esta disponivel nesse repositorio.
Caso queira um exemplo de utilização Pratica [clique aqui](https://github.com/TBertuzzi/PokeXamarin)