From f07146fd5064dd791fbc28c31e249e54fe047f79 Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Thu, 7 May 2020 16:24:36 -0400 Subject: [PATCH] updated external module template to support new assembly loading criteria, fixed minor issue in assembky loading logic --- .../Templates/External/Client/Index.razor | 10 +++++----- .../Templates/External/Client/ModuleInfo.cs | 2 +- ...ient.csproj => [Owner].[Module]s.Client.csproj} | 5 +++-- ...age.csproj => [Owner].[Module]s.Package.csproj} | 6 +++--- ...le]s.Module.nuspec => [Owner].[Module]s.nuspec} | 14 +++++++------- .../Templates/External/Package/debug.cmd | 12 ++++++------ .../Templates/External/Package/release.cmd | 2 +- ...rver.csproj => [Owner].[Module]s.Server.csproj} | 5 +++-- ...ared.csproj => [Owner].[Module]s.Shared.csproj} | 3 ++- ....[Module]s.Module.sln => [Owner].[Module]s.sln} | 8 ++++---- .../Controllers/ModuleDefinitionController.cs | 6 +++--- Oqtane.Server/Extensions/AssemblyExtensions.cs | 4 ++-- 12 files changed, 40 insertions(+), 37 deletions(-) rename Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/{[Owner].[Module]s.Module.Client.csproj => [Owner].[Module]s.Client.csproj} (87%) rename Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/{[Owner].[Module]s.Module.Package.csproj => [Owner].[Module]s.Package.csproj} (63%) rename Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/{[Owner].[Module]s.Module.nuspec => [Owner].[Module]s.nuspec} (81%) rename Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Server/{[Owner].[Module]s.Module.Server.csproj => [Owner].[Module]s.Server.csproj} (88%) rename Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Shared/{[Owner].[Module]s.Module.Shared.csproj => [Owner].[Module]s.Shared.csproj} (86%) rename Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/{[Owner].[Module]s.Module.sln => [Owner].[Module]s.sln} (86%) diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/Index.razor b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/Index.razor index 78e7c079..1c92fc1a 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/Index.razor +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/Index.razor @@ -42,7 +42,7 @@ else
[Module] Module Created Successfully. Use Edit Mode To Add A [Module]. You Can Access The Files At The Following Locations:

[RootPath]Client\
-- [Owner].[Module]s.Module.Client.csproj - client project
+- [Owner].[Module]s.Client.csproj - client project
- _Imports.razor - global imports for module components
- Edit.razor - component for adding or editing content
- Index.razor - main component for your module **the content you are reading is in this file**
@@ -51,12 +51,12 @@ else - Services\I[Module]Service.cs - interface for defining service API methods
- Services\[Module]Service.cs - implements service API interface methods

[RootPath]Package\
-- [Owner].[Module]s.Module.nuspec - nuget manifest for packaging module
-- [Owner].[Module]s.Module.Package.csproj - packaging project
+- [Owner].[Module]s.nuspec - nuget manifest for packaging module
+- [Owner].[Module]s.Package.csproj - packaging project
- debug.cmd - copies assemblies to Oqtane bin folder when in Debug mode
- release.cmd - creates nuget package and deploys to Oqtane wwwroot/modules folder when in Release mode

[RootPath]Server\
-- [Owner].[Module]s.Module.Server.csproj - server project
+- [Owner].[Module]s.Server.csproj - server project
- Controllers\[Module]Controller.cs - API methods implemented using a REST pattern
- Manager\[Module]Manager.cs - implements optional module interfaces for features such as import/export of content
- Repository\I[Module]Repository.cs - interface for defining repository methods
@@ -65,7 +65,7 @@ else - Scripts\[Owner].[Module].1.0.0.sql - database schema definition script

- Scripts\[Owner].[Module].Uninstall.sql - database uninstall script

[RootPath]Shared\
-- [Owner].[Module]s.Module.Shared.csproj - shared project
+- [Owner].[Module]s.csproj - shared project
- Models\[Module].cs - model definition

diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/ModuleInfo.cs b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/ModuleInfo.cs index a95a461e..35a74a27 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/ModuleInfo.cs +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/ModuleInfo.cs @@ -10,7 +10,7 @@ namespace [Owner].[Module]s.Modules Name = "[Module]", Description = "[Module]", Version = "1.0.0", - Dependencies = "[Owner].[Module]s.Module.Shared", + Dependencies = "[Owner].[Module]s.Shared.Oqtane", ServerManagerType = "[ServerManagerType]", ReleaseVersions = "1.0.0" }; diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/[Owner].[Module]s.Module.Client.csproj b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/[Owner].[Module]s.Client.csproj similarity index 87% rename from Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/[Owner].[Module]s.Module.Client.csproj rename to Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/[Owner].[Module]s.Client.csproj index cc286603..e6ea8287 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/[Owner].[Module]s.Module.Client.csproj +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Client/[Owner].[Module]s.Client.csproj @@ -7,8 +7,9 @@ [Owner] [Owner] [Description] - [Owner].[Module]s.Module + [Owner].[Module]s [Owner] + [Owner].[Module]s.Client.Oqtane @@ -18,7 +19,7 @@ - + diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/[Owner].[Module]s.Module.Package.csproj b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/[Owner].[Module]s.Package.csproj similarity index 63% rename from Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/[Owner].[Module]s.Module.Package.csproj rename to Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/[Owner].[Module]s.Package.csproj index 0689d66f..31d02d8f 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/[Owner].[Module]s.Module.Package.csproj +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/[Owner].[Module]s.Package.csproj @@ -6,9 +6,9 @@ - - - + + + diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/[Owner].[Module]s.Module.nuspec b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/[Owner].[Module]s.nuspec similarity index 81% rename from Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/[Owner].[Module]s.Module.nuspec rename to Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/[Owner].[Module]s.nuspec index 607f2ff3..57071160 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/[Owner].[Module]s.Module.nuspec +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/[Owner].[Module]s.nuspec @@ -1,7 +1,7 @@  - [Owner].[Module]s.Module + [Owner].[Module]s 1.0.0 [Owner] [Owner] @@ -20,12 +20,12 @@ - - - - - - + + + + + + \ No newline at end of file diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/debug.cmd b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/debug.cmd index 37f0dd87..c70bdba8 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/debug.cmd +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/debug.cmd @@ -1,6 +1,6 @@ -XCOPY "..\Client\bin\Debug\netstandard2.1\[Owner].[Module]s.Module.Client.dll" "..\..\[RootFolder]\Oqtane.Server\bin\Debug\netcoreapp3.1\" /Y -XCOPY "..\Client\bin\Debug\netstandard2.1\[Owner].[Module]s.Module.Client.pdb" "..\..\[RootFolder]\Oqtane.Server\bin\Debug\netcoreapp3.1\" /Y -XCOPY "..\Server\bin\Debug\netcoreapp3.1\[Owner].[Module]s.Module.Server.dll" "..\..\[RootFolder]\Oqtane.Server\bin\Debug\netcoreapp3.1\" /Y -XCOPY "..\Server\bin\Debug\netcoreapp3.1\[Owner].[Module]s.Module.Server.pdb" "..\..\[RootFolder]\Oqtane.Server\bin\Debug\netcoreapp3.1\" /Y -XCOPY "..\Shared\bin\Debug\netstandard2.1\[Owner].[Module]s.Module.Shared.dll" "..\..\[RootFolder]\Oqtane.Server\bin\Debug\netcoreapp3.1\" /Y -XCOPY "..\Shared\bin\Debug\netstandard2.1\[Owner].[Module]s.Module.Shared.pdb" "..\..\[RootFolder]\Oqtane.Server\bin\Debug\netcoreapp3.1\" /Y +XCOPY "..\Client\bin\Debug\netstandard2.1\[Owner].[Module]s.Client.Oqtane.dll" "..\..\[RootFolder]\Oqtane.Server\bin\Debug\netcoreapp3.1\" /Y +XCOPY "..\Client\bin\Debug\netstandard2.1\[Owner].[Module]s.Client.Oqtane.pdb" "..\..\[RootFolder]\Oqtane.Server\bin\Debug\netcoreapp3.1\" /Y +XCOPY "..\Server\bin\Debug\netcoreapp3.1\[Owner].[Module]s.Server.Oqtane.dll" "..\..\[RootFolder]\Oqtane.Server\bin\Debug\netcoreapp3.1\" /Y +XCOPY "..\Server\bin\Debug\netcoreapp3.1\[Owner].[Module]s.Server.Oqtane.pdb" "..\..\[RootFolder]\Oqtane.Server\bin\Debug\netcoreapp3.1\" /Y +XCOPY "..\Shared\bin\Debug\netstandard2.1\[Owner].[Module]s.Shared.Oqtane.dll" "..\..\[RootFolder]\Oqtane.Server\bin\Debug\netcoreapp3.1\" /Y +XCOPY "..\Shared\bin\Debug\netstandard2.1\[Owner].[Module]s.Shared.Oqtane.pdb" "..\..\[RootFolder]\Oqtane.Server\bin\Debug\netcoreapp3.1\" /Y diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/release.cmd b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/release.cmd index 71f2c513..b294ccdf 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/release.cmd +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Package/release.cmd @@ -1,2 +1,2 @@ -"..\..\[RootFolder]\oqtane.package\nuget.exe" pack [Owner].[Module]s.Module.nuspec +"..\..\[RootFolder]\oqtane.package\nuget.exe" pack [Owner].[Module]s.nuspec XCOPY "*.nupkg" "..\..\[RootFolder]\Oqtane.Server\wwwroot\Modules\" /Y diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Server/[Owner].[Module]s.Module.Server.csproj b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Server/[Owner].[Module]s.Server.csproj similarity index 88% rename from Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Server/[Owner].[Module]s.Module.Server.csproj rename to Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Server/[Owner].[Module]s.Server.csproj index 96d4154f..0c93403b 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Server/[Owner].[Module]s.Module.Server.csproj +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Server/[Owner].[Module]s.Server.csproj @@ -5,11 +5,12 @@ 7.3 true 1.0.0 - [Owner].[Module]s.Module + [Owner].[Module]s [Owner] [Owner] [Description] [Owner] + [Owner].[Module]s.Server.Oqtane @@ -26,7 +27,7 @@ - + diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Shared/[Owner].[Module]s.Module.Shared.csproj b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Shared/[Owner].[Module]s.Shared.csproj similarity index 86% rename from Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Shared/[Owner].[Module]s.Module.Shared.csproj rename to Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Shared/[Owner].[Module]s.Shared.csproj index 2482b4fa..fb4d620d 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Shared/[Owner].[Module]s.Module.Shared.csproj +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/Shared/[Owner].[Module]s.Shared.csproj @@ -4,11 +4,12 @@ netstandard2.1 7.3 1.0.0 - [Owner].[Module].Module + [Owner].[Module]s [Owner] [Owner] [Description] [Owner] + [Owner].[Module]s.Shared.Oqtane diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/[Owner].[Module]s.Module.sln b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/[Owner].[Module]s.sln similarity index 86% rename from Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/[Owner].[Module]s.Module.sln rename to Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/[Owner].[Module]s.sln index 9879eac6..eb313e64 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/[Owner].[Module]s.Module.sln +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Templates/External/[Owner].[Module]s.sln @@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.28621.142 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "[Owner].[Module]s.Module.Client", "Client\[Owner].[Module]s.Module.Client.csproj", "{AA8E58A1-CD09-4208-BF66-A8BB341FD669}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "[Owner].[Module]s.Client", "Client\[Owner].[Module]s.Client.csproj", "{AA8E58A1-CD09-4208-BF66-A8BB341FD669}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "[Owner].[Module]s.Module.Server", "Server\[Owner].[Module]s.Module.Server.csproj", "{04B05448-788F-433D-92C0-FED35122D45A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "[Owner].[Module]s.Server", "Server\[Owner].[Module]s.Server.csproj", "{04B05448-788F-433D-92C0-FED35122D45A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "[Owner].[Module]s.Module.Shared", "Shared\[Owner].[Module]s.Module.Shared.csproj", "{18D73F73-D7BE-4388-85BA-FBD9AC96FCA2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "[Owner].[Module]s.Shared", "Shared\[Owner].[Module]s.Shared.csproj", "{18D73F73-D7BE-4388-85BA-FBD9AC96FCA2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "[Owner].[Module]s.Module.Package", "Package\[Owner].[Module]s.Module.Package.csproj", "{C5CE512D-CBB7-4545-AF0F-9B6591A0C3A7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "[Owner].[Module]s.Package", "Package\[Owner].[Module]s.Package.csproj", "{C5CE512D-CBB7-4545-AF0F-9B6591A0C3A7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Oqtane.Server/Controllers/ModuleDefinitionController.cs b/Oqtane.Server/Controllers/ModuleDefinitionController.cs index 7ef9f7e1..e1b9534c 100644 --- a/Oqtane.Server/Controllers/ModuleDefinitionController.cs +++ b/Oqtane.Server/Controllers/ModuleDefinitionController.cs @@ -190,9 +190,9 @@ namespace Oqtane.Controllers } else { - rootPath = Utilities.PathCombine(rootFolder.Parent.FullName , moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Module","\\"); - moduleDefinition.ModuleDefinitionName = moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Modules, " + moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Module.Client"; - moduleDefinition.ServerManagerType = moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Manager." + moduleDefinition.Name + "Manager, " + moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Module.Server"; + rootPath = Utilities.PathCombine(rootFolder.Parent.FullName , moduleDefinition.Owner + "." + moduleDefinition.Name + "s","\\"); + moduleDefinition.ModuleDefinitionName = moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Modules, " + moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Client.Oqtane"; + moduleDefinition.ServerManagerType = moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Manager." + moduleDefinition.Name + "Manager, " + moduleDefinition.Owner + "." + moduleDefinition.Name + "s.Server.Oqtane"; } ProcessTemplatesRecursively(new DirectoryInfo(templatePath), rootPath, rootFolder.Name, templatePath, moduleDefinition); diff --git a/Oqtane.Server/Extensions/AssemblyExtensions.cs b/Oqtane.Server/Extensions/AssemblyExtensions.cs index 9785d229..443b8cc6 100644 --- a/Oqtane.Server/Extensions/AssemblyExtensions.cs +++ b/Oqtane.Server/Extensions/AssemblyExtensions.cs @@ -36,12 +36,12 @@ namespace System.Reflection public static bool IsOqtaneAssembly(this Assembly assembly) { - return assembly.FullName != null && (assembly.FullName.Contains("oqtane.", StringComparison.OrdinalIgnoreCase)); + return assembly.FullName != null && (assembly.FullName.Contains("oqtane", StringComparison.OrdinalIgnoreCase)); } public static bool IsOqtaneAssembly(this FileInfo fileInfo) { - return (fileInfo.Name.Contains("oqtane.", StringComparison.OrdinalIgnoreCase)); + return (fileInfo.Name.Contains("oqtane", StringComparison.OrdinalIgnoreCase)); } public static IEnumerable GetOqtaneAssemblies(this AppDomain appDomain)