diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml
index 6ea10c23a45d..d480011e2920 100644
--- a/build/ci/.azure-devops-project-template-tests.yml
+++ b/build/ci/.azure-devops-project-template-tests.yml
@@ -31,8 +31,8 @@ jobs:
artifactName: 'Nuget_Packages'
- template: templates/gitversion.yml
-
- template: templates/dotnet-mobile-install-windows.yml
+ - template: templates/uno-dev-feed.yml
- script: copy $(System.ArtifactsDirectory)\Nuget_Packages\vslatest\*.nupkg $(Build.SourcesDirectory)\src\PackageCache
displayName: Copy Artifacts to PackageCache
@@ -88,6 +88,7 @@ jobs:
xCodeRoot: ${{ parameters.xCodeRoot }}
- template: templates/dotnet-mobile-install-mac.yml
+ - template: templates/uno-dev-feed.yml
- powershell: cp $(System.ArtifactsDirectory)/Nuget_Packages/vslatest/*.nupkg $(Build.SourcesDirectory)/src/PackageCache
displayName: Copy Artifacts to PackageCache
@@ -126,11 +127,10 @@ jobs:
artifactName: 'Nuget_Packages'
- template: templates/gitversion.yml
-
- template: templates/dotnet-mobile-install-linux.yml
-
- template: templates/gitversion.yml
-
+ - template: templates/uno-dev-feed.yml
+
- script: cp $(System.ArtifactsDirectory)/Nuget_Packages/vslatest/*.nupkg $(Build.SourcesDirectory)/src/PackageCache
displayName: Copy Artifacts to PackageCache
diff --git a/build/ci/templates/uno-dev-feed.yml b/build/ci/templates/uno-dev-feed.yml
new file mode 100644
index 000000000000..bc6a002029cc
--- /dev/null
+++ b/build/ci/templates/uno-dev-feed.yml
@@ -0,0 +1,7 @@
+parameters:
+ nugetPackages: '$(Pipeline.Workspace)/.nuget/packages'
+
+steps:
+
+ - pwsh: dotnet nuget add source https://pkgs.dev.azure.com/uno-platform/1dd81cbd-cb35-41de-a570-b0df3571a196/_packaging/unoplatformdev/nuget/v3/index.json -n "uno-dev"
+ displayName: Add dev feed source
diff --git a/doc/articles/features/working-with-xaml-hot-reload.md b/doc/articles/features/working-with-xaml-hot-reload.md
index da8a2d3bcf96..c32f95322b95 100644
--- a/doc/articles/features/working-with-xaml-hot-reload.md
+++ b/doc/articles/features/working-with-xaml-hot-reload.md
@@ -293,7 +293,7 @@ Mobile targets are currently using a limited version of XAML Hot Reload and do n
## Hot Reload Indicator
-Hot Reload displays a visual indicator to help you further monitor changes while developing. It displays new information every time Hot Reload is triggered. The indicator is enabled by default within the `EnableHotReload()` method which is located in the root `App.xaml.cs` file. This displays an overlay which hosts the visual indicator. If you wish to disable it, you simply have to provide the following boolean: `EnableHotReload(disableIndicator: true)`, removing the overlay from the view.
+Hot Reload displays a visual indicator to help you further monitor changes while developing. It displays new information every time Hot Reload is triggered. The indicator is enabled by default within the `UseStudio()` method which is located in the root `App.xaml.cs` file. This displays an overlay which hosts the visual indicator. If you wish to disable it, you simply have to provide the following boolean: `EnableHotReload(disableIndicator: true)`, removing the overlay from the view.
@@ -370,7 +370,7 @@ Here's a summary of what icons and statuses you can expect:
//... in the OnLaunched method
#if DEBUG
- MainWindow.EnableHotReload();
+ MainWindow.UseStudio();
#endif
```
diff --git a/doc/articles/migrating-from-previous-releases.md b/doc/articles/migrating-from-previous-releases.md
index 6a4c5ff874f3..83be4df90077 100644
--- a/doc/articles/migrating-from-previous-releases.md
+++ b/doc/articles/migrating-from-previous-releases.md
@@ -17,6 +17,10 @@ A few considerations to take into account:
- Moving to .NET 9 or upgrading .NET 9 projects now require the use of .NET 9 RC2 and Visual Studio 17.12 Preview 3.
- To migrate a project to .NET 9, [read the directions](xref:Uno.Development.MigratingFromNet8ToNet9) from our documentation.
+### The EnableHotReload method is deprecated
+
+When upgrading to Uno 5.5, in the `App.xaml.cs` file, the `EnableHotReload()` method is deprecated and must be replaced with `UseStudio()` instead.
+
## Uno Platform 5.4
Uno Platform 5.4 contains breaking changes for Uno.Extensions.
diff --git a/doc/articles/migrating-to-uno-5.md b/doc/articles/migrating-to-uno-5.md
index 3c8b93add58b..d5466ef9f1e5 100644
--- a/doc/articles/migrating-to-uno-5.md
+++ b/doc/articles/migrating-to-uno-5.md
@@ -44,7 +44,7 @@ Hot Reload support has changed in Uno Platform 5.0 and a new API invocation is n
//... in the OnLaunched method
#if DEBUG
- MainWindow.EnableHotReload();
+ MainWindow.UseStudio();
#endif
```
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 43c8b2315996..de865103a91d 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -223,6 +223,9 @@
$(NoWarn);CS0436
+
+
+ $(NoWarn);UNO0008
diff --git a/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs b/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs
index 62e506b2f697..b52a5c4e507a 100644
--- a/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs
+++ b/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs
@@ -9,7 +9,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args)
MainWindow = new Window();
#if DEBUG
- MainWindow.EnableHotReload();
+ MainWindow.UseStudio();
#endif
diff --git a/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs b/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs
index 19b13588d50f..02b6c1e4e73d 100644
--- a/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs
+++ b/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs
@@ -75,7 +75,7 @@ protected async override void OnLaunched(LaunchActivatedEventArgs args)
MainWindow = builder.Window;
#if DEBUG
- MainWindow.EnableHotReload();
+ MainWindow.UseStudio();
#endif
Host = await builder.NavigateAsync();
diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs
index fc6929ae914b..bf27f78b2815 100644
--- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs
+++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs
@@ -21,7 +21,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args)
{
MainWindow = new Window();
#if DEBUG
- MainWindow.EnableHotReload();
+ MainWindow.UseStudio();
#endif
diff --git a/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs b/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs
index 3d3bb856f7be..1979f64729ea 100644
--- a/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs
+++ b/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs
@@ -21,7 +21,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args)
{
MainWindow = new Window();
#if DEBUG
- MainWindow.EnableHotReload();
+ MainWindow.UseStudio();
#endif
diff --git a/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs b/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs
index 622781bbb6d5..302b0aab62db 100644
--- a/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs
+++ b/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs
@@ -21,7 +21,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args)
{
MainWindow = new Window();
#if DEBUG
- MainWindow.EnableHotReload();
+ MainWindow.UseStudio();
#endif
diff --git a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json
index bf5cf925b110..5e5918a36b3a 100644
--- a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json
+++ b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json
@@ -234,6 +234,10 @@
"description": "Provides an explicit override for the version of Uno.Settings to use.",
"type": "nuget-version"
},
+ "UnoHotDesignVersion": {
+ "description": "Provides an explicit override for the version of Uno.HotDesign to use.",
+ "type": "nuget-version"
+ },
"MicrosoftLoggingVersion": {
"description": "Provides an explicit override for the version of Microsoft.Extensions.Logging to use.",
"type": "nuget-version"
diff --git a/src/Uno.Sdk/Services/PackageManifest.cs b/src/Uno.Sdk/Services/PackageManifest.cs
index a212120e9308..208ec470be13 100644
--- a/src/Uno.Sdk/Services/PackageManifest.cs
+++ b/src/Uno.Sdk/Services/PackageManifest.cs
@@ -138,6 +138,7 @@ public class Group
public const string Resizetizer = nameof(Resizetizer);
public const string SdkExtras = nameof(SdkExtras);
public const string Settings = nameof(Settings);
+ public const string HotDesign = nameof(HotDesign);
public const string SkiaSharp = nameof(SkiaSharp);
public const string SvgSkia = nameof(SvgSkia);
public const string WinAppSdk = nameof(WinAppSdk);
diff --git a/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs b/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs
index ba60a5f67d5d..5a6e6a621e51 100644
--- a/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs
+++ b/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs
@@ -85,6 +85,8 @@ public sealed class ImplicitPackagesResolver_v0 : Task
public string? UnoSettingsVersion { get; set; }
+ public string? UnoHotDesignVersion { get; set; }
+
public string? MicrosoftLoggingVersion { get; set; }
public string? WinAppSdkVersion { get; set; }
@@ -246,6 +248,7 @@ private void SetupRuntimePackageManifestUpdates(PackageManifest manifest)
.UpdateManifest(PackageManifest.Group.Resizetizer, UnoResizetizerVersion)
.UpdateManifest(PackageManifest.Group.SdkExtras, UnoSdkExtrasVersion)
.UpdateManifest(PackageManifest.Group.Settings, UnoSettingsVersion)
+ .UpdateManifest(PackageManifest.Group.HotDesign, UnoHotDesignVersion)
.UpdateManifest(PackageManifest.Group.SkiaSharp, SkiaSharpVersion)
.UpdateManifest(PackageManifest.Group.SvgSkia, SvgSkiaVersion)
.UpdateManifest(PackageManifest.Group.WinAppSdk, WinAppSdkVersion)
diff --git a/src/Uno.Sdk/packages.json b/src/Uno.Sdk/packages.json
index ce74950b283e..56348beaf653 100644
--- a/src/Uno.Sdk/packages.json
+++ b/src/Uno.Sdk/packages.json
@@ -85,6 +85,13 @@
"Uno.Settings.DevServer"
]
},
+ {
+ "group": "hotdesign",
+ "version": "1.0.0-dev.3",
+ "packages": [
+ "Uno.UI.HotDesign"
+ ]
+ },
{
"group": "SkiaSharp",
"version": "2.88.8",
diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets
index e0880a8dce18..ce5194b7d6b3 100644
--- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets
+++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets
@@ -9,6 +9,7 @@
<_UnoProjectSystemPackageReference Include="Uno.Resizetizer" ProjectSystem="true" PrivateAssets="all" />
<_UnoProjectSystemPackageReference Include="Uno.Sdk.Extras" ProjectSystem="true" PrivateAssets="all" />
<_UnoProjectSystemPackageReference Include="Uno.Settings.DevServer" ProjectSystem="true" PrivateAssets="all" />
+ <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" PrivateAssets="all" />
diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets
index ec578d78d73e..53ff56988041 100644
--- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets
+++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets
@@ -63,6 +63,7 @@
UnoResizetizerVersion="$(UnoResizetizerVersion)"
UnoSdkExtrasVersion="$(UnoSdkExtrasVersion)"
UnoSettingsVersion="$(UnoSettingsVersion)"
+ UnoHotDesignVersion="$(UnoHotDesignVersion)"
MicrosoftLoggingVersion="$(MicrosoftLoggingVersion)"
WinAppSdkVersion="$(WinAppSdkVersion)"
WinAppSdkBuildToolsVersion="$(WinAppSdkBuildToolsVersion)"
diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs
index 5069bd7935a2..0a38206683d8 100644
--- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs
+++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs
@@ -499,7 +499,7 @@ private static void UpdateApplicationCore(Type[] types)
#endif
else
{
- var errorMsg = $"Unable to access Dispatcher/DispatcherQueue in order to invoke {nameof(ReloadWithUpdatedTypes)}. Make sure you have enabled hot-reload (Window.EnableHotReload()) in app startup. See https://aka.platform.uno/hot-reload";
+ var errorMsg = $"Unable to access Dispatcher/DispatcherQueue in order to invoke {nameof(ReloadWithUpdatedTypes)}. Make sure you have enabled hot-reload (Window.UseStudio()) in app startup. See https://aka.platform.uno/hot-reload";
hr?.ReportError(new InvalidOperationException(errorMsg));
if (_log.IsEnabled(LogLevel.Warning))
{
diff --git a/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs b/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs
index 7f268ae0b9ce..4c3db93087f1 100644
--- a/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs
+++ b/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs
@@ -2,6 +2,7 @@
using Uno.UI.RemoteControl.HotReload;
using Microsoft.UI.Xaml;
using Uno.Diagnostics.UI;
+using System.ComponentModel;
namespace Uno.UI;
@@ -14,6 +15,9 @@ public static class WindowExtensions
/// Enables the UI Update cycle of HotReload to be handled by Uno
///
/// The window of the application where UI updates will be applied
+ [Obsolete("Use the UseStudio() method instead", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")]
+ [Browsable(false)]
+ [EditorBrowsable(EditorBrowsableState.Never)]
public static void EnableHotReload(this Window window)
=> ClientHotReloadProcessor.SetWindow(window, false);
@@ -22,6 +26,9 @@ public static void EnableHotReload(this Window window)
///
/// The window of the application where UI updates will be applied
/// Request to not show the on-canvas indicator by default.
+ [Obsolete("Use the UseStudio() method instead", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")]
+ [Browsable(false)]
+ [EditorBrowsable(EditorBrowsableState.Never)]
public static void EnableHotReload(this Window window, bool disableIndicator)
=> ClientHotReloadProcessor.SetWindow(window, disableIndicator);