Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doc/roadmap updates #3618

Merged
merged 5 commits into from
Nov 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed docs/images/WinUI-Roadmap-Aug2020.jpg
Binary file not shown.
Binary file removed docs/images/WinUI-Roadmap-Sept2020.jpg
Binary file not shown.
Binary file added docs/images/winui-roadmap.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
91 changes: 60 additions & 31 deletions docs/preview_upgrade_instructions.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,69 @@
# Instructions for upgrading a WinUI 3 Preview 1 app to use WinUI 3 Preview 2

While it's possible to upgrade your Preview 1 application to use the new Preview 2 bits, please be careful and follow all steps in order below when doing so. The steps below outline the process that the team had to take while updating their own Preview 1 apps.

If these steps don't work for you, feel free to [file an issue](https://github.com/microsoft/microsoft-ui-xaml/issues/new/choose). The easiest way to work around this is to just create a new Preview 2 project and copy your content over.

## Upgrading steps
1. Make sure all Preview 2 prerequisites are installed. See [installation instructions here](https://aka.ms/winui3/preview2#install-winui-30-preview-2).
2. Use the NuGet package manager (right-click on the project and select “Manage NuGet Packages…” from the context menu)
3. Select the “Microsoft.WinUI” package, ensure that “Include prerelease” is checked, select the latest version of the package, and then click “Upgrade”, accepting prompts that appear
- If you don't see the latest version of the WinUI 3 Preview 2 NuGet package, run the following command in your NuGet package manager console:
`install-package Microsoft.WinUI -Version 3.0.0-preview2.200713.0`
1. Make sure all Preview 3 prerequisites are installed. See [installation instructions here](https://aka.ms/winui3/preview3#install-winui-30-preview-3).
2. Use the NuGet package manager (right-click on the project and select “Manage NuGet Packages…” from the context menu)
3. Run the following command in your NuGet package manager console:

`install-package Microsoft.WinUI -Version 3.0.0-preview2.200713.0`

(TODO: update with final Preview 3 package version)
4. If your project is a C# “Blank App (UWP)”, C# “Class Library (UWP)”, C# “Windows Runtime Component (UWP)”, C++ “Blank App (UWP)”, or C++ “Windows Runtime Component (UWP)” project, then **no further changes are necessary.**
5. If your project is a C# “Class Library (WinUI in Desktop)” project:
- Open the .csproj and change <TargetFramework>netcoreapp5.0</TargetFramework> to <TargetFramework>net5.0</TargetFramework>
- Open the .csproj
- Change `<TargetFramework>net5.0</TargetFramework>` to `<TargetFramework>net5.0-windows10.0.18362.0</TargetFramework>`
- Delete `<TargetPlatformVersion>10.0.18362.0</TargetPlatformVersion>`
- Delete `<Platforms>AnyCPU;x86;x64</Platforms>`
- Change `<RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>` to `<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>`
- Delete `<PackageReference Include="Microsoft.VCRTForwarders.140" Version="1.0.6" />`

6. If your project is a C# “Blank App, Packaged (WinUI in Desktop)” project :
- Open the .csproj in the main app project and change <TargetFramework>netcoreapp5.0</TargetFramework> to <TargetFramework>net5.0</TargetFramework>
- Open the .wapproj in the associated Windows Application Packaging Project and make the following edits:
- Add the following line to the first `<PropertyGroup>` element after `<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.props" />`:
- Open the .csproj in the main app project
- Change `<TargetFramework>net5.0</TargetFramework>` to `<TargetFramework>net5.0-windows10.0.18362.0</TargetFramework>`
- Delete `<TargetPlatformVersion>10.0.18362.0</TargetPlatformVersion>`
- Change `<Platforms>AnyCPU;x86;x64</Platforms>` to `<Platforms>x86;x64;arm64</Platforms>`
- Delete `<SelfContained>true</SelfContained>` and `<RuntimeIdentifier>win-$(Platform)</RuntimeIdentifier>`
- Change `<RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>` to `<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>`
- Open App.xaml.cs and delete the line `"using Microsoft.UI.Threading;"`
- Create a new C# “Blank App, Packaged (WinUI in Desktop)” project, locate the folder containing the associated main app project, and copy the contents of the `“Properties\”` subdirectory (`"PublishProfiles\"`) into the corresponding `“Properties\”` subdirectory of your main app project, creating the `"Properties\"` subdirectory if necessary.

```xml
<AppxTargetsLocation Condition="'$(AppxTargetsLocation)'==''">$(MSBuildThisFileDirectory)build\</AppxTargetsLocation>
```
- Open the .wapproj in the associated Windows Application Packaging Project and make the following edits:
- Add the following XML to the `<ItemGroup Label="ProjectConfigurations">` section:
```xml
<ProjectConfiguration Include="Debug|arm64">
<Configuration>Debug</Configuration>
<Platform>arm64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|arm64">
<Configuration>Release</Configuration>
<Platform>arm64</Platform>
</ProjectConfiguration>
```
- Locate the following code in your .wapproj file:

- Change `<Import Project="build\Microsoft.WinUI.AppX.targets" />` to `<Import Project="$(AppxTargetsLocation)Microsoft.WinUI.AppX.targets" /> `
```xml
<ItemGroup>
<ProjectReference Include="..\<<APP_NAME>>\<<APP_NAME>>.csproj">
<SkipGetTargetFrameworkProperties>True</SkipGetTargetFrameworkProperties>
</ProjectReference>`
</ItemGroup>
```
And add the following line right above the `</ProjectReference>` tag:
```xml
<PublishProfile>Properties\PublishProfiles\win10-$(Platform).pubxml</PublishProfile>
```

- Create a new C# “Blank App, Packaged (WinUI in Desktop)” project, locate the folder containing the associated Windows Application Packaging Project, and copy the contents of the `“build\”` subdirectory (`LiftedWinRTClassRegistrations.xml` and `Microsoft.WinUI.AppX.targets`) into the corresponding `“build\”` subdirectory of your app’s associated Windows Application Packaging Project, overwriting any existing files when prompted.
- Create a new C# “Blank App, Packaged (WinUI in Desktop)” project, locate the folder containing the associated Windows Application Packaging Project, and copy the contents of the `“build\”` subdirectory (`Microsoft.WinUI.AppX.targets`) into the corresponding `“build\”` subdirectory of your app’s associated Windows Application Packaging Project, overwriting any existing files when prompted. Delete the existing `LiftedWinRTClassRegistrations.xml` file in the `"build\"` subdirectory.
7. If your project is a C++ “Blank App, Packaged (WinUI in Desktop)” project:
- Open the .wapproj in the associated Windows Application Packaging Project and make the following edits:

- Add the following line to the first `<PropertyGroup>` element after `<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.props" />`:

```xml
<AppxTargetsLocation Condition="'$(AppxTargetsLocation)'==''">$(MSBuildThisFileDirectory)build\</AppxTargetsLocation>
```
- Change `<Import Project="build\Microsoft.WinUI.AppX.targets" />` to `<Import Project="$(AppxTargetsLocation)Microsoft.WinUI.AppX.targets" />`

- Create a new C++ “Blank App, Packaged (WinUI in Desktop)” project, locate the folder containing the associated Windows Application Packaging Project, and copy the contents of the `“build\”` subdirectory (`LiftedWinRTClassRegistrations.xml` and `Microsoft.WinUI.AppX.targets`) into the corresponding `“build\”` subdirectory of your actual project’s associated Windows Application Packaging Project, overwriting any existing files when prompted

- Open the .wapproj in the associated Windows Application Packaging Project and make the following edits:
- Add the following XML to the `<ItemGroup Label="ProjectConfigurations">` section:
```xml
<ProjectConfiguration Include="Debug|arm64">
<Configuration>Debug</Configuration>
<Platform>arm64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|arm64">
<Configuration>Release</Configuration>
<Platform>arm64</Platform>
</ProjectConfiguration>
```

- Create a new C++ “Blank App, Packaged (WinUI in Desktop)” project, locate the folder containing the associated Windows Application Packaging Project, and copy the contents of the `“build\”` subdirectory (`Microsoft.WinUI.AppX.targets`) into the corresponding `“build\”` subdirectory of your app’s associated Windows Application Packaging Project, overwriting any existing files when prompted. Delete the existing `LiftedWinRTClassRegistrations.xml` file in the `"build\"` subdirectory.
13 changes: 7 additions & 6 deletions docs/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ WinUI 3 will release as a series of preview releases throughout 2020, culminatin

See the image below for a more detailed look at our plans for getting WinUI 3.0 to market:

![Winui roadmap](images/WinUI-Roadmap-Sept2020.jpg)
![Winui roadmap](images/winui-roadmap.jpg)

## WinUI 3.0 Feature Roadmap
We know that for many of our developers, the choice to adopt WinUI 3 is dependent on certain features and capabilities. The table below outlines the status on WinUI 3 features, and the expected date they'll be available to you.
Expand All @@ -118,7 +118,7 @@ For questions or status updates on either features listed here, or features not

Blank - Not included, or not planned to be included

**Preview 2** is our latest release.
**Preview 3** is our latest release.

| Customer Capability | Preview 2 (July 2020) | Preview 3 (Nov 2020) | WinUI 3.0 (2021) | Post-3.0 (3.x releases) |
|-----------------------------------------------------------------------------|-----------------------|----------------------|------------------|------------------|
Expand All @@ -131,12 +131,12 @@ Blank - Not included, or not planned to be included
| Title Bar customization for Desktop apps | &#128311; | &#128311; | &#128994; | &#128994; |
| Fluent Shadows | &#128311; | &#128311; | &#128311; | &#128994; |
| Input validation for data fields | &#128311; | &#128311; | &#129002; | &#128994; |
| Multi-window support for Desktop apps | &#128311; | &#128994; | &#128994; | &#128994; |
| Multi-window support for Desktop apps | &#128311; | &#128311; | &#128994; | &#128994; |
| ARM64 support | | &#128994; | &#128994; | &#128994; |
| Drag and drop | | &#128994; | &#128994; | &#128994; |
| [RenderTargetBitmap](https://docs.microsoft.com/uwp/api/windows.ui.xaml.media.imaging.rendertargetbitmap?view=winrt-19041) | | &#128311; | &#128311; | &#128994; |
| Off-thread input for SwapChainPanels | | &#128994; | &#128994; | &#128994;|
| RenderTargetBitmap | | &#128311; | &#128311; | &#128994; |
| Ready for production apps | | | &#128994; | &#128994; |
| Off-thread input for SwapChainPanels | | | &#129002; | &#128994; |
| Supports non-MSIX deployment | | | | &#128994; |
| .NET 5 Support for UWP apps | | | | &#128994; |
| XAML Islands | | | | &#128994; |
Expand All @@ -149,4 +149,5 @@ Blank - Not included, or not planned to be included
| Media Controls | | | | &#128994; |
| `<InkCanvas>` | | | | &#128994; |
| `<Map Control>` | | | | &#129002; |
\* For Preview 2: Single content tree-only. Supports C# or C++. Includes VSIX-based project templates, XAML Win32 app model support, etc. This will no longer be a restriction in Preview 3.