Home

Awesome

Introduction

The Learn PrismLibrary repository provides a variety of samples across different framework implementations such as, Xamarin.Forms, Uno, WPF, and Avalonia, all using Prism!

Each of the samples uses DryIoc for Dependency Injection and is based off of their respective Visual Studio template.

Enjoy!<br /> Author: Damian Suess<br /> Website: suesslabs.com

About Prism Library

Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in .NET MAUI, Avalonia, WPF, and Windows 10 UWP. Separate releases are available for each platform and those will be developed on independent timelines. Prism provides an implementation of a collection of design patterns that are helpful in writing well-structured and maintainable XAML applications, including MVVM, dependency injection, commands, EventAggregator, and others. Prism's core functionality is a shared code base in a Portable Class Library targeting these platforms.

Samples Table

Prism.Avalonia

NamePrism Ver.Details
Ex 1 - Intro to Navigation8.1.97Prism Regions with navigation, journaling navigation, Notification Pop-ups, and basic MVVM.
Ex 2 - Intro to Dialogs8.1.97Pop-up Dialog samples.
Ex 3 - SplitView Navigation8.1.97Similar to Ex1 but with Avalonia's SplitView control.

Coming Soon:

Prism.Maui

The Prism.Maui examples currently require the NuGet package, Prism.DryIoc.Maui. If you plan on using just, Prism.Maui, then the startup fluent arguments are slightly different. An example for such a case is scoped on the backlog.

NamePrism Ver.Details
Ex 1 - Intro Welcome8.1Introduction to View/ViewModel registration and navigation.
Ex 2 - Basic Navigation8.1Sample navigation.
Ex 3 - Splash Screen8.1(Work-in-Progress) Demonstrate loading screen.
Ex 4 - Microsoft DI (TBD)8.1Coming Soon

Prism.Forms

NamePrism Ver.Details
Ex 1 - Intro to Navigation7.0Introduction to View/ViewModel registration and navigation.
Ex 2 - Master Detail Page7.1Navigation using the MasterDetailPage. Xamarin.Forms has since renamed the control to, "FlyoutPage". We're keeping the name for historical purposes.
Ex 3 -Tab Page7.1Navigation using the TabbedPage user control.
Ex 4 - (Coming Soon)8.1Sample pop-up and dialogs
Ex 5 - Partial Content View7.1Prism's AutowirePartialView is a legacy feature that has since been replaced with Region support in v8.x. Reference, this post by Dan Siegel.
Ex 6 - v7.2 Features7.2Prism v7.2 features (legacy)
Ex 7 - v7.2 Template7.2Prism.Forms v7.2 Template Project (legacy)
Ex 8 - v8.1 Template8.1Prism.Forms v8.1 Template Project
Ex 9 - GTK Intro8.1Basic GTK# project files to get started
Ex 10 - GTK Navigation8.1GTK# navigation sample
Ex 11 - Shiny.NET Core8.1Basic Shiny.NET components needed before beginning any Shiny project with Prism.Forms.

Prism.Uno

NamePrism Ver.Details
Ex 1 - Basics8.1Prism.Uno sample targets Linux with GTK, and Windows via UWP.

Prism.WPF

NamePrism Ver.Details
Ex 1 - Full App Template8.0Prism.WPF sample app with Regions, Modules, and navigation (.NET Framework 4.8)
Ex 2 - Region Navigation8.0Navigation using Regions (.NET Framework 4.8)
Ex 3 - Module Permissions8.1Module permissions sample using .NET 5 - Based on Brian Lagunas' Pluralsight course

AvaloniaUI Samples

All AvaloniaUI samples are cross-platform ready! That's right, you can use Linux, Mac, Windows, or Windows with WSL.

In these lessons repo, we'll explore how to wire-up Avalonia with Prism.Avalonia and some of the key user controls that Avalonia has to offer.

Whether you're coming from WPF, Xamarin.Forms, Uno, or some other XAML based language, you'll find a lot of exact syntactical matches and similarities. Overall, Prism.Avalonia is a solid tool for production cross-platform applications.

WPF Samples

List of Prism Snippets:

WPF - Ex1 - Full App Template

WPF - Ex2 - Basic Regions

Demonstrates how to configure regions, perform navigation, and wire up services with Dependendency Injection. There are 2 regions, a sidebar and a content region where the main body of work is performed.

WPF - Ex3 - Basic Modules

Demonstrates how to interact with multiple modules from your main form and share common services, plus personalized services to the module.

Here we'll use basic login system to gain access to our inventory manager

WPF - Ex4 - Material Design

Make it pretty

COMING SOON: MahApps.Metro + MaterialDesign

Semi-Requirements

The project works best if you include the Prism Template Pack. This allows the system to quickly type in code for you and even creates a ViewModel class when you create a new page!

Future Samples

Resources

Learn

SuessLabs.com - Suess Labs (GitHub) - Damian Suess (GitHub)

License

Copyright (c) 2024 Xeno Innovations, Inc.. All rights reserved.