canton7 / Stylet

A very lightweight but powerful ViewModel-First MVVM framework for WPF for .NET Framework and .NET Core, inspired by Caliburn.Micro.
MIT License
981 stars 143 forks source link
mvvm mvvm-framework stylet wpf

Project Icon Stylet

NuGet Build status

Introduction

Stylet is a small but powerful ViewModel-first MVVM framework for WPF (.NET 4.5.2+ and .NET Core 3.0+), which allows you to write maintainable and extensible code in a way which is easy to test. Stylet's aims are to:

It is inspired by Caliburn.Micro, and shares many of its concepts, but removes most of the magic (replacing it with more powerful alternatives), and simplifies parts considerably by targeting only MVVM, WPF and .NET 4.5.2.

Getting Started

.NET 5.0+ / .NET Core

For .NET Core and .NET 5.0+ projects, the quickest way to get started is by using dotnet new with Stylet's template.

Open a command window where you want to create your new project, and install the Stylet templates using:

dotnet new -i Stylet.Templates

Then create a new .NET 5.0 project with:

dotnet new stylet -n MyStyletProject

(changing MyStyletProject as appropriate).

If you want to create a .NET Core 3.1 project, then:

dotnet new stylet -F netcoreapp3.1 -n MyStyletProject

If you want to set up your project manually, install the Stylet package, then follow the instructions in the Quick Start.

Stylet requires .NET 5.0+ or .NET Core 3.0+.

.NET Framework (<= .NET 4)

For .NET Framework projects, the quickest way to get started is to create a new "WPF Application" project, then install the NuGet package Stylet.Start. This will install Stylet, and set up a simple skeleton project.

See Quick Start for more details.

If you want to set up your project manually, install the Stylet package, then follow the instructions in the Quick Start.

Stylet requires .NET 4.5.2 (Visual Studio 2012 or higher).

Documentation

The Wiki is the documentation source. There's loads of information there - go and have a look, or start with the Quick Start.

Contributing

Contributions are always welcome. If you've got a problem or a question, raise an issue. If you've got code you want to contribute, please read the Contributing guidelines first of all. Create a feature branch off the develop branch, add your changes there, and submit it as a pull request.