dotnet / wpf

WPF is a .NET Core UI framework for building Windows desktop applications.
MIT License
7.06k stars 1.17k forks source link

System.Xaml.XamlServices is not available on dotnet/runtime #3187

Open antymon4o opened 4 years ago

antymon4o commented 4 years ago

Xaml Services is not available on .NET Core Runtime. It is only available on Desktop Runtime as part of the WPF. Desktop Runtime is only supported on Windows OS, so the use of Xaml Services is available only on Windows. Given that the base functionality of the Xaml services is not platform specific, it should be included in the base runtime and be available for all the supported OS of dotnet. The concepts and capabilities of Xaml Services - reading/writing, type converters and markup extensions, etc - are so powerful that they can be used in an broader use cases than WPF. One example for such use case is a library for developing Web applications. Using ASP.NET Core Runtime and Xaml for View definition, one can create multi platform web application that can run on both Windows and Linux.

Dotnet-GitSync-Bot commented 4 years ago

I couldn't figure out the best area label to add to this issue. Please help me learn by adding exactly one area label.

jeffschwMSFT commented 4 years ago

cc @richlander

ericstj commented 4 years ago

I believe this issue belongs in dotnet/wpf. The request here would be to either move that library down to a lower repository so that it can be shipped in the base shared framework or ship a package. dotnet/wpf#46

vatsan-madhavan commented 4 years ago

My 2c - moving it to a lower repo would create source-code coherence problems. System.Xaml, PresenationBuildTasksand {WindowsBase, PresentationCore, PresentationFramework} all share some code, and should be kept in sync.

Suggestion: With the upcoming deprecation of Microsoft.NET.Sdk.WindowsDesktop and move towards unification into Microsoft.NET.Sdk, I think there is an opportunity to solve this without either (a) resorting to moving this to a lower repo, or (b) creating a separate package a la #46 . A new profile - something perhaps named as Microsoft.WindowsDesktop.App.Core- could be added that includes only System.Xaml. This profile could then be turned on in the base Microsoft.NET.Sdk irrespective of whetherUseWpf/UseWinForms is enabled.

This could be done selectively for some TFM's (for e.g., *-windows). Alternatively, System.Xaml could be built for netstandard2.1 and made available x-plat (If I'm not entirely mistaken, this can be done with minimal effort).

jdom commented 8 months ago

Any updates? I'd like to convert a non-UI app (console) from .NET Framework to .NET 8, but can't seem to find a way to parse XAML