Documentation/README.md

5.2 KiB

👋 Introduction to Avalonia

Welcome

Welcome to Avalonia - the best open source, easy to learn .NET C# multiplatform package for desktop Windows, Mac and Linux development.

  • Avalonia is being developed very fast by extremely bright people.
  • Avalonia is 100% open source - and will continue as an open source project and has great and constantly expanding documentation and a great number of open source samples showing how to use Avalonia.
  • Avalonia has a decent free support on Avalonia Gitter, one can also post questions on Avalonia Github Discussions. If you're in need of more support you can opt for a paid support plan which helps support the continued growth of the project.
  • Avalonia has Visual Studio and Rider support for creating XAML files while having advantage of XAML IntelliSense. Visual Studio also has a designer view available.
  • Avalonia has a tool that facilitate the visual development and debugging called DevTools. This tool is also multiplatform - meaning you can use it on Mac and Linux and completely open source.

If you're familiar with WPF or UWP then you should feel right at home with Avalonia. Although Avalonia is not API compatible with either of these frameworks and so controls can't be used without porting, there's a lot of similarity. If you're a WPF user we have a page which describes the main differences between WPF and Avalonia.

Why Avalonia is a Hit

  • Avalonia allows creating applications that look and behave the same on most popular Desktop and Mobile platforms Windows, Mac, various flavors of Linux while also allowing the platform specific customizations.

  • Avalonia is supported by the following companies:

    and many other smaller companies.

  • Several extremely popular .NET open source projects have been ported to Avalonia. Among them are

  • Avalonia just like WPF and Silverlight is fully compositional: you can create a button out of Avalonia primitives in a fashion similar to creating a complex page, while its competitors Web, Xamarin and Java packages are not compositional to the same degree as will be detailed later.

  • Avalonia UI, unlike JavaScript has full advantage of a strongly typed language. Also Avalonia has full advantage of a compiled-to-binary code language.

  • Avalonia is an open source multiplatform descendant of great Microsoft packages - WPF and Silverlight which brought the UI development on a completely new level creating a set of new concepts and which allow to create a full blown UI application in fraction of time and effort in comparison to other technologies. Here is the list of some of the concepts:

    • Visual and Logical Trees
    • Attached or Dependency Properties which can be defined outside of the object on which they are used and do not take any extra memory unless they are assigned a non-default value and have a special event to fire when their values change.
    • Attached Routed Events that can be defined outside of the objects that fire them and can propagate and be handled up and down on the trees.
    • Bindings and the Related MVVM pattern
    • ControlTemplates
    • DataTemplates
    • Styles
    • Behaviors - way to modify and augment the behavior of a C# class without modifying the class itself by using the events.

    All these paradigms have been implemented for multiple platforms in Avalonia.

Supported .NET Version

Avalonia is supported for .NET Core 3.1 and higher.

Supported Platforms

Avalonia is supported on the following platforms:

  • Windows 8 and higher
    • Note: Avalonia works correctly on Windows 7 also,but not supported officially
  • MaxOS High Sierra 10.13 and higher
  • for Linux:
    • Debian 9 Stretch and higher
    • Ubuntu 16.5 and higher
    • Fedora 30 and higher

Supported Development Environments

The following environments support Avalonia XAML with IntelliSense:

  • Visual Studio 2017 and higher with or without Resharper 2020.3. Avalonia Visual Designer is also supported.
  • JetBrains Rider 2020.3 and higher.

Installing Avalonia Extension for Visual Studio JetBrains Rider Setup