Future of Windows (and other platforms) development

Future of Windows (and other platforms) development

Key Point

Link to the original text (Posted: 2021/05/18)

When Windows 10 was announced in 2015, Microsoft has also released information on Universal Windows Platform (UWP) as a new framework to develop applications that operate on all devices that operate on Windows 10.UWP provided many new features to make application development easier, while there were many restrictions that make it almost impossible to migrate existing applications.The UWP failed, as a result, the recruitment did not spread, and the Windows developer community remained split.Microsoft has recently launched a version of Project Reunion (including Windows UI (Winui)) as an ambitious program to reorganize the Windows developer community.In this article, we'll see how various groups of Windows developers can introduce Project Reunion.I would also like to check how to expand Windows applications to iOS, MacOS, Android, Web, and even Linux by using Project Reunion with Uno Platform.

Easy background

Let's go a little back and explain what Project Reunion is.To do so, it is necessary to go further and explain the background and history.Windows was always a platform for developers to develop and distribute third -party applications.The tools, technologies and frameworks used by the developers have evolved and changed with the times.I don't want to introduce all technologies that can develop Windows apps here, but instead, Microsot has recently been promoted to the development of developers' Windows applications from the top of the logic.I want to pay attention to the changes.

Here, I would like to reduce the history of Windows app development a little and start with Windows Forms (WinForms).WinForms has a history of nearly 20 years (since the release in 2002).It is still one of the most popular application development frameworks, with drag and drop designers that can be easily developed.Winform has a certain limit, so Microsoft released Windows Presentation Foundation (WPF) in 2006 and aimed to fix it.In WPF, page layout and control described in XAML, C#or VB.The application logic described on NET is clearly separated.

With the appearance of Windows Phone, the application can be clearly separated, and it is necessary to prepare a clean installation/uninstallation process, and that applications can be performed for devices and other applications.A restriction has been set.As a result, Windows Phone and Windows SDKs, which provide the basics of application development that can be distributed via Windows Store (later renamed Microsoft Store), appeared one after another.At this time, the Windows platform was converged.With the release of Windows 10, Microsoft has declared that one operating system will be prepared for mobile, tablet, desktop, Surface Hub, and Xbox devices.In conjunction with Windows 10, UNIVERSAL Windows Platform (UWP), which can develop a single application for all target devices, has also been announced.UWP also provided embedded support such as accessibility and localization.More importantly, a robust security model, which separates individual apps from each other, separating from the operating system on the foundation, has been provided.

Use XAML for layout definition, C ++, C#, VB for the definition of application logic.The use of net is the same as WPF, but UWP was aimed to be adopted by a wider developer.The value proposal of writing a single application for all devices was too exaggerated.Windows Phone has disappeared, the Surface Hub update has been delayed, and the plan to place Xbox in all living rooms has made the UWP merit extremely limited.In addition, the use of UWP had serious restrictions.The execution was limited in the closed sandbox, where Microsoft has left the border.Developers who can almost access Windows have rejected this restriction set by UWP and Microsoft Store.

Another reason that UWP could not expand its recruitment among corporate developers was that the development model was very strict, and it was incompatible with the environmental management method that the company itself wanted.There are countless ways to deploy applications for WinForms or WPFs.It is also possible to simply copy and paste the application (which is often referred to as Xcopy deployment), and in addition to creating a unique installer, simply download the app and update using clickonce.There is a method of generating applications as a single file that can be executed.When you develop a UWP application, none of these methods can be used.

Direction of direction

At this point, the reader is wondering what is the problem -if the UWP is so bad, why Microsoft stops investment and is a technique such as Winform and WPF.Don't you try to focus on the person?To be clear, they were exactly the same.But before that, let's look at why this problem is not as simple as you think.

As we have seen, there are a number of reasons that UWP is not suitable for all applications that you want to run on Windows.On the other hand, UWP has a wealth of functions as an accumulation of many years of investment on the base technology stack, so it is not possible to throw it away.This includes XAML UI layers, methods for managing various localization resources, screen resolution and device families, and application life cycles that can efficiently process and resume applications.If the developer has no intention of leaving his selected technologies, Microsoft must find a way to extract these features from UWP and package them so that they can be used in any Windows application.yeah.This is the purpose of Project Reunion.

Let's proceed a little further.Microsoft was working on many technologies before the announcement of Project Reunion last year.Microsoft, who acknowledged that WinForms and WPFs were still much more popular than UWP, worked on moving the goal post.We implement some updates to both WinForms and WPFs, and old.From Net Framework.To Net Core, further.After updating to Net 5, in the future.I'm about to move to Net 6.Installed in advance.This migration was important in the sense that it does not depend on the version of Net Framework.ARM64 support is also under development.This will expand the support for new waves for hardware devices.

At the same time, Microsoft has developed a new package technology, MSIX, which allows you to distribute existing WinForms and WPF applications to make distribution on the Microsoft Store.In addition, by using this, it is possible to step outside the sandbox by converting the UWP application as "Full Trust" component -for example, a complex work that operates a system tray.You can build a component to be performed.

In addition, Microsoft has also invested in XAML Islands, which provides a mechanism that integrates UWP components into existing WinForms and WPF applications, and the next -generation Windows UI control library that makes UWP XAML framework independent from Windows OS.This allows not only the XAML framework to be upgraded independently from the operating system, but also can be used in non -UWP applications.Microsoft also recognized that if the XAML framework was independent from the UWP and used in WinForms or WPF applications, it would have the same function as other components.Project Reunion has become a means of achieving the purpose of providing UWP components to Win32 -based applications.

You may have noticed that I changed the expression "WinForms and WPF" to "Win32 -based application", but this is now a new type of application other than WinForms, WPF, and UWP.Because there is.At this time, it is called "Winui 3 in Desktop", but Project Reunion is version 1.By the time I reach 0, I guess it will be a better name.Basically, the point that it is a Win32 application is the same as WinForms and WPF, but the use of the defined user interface is different.

Will Microsoft again introduce a new framework for application development?- exactly.And the fragmentation between developers and tools, as we have seen in the past, will be repeated.If there is a difference, it seems that there is a common goal to unite Windows developers in all backgrounds, such as the discussions held on GitHub, the request of Windows Community, and the announcement of builds.It is correct from the standpoint of Windows developers to think, "I'm going to make a new framework again", or in some cases, "I'm going to make a new framework again".This is nothing but Microsoft's responsibility.

Windows(および他のプラットフォーム)開発の未来

Prospects for Windows application development

Let's take a closer look at what Windows application development will be in the future based on the release and roadmap of Project Reuion and Winui.The centering at the center of Project Reunion is that no matter what the technologies used for development, all the functions of Windows 10 platforms can be used.This includes a large amount of Win32 -based API (Desktop API) and WinRT API (UWP API, etc.).It should also include application -level functions, such as application life cycles and notifications.

Project Reunion is an attempt to re -integrate Windows application developers through integrated API sets [Source: Windows Blog]

言葉を換えるならば、Windowsアプリ開発の将来的なビジョンは、既存のアプリケーション開発であっても、古いテクノロジを使用しても、新しいアプリケーションを始める場合でも、何ら変わることはありません。Project ReunionのBuilding Awesome Apps for Windows(BAAW)ツールキットを使えば、Windowsプラットフォームのパワーを活用できるに違いありません。

The last one is a little joke, but if Microsoft really wants to sell this vision, you'll need to come up with a better name than Project Reunion.

To explain this vision, think about what it looks like for developers with different starting points.I can't do everything, but I think it's enough to understand how it applies to other scenarios.Note, however, that these scenarios are forecasts based on the current release and the current roadmap.

New application -This is the simplest scenario, and you can create a new application using Visual Studio's "Blank App (Windows)".Developers can select whether the application can be packaged (for Microsoft Store) or to be distributed in various ways without packing it.However, when targeting some platforms (Xbox, HoloLens, Windows 10X, etc.), there may be restrictions such as execution in containers and restrictions on specific API use.

Existing WinForms / WPF application — To utilize new features in WinForms and WPF applications.Net 5 (ideally,.If the Net 6 LTS release is available, you need to migrate.Once the transition is completed, adding reference to Project Reunion will enable you to enjoy the advantages of the gradually added new features.For example, it is possible to incorporate Winui controls and pages in the application, use notifications, and adopt a better app model by power management.In other words, the developer can select whether or not to move the entire application to Winui or not, and at the same time, the function of the Windows Platform published by Project Reunion.It can be used.

Existing UWP application — The UWP application developed today will continue to be executable support.However, this group's technology will not progress significantly from the current state.Therefore, in order to utilize the Windows platform function added to the Project Reunion, the UWP application must be transferred to the Winui 3 in Desktop application.

After UWP

The last scenario, which I mentioned earlier that "Microsoft will not invest in UWP in the future".Here is a supplement.The preview version of Project Reunion and Winui 3 had two projects, "Winui 3 in Desktop" and "Winui 3 in Uwp".But 0 of Project Reunion.At the time of 5 release, only "Winui 3 in Desktop" was supported.On the other hand, there was a big rebound from the UWP developer who felt it was abandoned.

This is because Microsoft had a problem in providing "Winui 3 in Uwp" - from the name "Winui 3 in Uwp", the existing UWP developer is now Winui 2..It's logical to think that Winui 3 controls can be easily integrated in the same way as X.But that is not the case.Since the two XAML frameworks are essentially competing, there is almost no possibility of functioning that way.As a result, supporting Winui 3 on both desktops and UWP means that new technologies needed to support the third party will be released, not one.You may think that binaries are common, so you may just need to build control once, but the problem is that the test and support matrix expands so that it is impossible to control.

When Microsoft releases and supports "Winui 3 in Uwp", it is essential that it provides great benefits for developers.Current Win UI 3 is UWP XAML + Winui 2.Since it is almost the same as X, there are not so many benefits.In addition, investing in Project Reunion is to enable the UWP function to be used by Win32 application developers, and there is no merit in the UWP project that Project Reunion is available.UWP developers remain on UWP as they are, and Winui 2 until Project Reunion is available for the function set used by the UWP application..Continuing the reference of X is the direction to be logically considered.

For example, a very simple UWP application with only XAML using basic functions can now move to Winui 3 in Desktop apps.However, if you are using a function such as a UWP application life cycle or notification, the PROJECT Reunion version 1.You will want to wait until you can switch to 0.If you need to target Xbox or Windows 10X, you may have to wait for the future version of the possible Project Reunion.The restrictions on these platforms cannot now run Win32 -based applications.Until an appropriate avoidance means is developed, the Project Reunion application will not be able to operate on these platforms.This may be one of the rumored delays in Windows 10X, and of course, in 2019, a dual screen Windows device like Surface NEO, which surprised the community by announcing in 2019.

The last thing I want to say about the transition from UWP to Project Reunion is that all UWP application developers should start studying now.It may be 6 months, 12 months, or further ahead of the product application, but it is necessary to start planning because it is unavoidable.I recommend that you share most of the application logic or migrate to a multi -target project to develop a project to reference the project on both UWP and Winui 3 in Desktop.On top of that, if the applications are gradually tested and improved, and if the functions required for the application are available in Project Reunion, the UWP version should be abolished and only the Winui 3 in Desktop version is released.

2021 Roadmap

I've seen the vision of Windows application development, but what position is it now?For this, Winui 2021 Roadmap will give an overview.Project Reunion version 0.The first release of Winui 3 according to 5 and then dealt with some serious problems 0.5.5, 0.5.I have already seen the release of 6.Project Reunion is version 1 in the future.As we proceed to 0, we can expect some gaps that are important for UWP developers who want to shift to be overcome.This includes XAML Island, which allows you to integrate your application life cycle, notification, existing WinForm and WPF applications into Winui components.

Roadmap of Winui and Project Reunion [Source: Windows UI Library Roadmap on GitHub]

For WinForms and WPF developers, the current release of Project Reunion has not many easy -to -use functions.You can also use MRTCORE, which realizes the latest approach to resources (string and image) management, but is not provided as a real Winui building block technology.It is that WinForms and WPF developers can use the innovative UI provided by Winui in earnest 1.0 Release will be approaching and wait for XAML Islands to be available.

Another question I often hear is Project Reunion / Winui.It is a interaction of net.If you look at the timeline, PROJECT REUNION version 1.The release schedule of 0 is scheduled for November.You will notice that it was before the release of Net 6.This shows the independent approach that Microsoft adopts for Project Reunion -just as the minimum dependence on the Windows 10 version is..The dependence on the net is also minimized.Since the core function of Project Reunion is native implementation, with C ++ application.It can be used from any of the Net applications..With Net 6, the Project Reunion application will show further evolution.For example, the development to add AOT support has been implemented, which can have a significant impact on the start performance of the app.

Multi -platform

The explanation so far has focused on explaining the current and future vision for developers who build Windows applications.However, most of the applications need to target other platforms.Most consumer applications must target iOS, Android, and the Web.In corporate applications, Windows and Web versions are usually desired, but the needs to support MacOS users are increasing.As a Windows application developer, wouldn't it be the best if the application works on other platforms?

That's where UNO Platform appears.The initial Unoplatform was for UWP -based applications to enable all or some of them on iOS and Android, but due to recent innovations, web (via webassembly), MacOS, Linux (Linux ().SKIA and GTK are used), and old versions of Windows (Skia and WPF hosts) are also eligible.In addition, the support for developers who want to develop Winui / Project Reunion applications has made it all for all platforms.

It's important to know how much UNO Platform can reach on other platforms, just as developers using WinForms and WPF have started using Project Reunion or Winui for application parts.For example, if you use Winui to add a new page set to the application, you can use Uno Platform to package these pages as other platform applications with all application logic.It will be.

contribution

Developer ecosystem on the construction of Windows applications will change in the next 6 to 12 months.Microsoft has called on all developers to participate in both Winui and Project Reunion teams through GitHub to support the future promotion of the Windows Developer Platform.If you are developing a Windows application, you should understand the benefits of Project Reunion and consider using UNO Platform to extend your application reach into another platform or device.Yes.

About the author

Nick Randolph presides over a consulting company, a consulting company specializing in cross -platform development using various technologies.He has been active in Microsoft MVP (Windows Development), which has more than 20 years of career in Windows and other platform applications, through open source projects, user groups, conference, and blog posts.