microsoft / microsoft-ui-xaml

Windows UI Library: the latest Windows 10 native controls and Fluent styles for your applications
MIT License
6.33k stars 676 forks source link

Question: What Windows Server operating system is supported? #3370

Closed Rand-Random closed 3 years ago

Rand-Random commented 4 years ago

I know that the minimum supported system is Windows 10 (1803+) but I couldn't find an answer of what server version (for a terminal session) is the minimum supported version?

Does it have to be Windows Server 2019? Or is Windows Server 2016 still good to go?

StephenLPeters commented 4 years ago

@Rand-Random are you sure this the correct repo for this questions? Should it be here instead? https://github.com/microsoft/terminal

Rand-Random commented 4 years ago

@StephenLPeters my question is about WinUI 3.0, so I guess I am in the correct repo? At least thats the way I followed searching for the answer https://microsoft.github.io/microsoft-ui-xaml/ https://docs.microsoft.com/en-us/windows/apps/winui/winui3/ and finally here https://github.com/microsoft/microsoft-ui-xaml

The information about "Windows 10 (1803+)" being the minimum supported operating system have I found here https://microsoft.github.io/microsoft-ui-xaml/about.html

But there is no information about Windows Server, which I am trying to figure out.

Tough if I am not mistaken the "Windows Terminal preview" project is written with WinUI 3.0 so the supported operating system should be the same unless the app does some internal limitation.

prayaas-a commented 4 years ago

My educated guess would be that only 2019+ would work. 2016 is based on the same code base as Windows 10 1607 IIRC and I'm assuming that whatever OS components WinUI relies on that are present in (or polyfilled for) 1803 and above made it to Server 2019.

Rand-Random commented 4 years ago

@prayaas-a Thanks for your guess, had the same train of thought, but still wanted to know the "official" statement.

@StephenLPeters after re-reading my question I noiced I wrote "terminal session" what I actually meant was "remote session on a terminal server" maybe thats where the confusion came that I was talking about the "terminal" app.

StephenLPeters commented 4 years ago

what prayaas-a says sounds correct (although I don't know). However I'm a bit confused what your scenario is. What sort of winui 2 application are you hoping to run on windows server?

Rand-Random commented 4 years ago

@StephenLPeters First of all I am talking about WinUI 3.0 and not 2.0, to be precise a desktop WinUI 3.0.

https://docs.microsoft.com/en-us/windows/apps/winui/winui3/get-started-winui3-for-desktop

Second, my own application and we are currently evaluating our options what to use, if we should transition to WinUI 3.0 or stay with WPF.

To make a decision we need to know the minimum requirements needed to run a WinUI 3.0 application, so if Windows Server 2016 is not supported we would contact our clients that are still running Windows Server 2016 and ask if and when they are willing to transition to Windows Server 2019.

If a client that is big enough would say we are staying on Windows Server 2016 for the foreseeable future we may drop the idea of WinUI 3.0 and stay on WPF.

Getting the same information for WPF took me like 10 seconds https://stackoverflow.com/questions/4838702/wpf-apps-and-operating-system

ranjeshj commented 4 years ago

@Austin-Lamb @MikeHillberg Is WinUI3 supported on Server 2016 ?

jonathanlyonmoore commented 4 years ago

@ranjeshj In theory you should just need the Visual Studio 2019 build tools. Again Windows Server 2012 is still in service until 2023 and you will need Visual Studio 2017 and all of your Windows SDKs and maybe the Visual Studio 2019 build tools you might need an upgrade to the powershell. Here is the dev guide https://github.com/microsoft/microsoft-ui-xaml/blob/master/docs/developer_guide.md#Building-the-repository Here is an upgrade to the Powershell 3.0 https://www.microsoft.com/en-us/download/details.aspx?id=34595 got it from stackoverflow. After that in 2012 you may need to build your powershell to at least 6.0. At least you'll have built it IDK about the nuget package or if it will install it might I haven't tested it.

Rand-Random commented 4 years ago

@jdm7dv Thanks for the information, but it doesn't really answer my initial question, which @ranjeshj tried to sum up and notify @Austin-Lamb @MikeHillberg about.

I really start to question what may I be doing wrong here and why my question is so hard to understand.

Just imagine you write a simple "Hello World" application in Win UI 3.0 and want to publish it on a Windows Server machine. Which version of Windows Server does the said "Hello World" application need as a minimum to run? Not talking about building the Win UI 3.0 application, but running it on said machine.

Am I a total maniac because I want to run a Win UI 3.0 on a Windows Server machine, that users with their client operating systems connect to per a remote desktop session and this scenario isn't covered at all?

I really really struggle to grasp what the issue with my question is.

Austin-Lamb commented 3 years ago

@Rand-Random, my GitHub notifications seem to be messed up, and I didn't see the mention from last week - thanks for your patience.

Windows 10 versions can certainly be a bit confusing and you need a decoder ring to really make sense of them across different Editions like Server, Xbox, and so on. The way that's easiest to think about this is in terms of build numbers - those are shared across the different Editions and they are monotonically increasing so they're a good point of comparison.

WinUI 3.0 will require a minimum Windows 10 version of 10.0.17134.0. On the desktop client, this is known as 1803, but this build did not ship a corresponding Windows Server version. The next Windows Server release was based on 17763, which was Windows Server 2019 (see a useful decoder ring here: https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions#Server_versions )

Initially, WinUI 3 will only support the desktop SKUs (client and server) - in time, as we add support for Xbox, HoloLens, Surface Hub and other Windows 10-based SKUs, we would similarly require 17134 or greater on those.

For full transparency - we are only testing WinUI 3 on client. Your scenario of using a server with Terminal Services is reasonable, but not one we have been testing explicitly, so it is possible you could encounter unique bugs with that. If Server 2019 is an acceptable minimum for you, you're welcome to try out WinUI 3 Preview 2 (or the upcoming WinUI 3 Preview 3) on Server 2019 via Terminal Services and let us know your feedback on that experience. I expect it should be broadly similar to client, but Terminal Services does change some things about how animations run that could affect the experience. If you see issues, please file them on this repo.

If you require Windows Server 2016 support, then WPF or Windows Forms would be better choices at this time. Or you could write a UWP app using the Windows.UI.Xaml framework using WinUI 2, if the UWP app model is a fit for your app. We have no plans to lower the minimum version for WinUI 3 at this time.

Rand-Random commented 3 years ago

@Austin-Lamb Thanks alot, for the in depth information, highly appreciated.

Rand-Random commented 3 years ago

@Austin-Lamb An update from myside, after alot of back and forth with the team and clients, we came to the conclusion to NOT use WinUI 3 for our new product.

The main reason being the lack of support on Windows Server versions, escpecially since those Windows Server 2012/2016 are still atleast on extended support if not still on full support mode from Microsoft and we didn't want to force a more restricted support on our application, as Microsoft does so for its Windows Server Operating Systems.

Our clients also didn't have much appreciation to switch to Windows Server 2019 when 2012/2016 is still supported and "good" enough for their needs.

We are sticking to WPF for the time being.

UweReisewitz commented 3 years ago

I would like to add our (I believe not so uncommon) Use Case to this discussion and hope that it is seen although this thread is closed: Our ERP application running on Windows Server, Linux and Unix has a graphical client which is a WIN32-App at the moment. We are in the process of planning a new generation of that client and would like to use .NET MAUI, which will use WINUI3. Now several (especially large) customers use this application in Terminalserver environments with Microsoft or CITRIX. Since the extended support for Server 2016 runs until 2027 we have those servers in the field (we even have 2012). This could be a showstopper for MAUI/WINUI3, which would really hurt. Please add Terminal Services to your considerations. I believe the described case would be true for several large Microsoft customers, too.

CodePagesNet commented 2 years ago

I really struggle to grasp what the issue with my question is.

To the OP, I agree. I have had the same problem with finding an answer to this same simple question. Major shortcoming that this simple question of the Windows Server compatibility of apps built with Windows App SDK, is not documented. I think this thread helps but most helpful would be a clear Yes/No.

Windows Apps built with Windows App SDK:

Compatible with Windows Server 2022? Yes/No ?? Compatible with Windows Server 2019? Yes/No ??

Thank You

jader1313 commented 2 years ago

Windows Apps built with Windows App SDK: Compatible with Windows Server 2022? Yes/No ?? Compatible with Windows Server 2019? Yes/No ??

LuohuaRain commented 1 year ago

Windows Apps built with Windows App SDK: Compatible with Windows Server 2022? Yes/No ?? Compatible with Windows Server 2019? Yes/No ??

I tried Windows Server 2022, the answer is NO! When you install Windows APP SDK runtime, there will be an error

Installing license: MSIX_MAINPACKAGE_LICENSE Install result : 0x0 Installing license: MSIX_SINGLETONPACKAGE_LICENSE Install result : 0x0 Deploying package: Microsoft.WindowsAppRuntime.1.1_1005.616.1651.0_x64__8wekyb3d8bbwe Package deployment result : 0x8000000b One or more install operations failed. Result: 0x8000000b

Looking forward to an alternative resolution

CodePagesNet commented 1 year ago

Quote: "Windows Server 2019 is based on Windows 10 Version 1809..." https://learn.microsoft.com/en-us/windows/msix/msix-server-2019 Applications must not require Windows targets higher than 10.0.17763.

Windows Server OS "Desktop Experience" corresponds to a Windows Desktop OS version. https://learn.microsoft.com/en-us/windows-server/get-started/whats-new-in-windows-server-2019

Now also see that WinUI 3 is downwards compatible to Windows 10 Version 1809. (Probably no coincidence that Windows "App" SDK [WinUI 3] has same minimum supported Windows desktop technology as MSIX "App" installer). https://microsoft.github.io/microsoft-ui-xaml/about.html

So, based on documentation, Windows Server 2019 and 2022 absolutely support WinUI 3.

If encountering issues, one might check whether their app A.) Requires MSIX and thus needs MSIX dependencies or B.) Has Windows App SDK dependencies. For A and/or B, one would need to install the dependencies on the server.

rcohn commented 1 year ago

Hi -

I would like to add a datapoint to this discussion that's been going on for 3 years now.

We have a very large self-contained WinUI 3 desktop app that currently does not run on Windows Server 2019. I wrote a very simple WinUI 3 desktop app (more or less based on the GettingStarted WinUI 3 tutorial app) and that does run on WS 2019. Both apps use the same version of Windows App SDK (1.1.2).

So what's the difference between the two? At least one difference is that the large app uses Windows.ApplicationModel.Resource.ResourceLoader, which, as I subsequently found out will cause the simple app to crash as well. The exception when this happens is 0xc000027b. So far, I haven't peeled away using the ResourceLoader from the large app to see if that is the only cause of it crashing. That analysis will take some time. Both apps run just fine on Windows 10 and Windows 11.

Anyway, I would like to second that there is a real need to run such apps on these servers, especially as more virtualized access to apps is coming online.

Please publish a set of guidelines for Windows Server WinUI 3 support, as well as fix known problems with WinUI 3 on these platforms (I'm assuming WS 2019, 2022).

Thank you.