From 16cdc94dd55b19e5a4c14b9638c70bcfa9175188 Mon Sep 17 00:00:00 2001 From: Iakov Lilo Date: Fri, 21 Mar 2025 12:14:03 +1100 Subject: [PATCH 1/2] Add Photino template --- .../AppConfigurationWindow.xaml | 2 +- .../AppConfigurationWindow.xaml.cs | 70 ++++---------- .../Models/TargetPlatform.cs | 1 + .../AppCustomizationWindow/PlatformsView.xaml | 21 +++-- .../OpenSilver.TemplateWizards.csproj | 3 +- .../Shared/GlobalConstants.cs | 10 +- .../Utils/VisualStudioInstallationChecker.cs | 37 -------- .../Utils/WizardUtilities.cs | 87 ++++++++++++++++++ .../Wizards/AppCustomizationWizard.cs | 61 +++++++++--- .../MauiHybridProjectTemplateWizard.cs | 66 +------------ .../Wizards/PhotinoProjectTemplateWizard.cs | 58 ++++++++++++ src/OpenSilver.VSIX/OpenSilver.VSIX.csproj | 7 ++ .../source.extension.vsixmanifest | 3 +- .../Components/Index.cs | 2 +- .../OpenSilverPhotinoTemplate.csproj | 83 +++++++++++++++++ .../OpenSilverPhotinoTemplate.ico | Bin 0 -> 44043 bytes .../OpenSilverPhotinoTemplate.vstemplate | 36 ++++++++ src/OpenSilverPhotinoTemplate/Program.cs | 29 ++++++ .../ProjectTemplate.csproj | 47 ++++++++++ .../Properties/AssemblyInfo.cs | 36 ++++++++ .../Properties/launchSettings.json | 7 ++ src/OpenSilverPhotinoTemplate/app.ico | Bin 0 -> 204074 bytes .../wwwroot/index.html | 14 +++ src/TestWizard/App.xaml.cs | 13 ++- src/VSExtension.OpenSilver.sln | 14 +++ 25 files changed, 528 insertions(+), 179 deletions(-) delete mode 100644 src/OpenSilver.TemplateWizards/Utils/VisualStudioInstallationChecker.cs create mode 100644 src/OpenSilver.TemplateWizards/Utils/WizardUtilities.cs create mode 100644 src/OpenSilver.TemplateWizards/Wizards/PhotinoProjectTemplateWizard.cs create mode 100644 src/OpenSilverPhotinoTemplate/OpenSilverPhotinoTemplate.csproj create mode 100644 src/OpenSilverPhotinoTemplate/OpenSilverPhotinoTemplate.ico create mode 100644 src/OpenSilverPhotinoTemplate/OpenSilverPhotinoTemplate.vstemplate create mode 100644 src/OpenSilverPhotinoTemplate/Program.cs create mode 100644 src/OpenSilverPhotinoTemplate/ProjectTemplate.csproj create mode 100644 src/OpenSilverPhotinoTemplate/Properties/AssemblyInfo.cs create mode 100644 src/OpenSilverPhotinoTemplate/Properties/launchSettings.json create mode 100644 src/OpenSilverPhotinoTemplate/app.ico create mode 100644 src/OpenSilverPhotinoTemplate/wwwroot/index.html diff --git a/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml b/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml index e71d0a7..6fdfc39 100644 --- a/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml +++ b/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml @@ -57,7 +57,7 @@ - diff --git a/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml.cs b/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml.cs index f4c1e8a..b9017bd 100644 --- a/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml.cs +++ b/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml.cs @@ -3,7 +3,7 @@ using OpenSilver.TemplateWizards.AppCustomizationWindow.Models; using OpenSilver.TemplateWizards.Shared; using OpenSilver.TemplateWizards.Utils; -using System; +using System.Collections.Generic; using System.Linq; using System.Windows; @@ -50,30 +50,15 @@ public MauiHybridPlatform MauiHybridPlatform { get { - MauiHybridPlatform platforms = MauiHybridPlatform.None; - - foreach (var platform in platformList.SelectedItems.OfType()) - { - switch (platform.Title.ToLower()) - { - case "ios": - platforms |= MauiHybridPlatform.iOS; - break; - case "android": - platforms |= MauiHybridPlatform.Android; - break; - case "windows": - platforms |= MauiHybridPlatform.Windows; - break; - case "macos": - platforms |= MauiHybridPlatform.Mac; - break; - default: - break; - } - } + return GetMauiHybridPlatforms(platformList.SelectedItems.OfType()); + } + } - return platforms; + public bool IsPhotinoSelected + { + get + { + return platformList.SelectedItems.OfType().Any(p => p.Tag?.ToString() == "linux"); } } @@ -97,40 +82,21 @@ public AppConfigurationWindow(EnvDTE.DTE dte = null, bool isBusiness = false) } } - private bool ValidateMaui() + private MauiHybridPlatform GetMauiHybridPlatforms(IEnumerable targetPlatforms) { - if (MauiHybridPlatform == MauiHybridPlatform.None) - { - return true; - } + MauiHybridPlatform platforms = MauiHybridPlatform.None; - if (_dte != null) + foreach (var tp in targetPlatforms) { - ThreadHelper.ThrowIfNotOnUIThread(); - } + object tagValue = tp.Tag; - try - { - if (_dte != null) + if (tagValue is MauiHybridPlatform platform) { - var serviceProvider = new ServiceProvider((Microsoft.VisualStudio.OLE.Interop.IServiceProvider)_dte); - - var checker = new MauiInstallationChecker(serviceProvider); - bool mauiInstalled = checker.IsMauiInstalled(); - - if (mauiInstalled) - { - return true; - } + platforms |= platform; } - - return new InstallMauiWindow().ShowDialog() == true; - } - catch (System.Exception ex) - { - MessageBox.Show($"Exception: {ex.Message}"); - return true; } + + return platforms; } private void ButtonContinue_Click(object sender, RoutedEventArgs e) @@ -147,7 +113,7 @@ private void ThemeCollectionView_SelectionChanged(object sender, ThemeOptions th private void PlatformList_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { - if (MauiHybridPlatform != MauiHybridPlatform.None && e.AddedItems.Count != 0 && !IsMauiInstalled) + if (GetMauiHybridPlatforms(e.AddedItems.OfType()) != MauiHybridPlatform.None && !IsMauiInstalled) { if (new InstallMauiWindow().ShowDialog() != true) { diff --git a/src/OpenSilver.TemplateWizards/AppCustomizationWindow/Models/TargetPlatform.cs b/src/OpenSilver.TemplateWizards/AppCustomizationWindow/Models/TargetPlatform.cs index 9b89826..a9f6a84 100644 --- a/src/OpenSilver.TemplateWizards/AppCustomizationWindow/Models/TargetPlatform.cs +++ b/src/OpenSilver.TemplateWizards/AppCustomizationWindow/Models/TargetPlatform.cs @@ -7,5 +7,6 @@ public class TargetPlatform public string ThumbnailUri { get; set; } public double Opacity { get; set; } = 0.6; public bool IsAlwaysSelected { get; set; } + public object Tag { get; set; } } } diff --git a/src/OpenSilver.TemplateWizards/AppCustomizationWindow/PlatformsView.xaml b/src/OpenSilver.TemplateWizards/AppCustomizationWindow/PlatformsView.xaml index d01e0d6..9faaa7f 100644 --- a/src/OpenSilver.TemplateWizards/AppCustomizationWindow/PlatformsView.xaml +++ b/src/OpenSilver.TemplateWizards/AppCustomizationWindow/PlatformsView.xaml @@ -4,6 +4,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:models="clr-namespace:OpenSilver.TemplateWizards.AppCustomizationWindow.Models" + xmlns:shared="clr-namespace:OpenSilver.TemplateWizards.Shared" d:DesignHeight="150" d:DesignWidth="700" d:SelectedIndex="1" @@ -175,20 +176,26 @@ Framework="WebAssembly" IsAlwaysSelected="True" Opacity="1" - ThumbnailUri="/OpenSilver.TemplateWizards;component/Assets/Images/platform_web.png"/> + ThumbnailUri="/OpenSilver.TemplateWizards;component/Assets/Images/platform_web.png" + Tag="web"/> + ThumbnailUri="/OpenSilver.TemplateWizards;component/Assets/Images/platform_apple.png" + Tag="{x:Static shared:MauiHybridPlatform.iOS}"/> + ThumbnailUri="/OpenSilver.TemplateWizards;component/Assets/Images/platform_android.png" + Tag="{x:Static shared:MauiHybridPlatform.Android}"/> + ThumbnailUri="/OpenSilver.TemplateWizards;component/Assets/Images/platform_windows.png" + Tag="{x:Static shared:MauiHybridPlatform.Windows}"/> - + ThumbnailUri="/OpenSilver.TemplateWizards;component/Assets/Images/platform_linux.png" + Tag="linux"/> diff --git a/src/OpenSilver.TemplateWizards/OpenSilver.TemplateWizards.csproj b/src/OpenSilver.TemplateWizards/OpenSilver.TemplateWizards.csproj index 4449415..817706a 100644 --- a/src/OpenSilver.TemplateWizards/OpenSilver.TemplateWizards.csproj +++ b/src/OpenSilver.TemplateWizards/OpenSilver.TemplateWizards.csproj @@ -63,7 +63,7 @@ ThemeCollectionView.xaml - + @@ -72,6 +72,7 @@ + diff --git a/src/OpenSilver.TemplateWizards/Shared/GlobalConstants.cs b/src/OpenSilver.TemplateWizards/Shared/GlobalConstants.cs index 4fb9281..c47affb 100644 --- a/src/OpenSilver.TemplateWizards/Shared/GlobalConstants.cs +++ b/src/OpenSilver.TemplateWizards/Shared/GlobalConstants.cs @@ -6,16 +6,18 @@ namespace OpenSilver.TemplateWizards.Shared /// public static class GlobalConstants { - public const string OpenSilverMauiHybridPackageVersion = "3.2.0"; + public const string OpenSilverMauiHybridPackageVersion = "3.3.0-preview-*"; - public const string OpenSilverPackageVersion = "3.2.0"; + public const string OpenSilverPackageVersion = "3.3.0-preview-*"; - public const string OpenSilverSimulatorPackageVersion = "3.2.0"; + public const string OpenSilverSimulatorPackageVersion = "3.3.0-preview-*"; - public const string OpenSilverWebAssemblyPackageVersion = "3.2.0"; + public const string OpenSilverWebAssemblyPackageVersion = "3.3.0-preview-*"; public const string OpenRia46PackageVersion = "3.2.0"; public const string OpenSilverThemeModernPackageVersion = "3.2.*"; + + public const string OpenSilverPhotinoPackageVersion = "3.3.0-preview-*"; } } diff --git a/src/OpenSilver.TemplateWizards/Utils/VisualStudioInstallationChecker.cs b/src/OpenSilver.TemplateWizards/Utils/VisualStudioInstallationChecker.cs deleted file mode 100644 index 8236f07..0000000 --- a/src/OpenSilver.TemplateWizards/Utils/VisualStudioInstallationChecker.cs +++ /dev/null @@ -1,37 +0,0 @@ -using Microsoft.VisualStudio.Setup.Configuration; -using System.Linq; - -namespace OpenSilver.TemplateWizards.Utils -{ - public class VisualStudioInstallationChecker - { - public bool IsMauiInstalled() - { - var query = new SetupConfiguration(); - var enumInstances = query.EnumAllInstances(); - - int fetched; - var instances = new ISetupInstance[1]; - - do - { - enumInstances.Next(1, instances, out fetched); - if (fetched > 0) - { - var instance2 = (ISetupInstance2)instances[0]; - var packages = instance2.GetPackages(); - - bool mauiInstalled = packages.Any(package => package.GetId().Contains("Microsoft.VisualStudio.Workload.NetCrossPlat")); - - if (mauiInstalled) - { - return true; - } - } - } - while (fetched > 0); - - return false; - } - } -} diff --git a/src/OpenSilver.TemplateWizards/Utils/WizardUtilities.cs b/src/OpenSilver.TemplateWizards/Utils/WizardUtilities.cs new file mode 100644 index 0000000..3c29781 --- /dev/null +++ b/src/OpenSilver.TemplateWizards/Utils/WizardUtilities.cs @@ -0,0 +1,87 @@ +using EnvDTE; +using EnvDTE80; +using Microsoft.VisualStudio.Shell; +using OpenSilver.TemplateWizards.Shared; +using System.Collections.Generic; + +namespace OpenSilver.TemplateWizards.Utils +{ + /// + /// Utility class providing common functionality for wizards + /// + public static class WizardUtilities + { + /// + /// Gets all projects within a given project, including those in solution folders + /// + /// The project to search + /// Enumeration of all projects + private static IEnumerable GetProjects(Project project) + { + ThreadHelper.ThrowIfNotOnUIThread(); + + // If this is a solution folder, it can contain other projects + if (project.Kind == ProjectKinds.vsProjectKindSolutionFolder) + { + foreach (ProjectItem projectItem in project.ProjectItems) + { + var subProject = projectItem.SubProject; + if (subProject != null) + { + foreach (var nested in GetProjects(subProject)) + { + yield return nested; + } + } + } + } + else + { + yield return project; + } + } + + /// + /// Gets all projects within a solution + /// + /// The solution to search + /// Enumeration of all projects in the solution + public static IEnumerable GetAllProjects(Solution2 solution) + { + ThreadHelper.ThrowIfNotOnUIThread(); + + foreach (Project topLevelProject in solution.Projects) + { + foreach (Project p in GetProjects(topLevelProject)) + { + yield return p; + } + } + } + + /// + /// Converts a DotNetVersion enum value to its corresponding target framework moniker string + /// + /// The .NET version to convert + /// The target framework moniker as a string (e.g., "net8.0") + public static string GetNetTarget(DotNetVersion netTarget) + { + if (netTarget == DotNetVersion.Net7) + { + return "net7.0"; + } + + if (netTarget == DotNetVersion.Net8) + { + return "net8.0"; + } + + if (netTarget == DotNetVersion.Net9) + { + return "net9.0"; + } + + return ""; + } + } +} diff --git a/src/OpenSilver.TemplateWizards/Wizards/AppCustomizationWizard.cs b/src/OpenSilver.TemplateWizards/Wizards/AppCustomizationWizard.cs index 6b087bf..64770a6 100644 --- a/src/OpenSilver.TemplateWizards/Wizards/AppCustomizationWizard.cs +++ b/src/OpenSilver.TemplateWizards/Wizards/AppCustomizationWizard.cs @@ -83,6 +83,7 @@ class AppCustomizationWizard : IWizard private DTE _dte; private MauiHybridPlatform _mauiHybridPlatform; + private bool _isPhotinoSelected; private DotNetVersion _dotNetVersion; private static string GetVsixFullPath(string filename) @@ -193,20 +194,8 @@ private string GetLoadingIndicatorHtml(ThemeOptions selectedTheme) return ModernLoadingAnimation; } - public void ProjectItemFinishedGenerating(ProjectItem projectItem) - { - - } - - public void RunFinished() + private void AddMauiHybrid() { - Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); - - if (_mauiHybridPlatform == MauiHybridPlatform.None) - { - return; - } - try { var projectName = _replacementsDictionary["$safeprojectname$"]; @@ -231,6 +220,51 @@ public void RunFinished() } } + private void AddPhotino() + { + try + { + var projectName = _replacementsDictionary["$safeprojectname$"]; + var destinationDirectory = _replacementsDictionary["$destinationdirectory$"]; + + var templateName = "OpenSilverPhotinoTemplate"; + var solution = (Solution2)_dte.Solution; + + var photinoProjectName = projectName + ".Photino"; + var photinoDestinationDirectory = Path.Combine(destinationDirectory, photinoProjectName); + + var sharedDataStore = GlobalWizardDataStore.GetSharedData(photinoDestinationDirectory); + sharedDataStore[WizardKeys.NetTarget] = _dotNetVersion; + + var prjTemplate = solution.GetProjectTemplate(templateName, "CSharp"); + solution.AddFromTemplate(prjTemplate, photinoDestinationDirectory, photinoProjectName); + } + catch (Exception ex) + { + MessageBox.Show($"{ex}"); + } + } + + public void ProjectItemFinishedGenerating(ProjectItem projectItem) + { + + } + + public void RunFinished() + { + Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); + + if (_mauiHybridPlatform != MauiHybridPlatform.None) + { + AddMauiHybrid(); + } + + if (_isPhotinoSelected) + { + AddPhotino(); + } + } + public void RunStarted(object automationObject, Dictionary replacementsDictionary, WizardRunKind runKind, object[] customParams) { @@ -275,6 +309,7 @@ public void RunStarted(object automationObject, Dictionary repla CopyNugetConfig(replacementsDictionary); _mauiHybridPlatform = window.MauiHybridPlatform; + _isPhotinoSelected = window.IsPhotinoSelected; _dotNetVersion = window.DotNetVersion; replacementsDictionary.Add("$opensilverpackageversion$", GlobalConstants.OpenSilverPackageVersion); diff --git a/src/OpenSilver.TemplateWizards/Wizards/MauiHybridProjectTemplateWizard.cs b/src/OpenSilver.TemplateWizards/Wizards/MauiHybridProjectTemplateWizard.cs index a473b65..73be025 100644 --- a/src/OpenSilver.TemplateWizards/Wizards/MauiHybridProjectTemplateWizard.cs +++ b/src/OpenSilver.TemplateWizards/Wizards/MauiHybridProjectTemplateWizard.cs @@ -6,49 +6,12 @@ using System.Linq; using EnvDTE80; using OpenSilver.TemplateWizards.Shared; -using OpenSilver.TemplateWizards.AppCustomizationWindow; +using OpenSilver.TemplateWizards.Utils; namespace OpenSilver.TemplateWizards.Wizards { class MauiHybridProjectTemplateWizard : IWizard { - private static IEnumerable GetProjects(Project project) - { - ThreadHelper.ThrowIfNotOnUIThread(); - - // If this is a solution folder, it can contain other projects - if (project.Kind == ProjectKinds.vsProjectKindSolutionFolder) - { - foreach (ProjectItem projectItem in project.ProjectItems) - { - var subProject = projectItem.SubProject; - if (subProject != null) - { - foreach (var nested in GetProjects(subProject)) - { - yield return nested; - } - } - } - } - else - { - yield return project; - } - } - - private static IEnumerable GetAllProjects(Solution2 solution) - { - ThreadHelper.ThrowIfNotOnUIThread(); - - foreach (Project topLevelProject in solution.Projects) - { - foreach (Project p in GetProjects(topLevelProject)) - { - yield return p; - } - } - } public void BeforeOpeningFile(ProjectItem projectItem) { @@ -74,7 +37,7 @@ public void RunStarted(object automationObject, Dictionary repla var _dte = automationObject as DTE; var solution = (Solution2)_dte.Solution; - var allProjects = GetAllProjects(solution); + var allProjects = WizardUtilities.GetAllProjects(solution); var rootProject = allProjects.FirstOrDefault(p => p.Name == rootProjectName); var rootProjectExtension = System.IO.Path.GetExtension(rootProject?.FullName ?? "stub.csproj"); @@ -104,33 +67,14 @@ private string GetWindowsTarget(DotNetVersion netTarget, MauiHybridPlatform mhp) { //Only windows //return $"{Environment.NewLine} {GetNetTarget(netTarget)}-windows10.0.19041.0"; - return $"{Environment.NewLine} {GetNetTarget(netTarget)}-windows10.0.19041.0"; + return $"{Environment.NewLine} {WizardUtilities.GetNetTarget(netTarget)}-windows10.0.19041.0"; } else { - return $"{Environment.NewLine} $(TargetFrameworks);{GetNetTarget(netTarget)}-windows10.0.19041.0"; + return $"{Environment.NewLine} $(TargetFrameworks);{WizardUtilities.GetNetTarget(netTarget)}-windows10.0.19041.0"; } } - private string GetNetTarget(DotNetVersion netTarget) - { - if (netTarget == DotNetVersion.Net7) - { - return "net7.0"; - } - - if (netTarget == DotNetVersion.Net8) - { - return "net8.0"; - } - - if (netTarget == DotNetVersion.Net9) - { - return "net9.0"; - } - - return ""; - } private string GetMauiPlatformsBasic(DotNetVersion netTarget, MauiHybridPlatform mhp) { if (mhp == MauiHybridPlatform.None || mhp == MauiHybridPlatform.Windows) @@ -138,7 +82,7 @@ private string GetMauiPlatformsBasic(DotNetVersion netTarget, MauiHybridPlatform return ""; } - var netVersion = GetNetTarget(netTarget); + var netVersion = WizardUtilities.GetNetTarget(netTarget); var targets = new List(); if ((mhp & MauiHybridPlatform.Android) == MauiHybridPlatform.Android) diff --git a/src/OpenSilver.TemplateWizards/Wizards/PhotinoProjectTemplateWizard.cs b/src/OpenSilver.TemplateWizards/Wizards/PhotinoProjectTemplateWizard.cs new file mode 100644 index 0000000..d7ae216 --- /dev/null +++ b/src/OpenSilver.TemplateWizards/Wizards/PhotinoProjectTemplateWizard.cs @@ -0,0 +1,58 @@ +using EnvDTE; +using EnvDTE80; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.TemplateWizard; +using OpenSilver.TemplateWizards.Shared; +using OpenSilver.TemplateWizards.Utils; +using System.Collections.Generic; +using System.Linq; + +namespace OpenSilver.TemplateWizards.Wizards +{ + class PhotinoProjectTemplateWizard : IWizard + { + public void BeforeOpeningFile(ProjectItem projectItem) + { + } + + public void ProjectFinishedGenerating(Project project) + { + } + + public void ProjectItemFinishedGenerating(ProjectItem projectItem) + { + } + + public void RunFinished() + { + } + + public void RunStarted(object automationObject, Dictionary replacementsDictionary, WizardRunKind runKind, object[] customParams) + { + ThreadHelper.ThrowIfNotOnUIThread(); + + var rootProjectName = replacementsDictionary["$safeprojectname$"].TrimSuffix(".Photino"); + + var _dte = automationObject as DTE; + var solution = (Solution2)_dte.Solution; + var allProjects = WizardUtilities.GetAllProjects(solution); + + var rootProject = allProjects.FirstOrDefault(p => p.Name == rootProjectName); + var rootProjectExtension = System.IO.Path.GetExtension(rootProject?.FullName ?? "stub.csproj"); + + replacementsDictionary.Add("$opensilverphotinopackageversion$", GlobalConstants.OpenSilverPhotinoPackageVersion); + replacementsDictionary.Add("$rootprojectname$", rootProjectName); + replacementsDictionary.Add("$rootprojectextension$", rootProjectExtension); + + var sharedDataStore = GlobalWizardDataStore.GetSharedData(replacementsDictionary["$destinationdirectory$"]); + var netTarget = (DotNetVersion)sharedDataStore[WizardKeys.NetTarget]; + + replacementsDictionary.Add("$targetframework$", WizardUtilities.GetNetTarget(netTarget)); + } + + public bool ShouldAddProjectItem(string filePath) + { + return true; + } + } +} diff --git a/src/OpenSilver.VSIX/OpenSilver.VSIX.csproj b/src/OpenSilver.VSIX/OpenSilver.VSIX.csproj index c473ca0..019d0f2 100644 --- a/src/OpenSilver.VSIX/OpenSilver.VSIX.csproj +++ b/src/OpenSilver.VSIX/OpenSilver.VSIX.csproj @@ -215,6 +215,13 @@ false TemplateProjectOutputGroup%3b + + {61E9303A-70BB-47DF-BB47-38507FA2EF06} + OpenSilverPhotinoTemplate + ProjectTemplates + false + TemplateProjectOutputGroup%3b + {229629ac-c4e0-4848-9cfa-31064c9d83a3} OpenSilverVBApplicationTemplate diff --git a/src/OpenSilver.VSIX/source.extension.vsixmanifest b/src/OpenSilver.VSIX/source.extension.vsixmanifest index 5d4e054..93aa82f 100644 --- a/src/OpenSilver.VSIX/source.extension.vsixmanifest +++ b/src/OpenSilver.VSIX/source.extension.vsixmanifest @@ -1,7 +1,7 @@ - + OpenSilver SDK Project templates and XAML Designer for creating OpenSilver applications. OpenSilver is a modern cross-platform reimplementation of WPF and Silverlight that enables .NET developers to build apps for web (WebAssembly), mobile and desktop (MAUI Hybrid) using C# and XAML. Logo_32x32.png @@ -60,5 +60,6 @@ + diff --git a/src/OpenSilverMauiHybridTemplate/Components/Index.cs b/src/OpenSilverMauiHybridTemplate/Components/Index.cs index 7893ab3..90a6d0f 100644 --- a/src/OpenSilverMauiHybridTemplate/Components/Index.cs +++ b/src/OpenSilverMauiHybridTemplate/Components/Index.cs @@ -14,7 +14,7 @@ protected async override Task OnInitializedAsync() await base.OnInitializedAsync(); ArgumentNullException.ThrowIfNull(Runner); - await Runner.RunApplicationAsync<$rootprojectname$.App >(); + await Runner.RunApplicationAsync<$rootprojectname$.App>(); } } } \ No newline at end of file diff --git a/src/OpenSilverPhotinoTemplate/OpenSilverPhotinoTemplate.csproj b/src/OpenSilverPhotinoTemplate/OpenSilverPhotinoTemplate.csproj new file mode 100644 index 0000000..dbdc8b8 --- /dev/null +++ b/src/OpenSilverPhotinoTemplate/OpenSilverPhotinoTemplate.csproj @@ -0,0 +1,83 @@ + + + + 17.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + Debug + AnyCPU + {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {61E9303A-70BB-47DF-BB47-38507FA2EF06} + Library + Properties + OpenSilverPhotinoTemplate + OpenSilverPhotinoTemplate + v4.7.2 + 512 + false + false + false + false + false + false + false + false + false + false + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/OpenSilverPhotinoTemplate/OpenSilverPhotinoTemplate.ico b/src/OpenSilverPhotinoTemplate/OpenSilverPhotinoTemplate.ico new file mode 100644 index 0000000000000000000000000000000000000000..aae70d3b83cf76e276e5209bae014f83bc61eb75 GIT binary patch literal 44043 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 EAKlW`b^rhX literal 0 HcmV?d00001 diff --git a/src/OpenSilverPhotinoTemplate/OpenSilverPhotinoTemplate.vstemplate b/src/OpenSilverPhotinoTemplate/OpenSilverPhotinoTemplate.vstemplate new file mode 100644 index 0000000..795e5ce --- /dev/null +++ b/src/OpenSilverPhotinoTemplate/OpenSilverPhotinoTemplate.vstemplate @@ -0,0 +1,36 @@ + + + + OpenSilverPhotinoTemplate + OpenSilverPhotinoTemplate + OpenSilverPhotinoTemplate.ico + CSharp + csharp + 2.0 + 1000 + 6d3a50ec-857d-45e7-aa95-fac7c1823e92 + true + OpenSilverPhotinoTemplate + true + true + true + + + + + launchSettings.json + + + index.html + + Program.cs + app.ico + + + + OpenSilver.TemplateWizards, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + OpenSilver.TemplateWizards.Wizards.PhotinoProjectTemplateWizard + + + + \ No newline at end of file diff --git a/src/OpenSilverPhotinoTemplate/Program.cs b/src/OpenSilverPhotinoTemplate/Program.cs new file mode 100644 index 0000000..1f5829a --- /dev/null +++ b/src/OpenSilverPhotinoTemplate/Program.cs @@ -0,0 +1,29 @@ +using OpenSilver.Photino; +using Photino.NET; + +namespace $safeprojectname$ +{ + //NOTE: To hide the console window, go to the project properties and change the Output Type to Windows Application. + // Or edit the .csproj file and change the tag from "WinExe" to "Exe". + internal class Program + { + [STAThread] + static void Main(string[] args) + { + // Window title declared here for visibility + string windowTitle = "$rootprojectname$"; + + // Creating a new PhotinoWindow instance with the fluent API + var window = new PhotinoWindow() + .SetTitle(windowTitle) + .SetUseOsDefaultSize(true) + .Center() // Center window in the middle of the screen + .SetResizable(false) // Users can resize windows by default. Let's make this one fixed instead. + .SetLogVerbosity(0) + .ConfigureOpenSilver() // Configure OpenSilver App + .Load("wwwroot/index.html"); // Can be used with relative path strings or "new URI()" instance to load a website. + + window.WaitForClose(); // Starts the application event loop + } + } +} diff --git a/src/OpenSilverPhotinoTemplate/ProjectTemplate.csproj b/src/OpenSilverPhotinoTemplate/ProjectTemplate.csproj new file mode 100644 index 0000000..8509b2e --- /dev/null +++ b/src/OpenSilverPhotinoTemplate/ProjectTemplate.csproj @@ -0,0 +1,47 @@ + + + + Exe + $targetframework$ + AnyCPU + enable + enable + + app.ico + + + true + + + true + true + + + true + + + false + false + + + embedded + + + + + Always + + + + + + + + + + + + \ No newline at end of file diff --git a/src/OpenSilverPhotinoTemplate/Properties/AssemblyInfo.cs b/src/OpenSilverPhotinoTemplate/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..18bc850 --- /dev/null +++ b/src/OpenSilverPhotinoTemplate/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenSilverPhotinoTemplate")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Userware")] +[assembly: AssemblyProduct("OpenSilverPhotinoTemplate")] +[assembly: AssemblyCopyright("Copyright © Userware 2025")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("61e9303a-70bb-47df-bb47-38507fa2ef06")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/OpenSilverPhotinoTemplate/Properties/launchSettings.json b/src/OpenSilverPhotinoTemplate/Properties/launchSettings.json new file mode 100644 index 0000000..cb316db --- /dev/null +++ b/src/OpenSilverPhotinoTemplate/Properties/launchSettings.json @@ -0,0 +1,7 @@ +{ + "profiles": { + "$rootprojectname$.Photino": { + "commandName": "Project" + } + } +} \ No newline at end of file diff --git a/src/OpenSilverPhotinoTemplate/app.ico b/src/OpenSilverPhotinoTemplate/app.ico new file mode 100644 index 0000000000000000000000000000000000000000..4bd743076b86ee17773da0b7ff24e3f0e8d8d9d8 GIT binary patch literal 204074 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 H%|ibN#tuSQ literal 0 HcmV?d00001 diff --git a/src/OpenSilverPhotinoTemplate/wwwroot/index.html b/src/OpenSilverPhotinoTemplate/wwwroot/index.html new file mode 100644 index 0000000..fb3a5b7 --- /dev/null +++ b/src/OpenSilverPhotinoTemplate/wwwroot/index.html @@ -0,0 +1,14 @@ + + + + + + + + $rootprojectname$ + + +

+ + + diff --git a/src/TestWizard/App.xaml.cs b/src/TestWizard/App.xaml.cs index bab914f..a36a965 100644 --- a/src/TestWizard/App.xaml.cs +++ b/src/TestWizard/App.xaml.cs @@ -13,12 +13,23 @@ public App() MainWindow = new Window(); var configurationWindow = new AppConfigurationWindow(); - _ = configurationWindow.ShowDialog(); + var res = configurationWindow.ShowDialog(); var theme = configurationWindow.SelectedTheme; var dotNetVersion = configurationWindow.DotNetVersion; var mauiHybridPlatform = configurationWindow.MauiHybridPlatform; + var isPhotinoSelected = configurationWindow.IsPhotinoSelected; + if (res == true) + { + MessageBox.Show( + $"Theme: {configurationWindow.SelectedTheme}\n" + + $".NET Version: {configurationWindow.DotNetVersion}\n" + + $"MAUI Hybrid Platform: {configurationWindow.MauiHybridPlatform}\n" + + $"Is Photino Selected: {configurationWindow.IsPhotinoSelected}", + "Configuration Details", + MessageBoxButton.OK); + } MainWindow.Close(); } } diff --git a/src/VSExtension.OpenSilver.sln b/src/VSExtension.OpenSilver.sln index 9521791..748603f 100644 --- a/src/VSExtension.OpenSilver.sln +++ b/src/VSExtension.OpenSilver.sln @@ -29,6 +29,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSilverMauiHybridTemplat EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestWizard", "TestWizard\TestWizard.csproj", "{DAC7670D-DD11-43CE-A120-231D896EB506}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSilverPhotinoTemplate", "OpenSilverPhotinoTemplate\OpenSilverPhotinoTemplate.csproj", "{61E9303A-70BB-47DF-BB47-38507FA2EF06}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -195,6 +197,18 @@ Global {DAC7670D-DD11-43CE-A120-231D896EB506}.Release|arm64.Build.0 = Release|Any CPU {DAC7670D-DD11-43CE-A120-231D896EB506}.Release|x86.ActiveCfg = Release|Any CPU {DAC7670D-DD11-43CE-A120-231D896EB506}.Release|x86.Build.0 = Release|Any CPU + {61E9303A-70BB-47DF-BB47-38507FA2EF06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {61E9303A-70BB-47DF-BB47-38507FA2EF06}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61E9303A-70BB-47DF-BB47-38507FA2EF06}.Debug|arm64.ActiveCfg = Debug|arm64 + {61E9303A-70BB-47DF-BB47-38507FA2EF06}.Debug|arm64.Build.0 = Debug|arm64 + {61E9303A-70BB-47DF-BB47-38507FA2EF06}.Debug|x86.ActiveCfg = Debug|x86 + {61E9303A-70BB-47DF-BB47-38507FA2EF06}.Debug|x86.Build.0 = Debug|x86 + {61E9303A-70BB-47DF-BB47-38507FA2EF06}.Release|Any CPU.ActiveCfg = Release|Any CPU + {61E9303A-70BB-47DF-BB47-38507FA2EF06}.Release|Any CPU.Build.0 = Release|Any CPU + {61E9303A-70BB-47DF-BB47-38507FA2EF06}.Release|arm64.ActiveCfg = Release|arm64 + {61E9303A-70BB-47DF-BB47-38507FA2EF06}.Release|arm64.Build.0 = Release|arm64 + {61E9303A-70BB-47DF-BB47-38507FA2EF06}.Release|x86.ActiveCfg = Release|x86 + {61E9303A-70BB-47DF-BB47-38507FA2EF06}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From f1e016e470d9d722e518d611822dfbb3bfe34370 Mon Sep 17 00:00:00 2001 From: Iakov Lilo Date: Tue, 25 Mar 2025 10:55:16 +1100 Subject: [PATCH 2/2] Use stable packages, update Xaml Designer --- .../AppConfigurationWindow.xaml | 8 ++++++- .../AppConfigurationWindow.xaml.cs | 21 +++++++++++++++++++ .../Shared/GlobalConstants.cs | 10 ++++----- .../OpenSilver.XamlDesigner.csproj | 16 +++++++------- src/OpenSilver.XamlDesigner/packages.config | 2 +- 5 files changed, 42 insertions(+), 15 deletions(-) diff --git a/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml b/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml index 6fdfc39..6e23dbb 100644 --- a/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml +++ b/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml @@ -44,7 +44,7 @@ + FontSize="22" Foreground="#1157FA" FontWeight="SemiBold" SelectedIndex="2" SelectedValuePath="Version" Cursor="Hand" SelectionChanged="DotNetVersionComboBox_SelectionChanged"> @@ -63,6 +63,12 @@ + + diff --git a/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml.cs b/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml.cs index b9017bd..3bcb728 100644 --- a/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml.cs +++ b/src/OpenSilver.TemplateWizards/AppCustomizationWindow/AppConfigurationWindow.xaml.cs @@ -127,6 +127,27 @@ private void PlatformList_SelectionChanged(object sender, System.Windows.Control mauiTip.Visibility = MauiHybridPlatform == MauiHybridPlatform.None ? Visibility.Hidden : Visibility.Visible; } + private void DotNetVersionComboBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) + { + var isDotNet7 = DotNetVersion == DotNetVersion.Net7; + if (isDotNet7 && platformList != null) + { + var itemsToDeselect = platformList.SelectedItems + .Cast() + .Where(item => !Equals(item.Tag, "web")).ToList(); + + foreach (var item in itemsToDeselect) + { + platformList.SelectedItems.Remove(item); + } + } + + if (PlatformListDisabledOverlay != null) + { + PlatformListDisabledOverlay.Visibility = isDotNet7 ? Visibility.Visible : Visibility.Collapsed; + } + } + // https://github.com/dotnet/wpf/blob/090a5230cf6186fe576dbc1729c943b36cb5db71/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/ThemeManager.cs private static bool IsSystemThemeLight() { diff --git a/src/OpenSilver.TemplateWizards/Shared/GlobalConstants.cs b/src/OpenSilver.TemplateWizards/Shared/GlobalConstants.cs index c47affb..b49562d 100644 --- a/src/OpenSilver.TemplateWizards/Shared/GlobalConstants.cs +++ b/src/OpenSilver.TemplateWizards/Shared/GlobalConstants.cs @@ -6,18 +6,18 @@ namespace OpenSilver.TemplateWizards.Shared /// public static class GlobalConstants { - public const string OpenSilverMauiHybridPackageVersion = "3.3.0-preview-*"; + public const string OpenSilverMauiHybridPackageVersion = "3.2.0"; - public const string OpenSilverPackageVersion = "3.3.0-preview-*"; + public const string OpenSilverPackageVersion = "3.2.0"; - public const string OpenSilverSimulatorPackageVersion = "3.3.0-preview-*"; + public const string OpenSilverSimulatorPackageVersion = "3.2.0"; - public const string OpenSilverWebAssemblyPackageVersion = "3.3.0-preview-*"; + public const string OpenSilverWebAssemblyPackageVersion = "3.2.0"; public const string OpenRia46PackageVersion = "3.2.0"; public const string OpenSilverThemeModernPackageVersion = "3.2.*"; - public const string OpenSilverPhotinoPackageVersion = "3.3.0-preview-*"; + public const string OpenSilverPhotinoPackageVersion = "3.2.0"; } } diff --git a/src/OpenSilver.XamlDesigner/OpenSilver.XamlDesigner.csproj b/src/OpenSilver.XamlDesigner/OpenSilver.XamlDesigner.csproj index b03cd8b..1ed7aa0 100644 --- a/src/OpenSilver.XamlDesigner/OpenSilver.XamlDesigner.csproj +++ b/src/OpenSilver.XamlDesigner/OpenSilver.XamlDesigner.csproj @@ -235,22 +235,22 @@ - ..\packages\XamlDesigner.OpenSilver.2.0.0-preview-2025-03-18-090132-4b184e5e\lib\net47\Userware.XamlDesigner.Api.BL.Models.OpenSilver.dll + ..\packages\XamlDesigner.OpenSilver.2.0.0-preview-2025-03-24-042713-abb1c1d6\lib\net47\Userware.XamlDesigner.Api.BL.Models.OpenSilver.dll - ..\packages\XamlDesigner.OpenSilver.2.0.0-preview-2025-03-18-090132-4b184e5e\lib\net47\Userware.XamlDesigner.Api.Client.OpenSilver.dll + ..\packages\XamlDesigner.OpenSilver.2.0.0-preview-2025-03-24-042713-abb1c1d6\lib\net47\Userware.XamlDesigner.Api.Client.OpenSilver.dll - ..\packages\XamlDesigner.OpenSilver.2.0.0-preview-2025-03-18-090132-4b184e5e\lib\net47\Userware.XamlDesigner.Communication.OpenSilver.dll + ..\packages\XamlDesigner.OpenSilver.2.0.0-preview-2025-03-24-042713-abb1c1d6\lib\net47\Userware.XamlDesigner.Communication.OpenSilver.dll - ..\packages\XamlDesigner.OpenSilver.2.0.0-preview-2025-03-18-090132-4b184e5e\lib\net47\Userware.XamlDesigner.Data.Primitives.OpenSilver.dll + ..\packages\XamlDesigner.OpenSilver.2.0.0-preview-2025-03-24-042713-abb1c1d6\lib\net47\Userware.XamlDesigner.Data.Primitives.OpenSilver.dll - ..\packages\XamlDesigner.OpenSilver.2.0.0-preview-2025-03-18-090132-4b184e5e\lib\net47\Userware.XamlDesigner.OpenSilver.dll + ..\packages\XamlDesigner.OpenSilver.2.0.0-preview-2025-03-24-042713-abb1c1d6\lib\net47\Userware.XamlDesigner.OpenSilver.dll - ..\packages\XamlDesigner.OpenSilver.2.0.0-preview-2025-03-18-090132-4b184e5e\lib\net47\Userware.XamlDesigner.SplitXamlEditor.OpenSilver.dll + ..\packages\XamlDesigner.OpenSilver.2.0.0-preview-2025-03-24-042713-abb1c1d6\lib\net47\Userware.XamlDesigner.SplitXamlEditor.OpenSilver.dll
@@ -296,11 +296,11 @@ - + - + \ No newline at end of file diff --git a/src/OpenSilver.XamlDesigner/packages.config b/src/OpenSilver.XamlDesigner/packages.config index b72f142..e14f38a 100644 --- a/src/OpenSilver.XamlDesigner/packages.config +++ b/src/OpenSilver.XamlDesigner/packages.config @@ -63,5 +63,5 @@ - + \ No newline at end of file