Skip to content

Commit

Permalink
Tweaking the XPF docs
Browse files Browse the repository at this point in the history
Adding more context and a welcome page
  • Loading branch information
MikeCodesDotNET committed Oct 28, 2024
1 parent 885951f commit bee63ae
Show file tree
Hide file tree
Showing 9 changed files with 113 additions and 17 deletions.
10 changes: 5 additions & 5 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,13 @@ const config = {
},
items: [
{
label: 'Documentation',
label: 'Avalonia Docs',
to: '/docs/welcome'
},
{
label: 'XPF Docs',
to: '/xpf/welcome',
},
{
label: 'Resources',
type: 'dropdown',
Expand All @@ -201,10 +205,6 @@ const config = {
},
],
},
{
label: 'Avalonia XPF',
to: '/xpf/getting-started',
},
{
label: 'Support',
to: 'https://avaloniaui.net/support',
Expand Down
7 changes: 4 additions & 3 deletions xpf-sidebar.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
const sidebars = {

documentationSidebar: [
'welcome',
'getting-started',
'porting-tips',
'build-feeds',
Expand All @@ -14,7 +15,8 @@ const sidebars = {
'label': 'Platforms',
'items': [
'platforms/linux',
'platforms/macos'
'platforms/macos',
'platforms/mobile-and-browser'
]
},
{
Expand Down Expand Up @@ -44,8 +46,7 @@ const sidebars = {
'advanced/customizing-window-decorations',
'advanced/headless-testing',
'advanced/key-mapping',
'advanced/window-handles',
'advanced/running-on-mobile-and-browser'
'advanced/window-handles'
]
},
'troubleshooting',
Expand Down
2 changes: 1 addition & 1 deletion xpf/build-feeds.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ id: build-feeds
title: XPF Versioning
---

The latest stable version of Avalonia XPF is 1.2.0. And if you are planning to make a release of your product you should choose the stable version. But for development purposes you may want to update to the latest development version frequently. The latest version can be found on our [nuget server](https://xpf-nuget-feed.avaloniaui.net/packages/xpf.sdk).
The latest stable version of Avalonia XPF is 1.3.0. And if you are planning to make a release of your product you should choose the stable version. But for development purposes you may want to update to the latest development version frequently. The latest version can be found on our [nuget server](https://xpf-nuget-feed.avaloniaui.net/packages/xpf.sdk).

To log into the web portal, use the following credentials:

Expand Down
2 changes: 1 addition & 1 deletion xpf/embedding/web-view.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
id: web-view
title: Using Web View control
title: Using WebView control
---

## Overview
Expand Down
2 changes: 1 addition & 1 deletion xpf/missing-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ While XPF makes a best attempt to implement all WPF APIs, there are still some p

The following features are available, but with limitations:

- `WebBrowser` see our [WebView docs](embedding/web-view)
- `FlowDocument`
- Paginated documents are not supported
- `PageHeader`/`PageFooter` are not supported
Expand All @@ -15,7 +16,6 @@ The following features are available, but with limitations:

The following features will be available later but require significant engineering effort:

- `WebBrowser`
- `Viewport3D` and related 3D APIs

The following features are unlikely to be supported due to platform restrictions:
Expand Down
19 changes: 19 additions & 0 deletions xpf/platforms/linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,25 @@ id: linux
title: Linux
---

## Supported Distributions
We maintain comprehensive testing and support for the following Linux distributions:

* **Debian**: Version 9 and newer
* **Ubuntu**: Version 16.04 and newer
* **Fedora**: Version 30 and newer

### Other Distributions
While we focus our testing efforts on the distributions listed above, Avalonia XPF can run on many other Linux distributions. If you're using a distribution that's not listed in our officially supported platforms:

* We will work with you to ensure compatibility with your chosen distribution
* Our support team can assist with distribution-specific issues
* The distribution may require additional configuration or testing

:::note
Distribution-specific support is provided on a case-by-case basis. We recommend reaching out to our support team early in your development process if you plan to deploy on a non-listed distribution.
:::


## Installing .NET

Many distributions provide a version of .NET in their package repositories, but these **should not** be used as they do not ship the required `Microsoft.NET.Sdk.WindowsDesktop` SDK.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
---
id: running-on-mobile-and-browser
title: Running on Mobile and Browser
id: mobile-and-browser
title: Mobile and Browser
---

:::danger
XPF support for Mobile and Browser targets is in early stages.
As well as it highly depends on app complexity and dependencies.
XPF support for Mobile and Browser targets is in private-preview.
:::

:::tip
Expand Down
18 changes: 16 additions & 2 deletions xpf/third-party-libraries.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ title: Third party libraries
---

Avalonia XPF implements WPF's API surface, however a variety of third party libraries also depend on various win32 APIs which are obviously not available cross-platform.
To deal with this problem, Avalonia XPF implements a win32 API emulation layer that allows 3rd party libraries to work on non-windows platforms. This emulation
layer needs to be enabled explictly in your XPF application.

To deal with this problem, Avalonia XPF implements a win32 API emulation layer that allows 3rd party libraries to work on non-windows platforms. This emulation layer needs to be enabled explictly in your XPF application.

This feature must be enabled before any assembly attempts to call a win32 API, so the constructor of your `App` class or `Program.Main` is a good place to enable it.

Expand Down Expand Up @@ -35,3 +35,17 @@ AvaloniaUI.Xpf.WinApiShim.WinApiShimSetup
.AddLibrary(typeof(Type.In.Third.Party.Library).Assembly);
```

## Compatibility Database

We maintain a comprehensive [compatibility database](avaloniaui.net/xpf/packages) for third-party controls. This database provides up-to-date status information for controls from major vendors.

:::info
If you find that a control marked as `Fix In Progress` or `Untested` is mission-critical for your application, please contact our support team. We're committed to working with you to ensure compatibility.
:::

### Compatibility Notes

* **Pure WPF Controls**: Third-party controls that are implemented purely in WPF typically work without any issues, even if not listed in our compatibility database.
* **Unlisted Vendors**: The absence of a control vendor from our database doesn't indicate incompatibility. We encourage you to test any controls you need.
* **Known Challenges**: Issues most commonly arise with controls that utilize GDI or WinForms components.

63 changes: 63 additions & 0 deletions xpf/welcome.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
id: welcome
title: Welcome
sidebar_label: Welcome
---

Welcome to the documentation for Avalonia XPF, our cross-platform fork of WPF.

## Overview

Avalonia XPF is a powerful solution that enables WPF applications to run natively across multiple platforms, including Windows, macOS, and Linux, with upcoming support for iOS, Android, and WebAssembly.

Avalonia XPF maintains both API and binary compatibility with WPF while replacing the low-level WPF implementation (MilCore) with Avalonia's cross-platform rendering engine. This approach allows developers to migrate their existing WPF applications to other platforms with minimal code changes, preserving their investment in WPF development and third-party controls.

## Licensing

As a commercial product, Avalonia XPF offers different licensing tiers to suit various needs:

| Platform | Indie | Business | Enterprise |
|---------------|-------|-------|-------|
| `Windows` ||||
| `macOS` ||||
| `Desktop Linux` ||||
| `Embedded Linux` ||||
| `iOS` ||||
| `Android` ||||
| `WebAssembly` ||||

All applications built with Avalonia XPF will continue to work in perpetuity, regardless of license status. This ensures that your deployed applications remain functional and stable for your end users.

### Indie Licenses
The Indie license is offered as an annual subscription and includes:

* 30-day money-back guarantee
* Full access to Avalonia XPF features on Windows & macOS

If an Indie license expires, developers will no longer be able to build new versions of their applications using XPF. However, all previously built applications will continue to function normally.

### Business & Enterprise Licenses
Business and Enterprise licenses are perpetual, offering a permanent right to use Avalonia XPF. These licenses include:

* Fully supported 30-day trial period
* Permanent license to build with Avalonia XPF
* 12 months of updates and engineering support

Both Business and Enterprise licenses enable organizations to thoroughly evaluate XPF's capabilities through a supported trial period, ensuring compatibility with their existing applications across their target platforms.

### Trial Availability
Trial periods are exclusively available for Business and Enterprise licenses. These trials are fully supported by our engineering team to ensure organizations can thoroughly evaluate XPF's capabilities with their specific applications and use cases.

For Indie developers, we offer a 30-day money-back guarantee instead of a trial period. This approach allows developers to test XPF's compatibility with their projects while ensuring they receive the appropriate level of support for their needs. We ask that Indie developers not apply for Business or Enterprise trials.

### Pricing
For the latest pricing, please see our [website](https://avaloniaui.net/xpf#pricing).

## Hybrid XPF
One of Avalonia XPF's unique features is its [hybrid capability](embedding/xpf-in-avalonia.md), allowing Avalonia developers to use WPF controls within applications. This flexibility enables Avalonia developers to leverage over 700 existing WPF controls from major vendors such as [Telerik](https://www.telerik.com/), [Actipro](https://www.actiprosoftware.com/), [DevExpress](https://www.devexpress.com/), [Infragistics](https://www.infragistics.com/), and [Syncfusion](https://www.syncfusion.com/), bridging the gap between traditional WPF development and modern cross-platform applications.

## Get Started
Begin your journey with Avalonia XPF using our comprehensive [getting started guide](getting-started), which walks you through the straightforward process of migrating your WPF application to run on additional platforms in just minutes.



0 comments on commit bee63ae

Please sign in to comment.