• Stars
    star
    1,129
  • Rank 41,225 (Top 0.9 %)
  • Language
  • License
    Other
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Sample repo for MVVM package

.NET Community Toolkit

This new "MVVM Toolkit" is part of the .NET Community Toolkit. The .NET Community Toolkit is part of the .NET Foundation.

Store link NuGet Downloads

image

MVVM Toolkit & Samples

The MVVM library of the .NET Community Toolkit can be found in the CommunityToolkit.Mvvm NuGet package. It will be known as the "MVVM Toolkit" in short for reference.

The full official documentation can be found in MS Docs website.

This repo contains initial samples for how to utilize the library as part of our sample app itself. You can download the sample app in the Microsoft Store here.

image

Introduction to the MVVM Toolkit

The CommunityToolkit.Mvvm package is a modern, fast, and modular MVVM library. It is built around the following principles:

  • Platform and Runtime Independent - .NET Standard 2.x πŸš€ (UI Framework Agnostic)
  • Simple to pick-up and use - No strict requirements on Application structure or coding-paradigms (outside of 'MVVM'ness), i.e., flexible usage.
  • Γ€ la carte - Freedom to choose which components to use.
  • Reference Implementation - Lean and performant, providing implementations for interfaces that are included in the Base Class Library, but lack concrete types to use them directly.

The package targets .NET Standard so it can be used on any app platform: UWP, WinForms, WPF, Xamarin, Uno, and more; and on any runtime: .NET Native, .NET Core, .NET Framework, or Mono. It runs on all of them. The API surface is identical in all cases. When running on newer runtimes, like .NET 6, it is still optimized to take advantadge of those platforms for the best performance.

You can read more about the latest features in the release blog here.

Background

This library was inspired by MVVMLight by Laurent Bugnion. Development was started in April 2020 as a path forward for developers using MVVMLight. We've worked with Laurent, the community, and Windows Template Studio to ensure successful migration paths for projects using MVVMLight today.

We decided to start from the ground-up as a new project to architect a modern .NET Standard starting point as well as targeting a high-performance implementation which reduces overhead for memory and CPU cycles. Many things in the .NET ecosystem have evolved and changed since the time MVVMLight had begun.

The Windows Community Toolkit seemed like a good home for this new library. This enables it to have broad support from the community, backing from the .NET Foundation, and longevity for the future. It has since spun off into being a major part of the .NET Community Toolkit.

We intend this library to be feature-complete and provide a common basis for app developers to create shared .NET Standard code in their applications for building with the MVVM pattern.

It is not our intent to add or support platform-specific features. We encourage app developers to:

  • Use samples to understand how to integrate with their platform
  • Build upon this work for simplification of patterns for a specific platform
  • If needed, utilize other .NET Foundation supported alternatives like MVVMCross and Prism

Contributing

If you find an issue with our docs or have suggestions, please check the latest documentation and file an issue on the docs repository.

If you'd like to help us with a sample for your own platform, please file an issue here and open up a dialog, or respond to one of the existing open issues tracking known platforms.

We do encourage suggestions, contributions, or platform-agnostic feature requests as well. Please open an issue to start that discussion on the main repo here.

License

MIT

More Repositories

1

WindowsCommunityToolkit

The Windows Community Toolkit is a collection of helpers, extensions, and custom controls. It simplifies and demonstrates common developer tasks building .NET apps with UWP and the Windows App SDK / WinUI 3 for Windows 10 and Windows 11. The toolkit is part of the .NET Foundation.
C#
5,887
star
2

dotnet

.NET Community Toolkit is a collection of helpers and APIs that work for all .NET developers and are agnostic of any specific UI platform. The toolkit is maintained and published by Microsoft, and part of the .NET Foundation.
C#
3,007
star
3

Maui

The .NET MAUI Community Toolkit is a community-created library that contains .NET MAUI Extensions, Advanced UI/UX Controls, and Behaviors to help make your life as a .NET MAUI developer easier
C#
2,203
star
4

Lottie-Windows

Lottie-Windows is a library (and related tools) for rendering Lottie animations on Windows 10 and Windows 11.
C#
627
star
5

Windows

Collection of controls for WinUI 2, WinUI 3, and Uno Platform developers. Simplifies and demonstrates common developer tasks building experiences for Windows with .NET.
C#
538
star
6

Maui.Markup

The .NET MAUI Markup Community Toolkit is a community-created library that contains Fluent C# Extension Methods to easily create your User Interface in C#
C#
474
star
7

Microsoft.Toolkit.Win32

ARCHIVE - This repository contained XAML Islands wrapper controls and tooling for XAML Islands with WinUI 2, see readme for more info about XAML Islands with WinUI 3 and the WindowsAppSDK.
C#
381
star
8

Labs-Windows

A safe space to collaborate and engineer solutions from the prototyping stage all the way through polished finalized component for the Windows Community Toolkit.
C#
324
star
9

ColorCode-Universal

This is a port of ColorCode to .NET Standard. The original Html only formatter has been separated from the Logic, so now it can produce Syntax Highlighted code for any output. This Project can currently produce HTML, and Render to UWP RichTextBlocks.
C#
216
star
10

Maui.NativeLibraryInterop

Maui.NativeLibraryInterop is a community-created library of binding samples to help .NET MAUI developers interop with native libraries more easily
C#
170
star
11

Graph-Controls

Set of Helpers and Controls for Windows development using the Microsoft Graph.
C#
155
star
12

Datasync

A collection of libraries that implement a client-server system used for synchronizing data from a cloud-based database.
C#
45
star
13

SceneLoader

A library for creating 3D Windows.UI.Composition.Scenes from glTF.
C#
36
star
14

Tooling-Windows-Submodule

Community Toolkit infrastructure for use as a submodule 'tooling' directory in other repositories.
C#
30
star
15

Sample-TabView-TearOff

Sample demonstrating using the TabView UWP control in the Windows Community Toolkit and Windows Template Studio's Multiple View feature to 'tear-off' tabs to create windows and drag them between windows.
C#
27
star
16

Labs-IntelligentAPIs

Intelligent APIs aim to make machine learning (ML) tasks easier for UWP developers to leverage in their applications without needing ML expertise or creating a new model.
C#
21
star
17

announcements

Subscribe to this repo to be notified of Announcements and changes in the Windows Community Toolkit
13
star
18

Sample-Graph-ContosoNotes

A simple note taking app infused with the power of Microsoft Graph and built with the Windows Community Toolkit!
C#
13
star
19

design-assets

Windows Community Toolkit design guide and templates
10
star
20

PWAWindowsHelpers

Helpers for Progressive Windows Apps running on Windows
JavaScript
9
star
21

WindowsCommunityToolkit-wiki

Wiki fork for main WindowsCommunityToolkit repo with project Documentation and Guidance
8
star
22

github-bot-uwp-toolkit

GitHub bot for the UWP Community Toolkit project to manage issues and Pull Requests
TypeScript
7
star
23

ToolkitLabs.dev

Repository for https://toolkitlabs.dev/ site
JavaScript
6
star
24

Labs-GazeControls

Set of user controls that can be reused in different applications with eye gaze input.
C#
6
star
25

Sample-Windows-CppWinRT

Sample which demonstrates using the Windows Community Toolkit within a C++/WinRT UWP application
C++
5
star
26

ReleaseNotesGenerator

dotnet core console app that generates release notes from pull requests for the UWP Community Toolkit
C#
4
star