Skip to content

📲 MVVM (Xamarin UWP) application built with EFCore and abstract Factory pattern

Notifications You must be signed in to change notification settings

xtenzQ/Xamarin-MVVM-EFC-Example

Repository files navigation

📲 Multitier Architecture Xamarin Application

Contents

  1. Before we start
  2. IDEs and plugins used
  3. Architecture
  4. DB model

Before we start

IDEs and Frameworks used

IDEs and plugins:

  • Visual Studio 2019 Community Edition [ download ]
  • JetBrains Reshaper Ultimate [ download ]

Frameworks:

  • Entity Framework Core 6 (for SQLite)

Frameworks are available via NuGET Package Manager.

Architecture

Multitier architecture

Application is based on multitier architecture:

  • UI Layer
  • Service Layer
  • Business Layer
  • Data Access Layer

DB model

DB model

I used Entity Framework Core and Code First approach to create model as shown above. Here's my DbContext with OnConfiguring() method:

public ResDbContext()
{
    Batteries.Init();
    Database.EnsureCreated();
}

It's neccessary to use Batteries.Init() for EF Core.

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    var connectionStringBuilder = new SqliteConnectionStringBuilder { DataSource = "Researchers.db" };
    var connectionString = connectionStringBuilder.ToString();
    var connection = new SqliteConnection(connectionString);
    optionsBuilder.UseSqlite(connection);
}

Comparing to Entity Framework you don't have to modify config files for connection string so you basically just use OnConfiguring() method for it.