diff --git a/templates/module/MyCompanyName.MyModuleName.sln b/templates/module/MyCompanyName.MyModuleName.sln
index 929eb23fbb..4e09d06264 100644
--- a/templates/module/MyCompanyName.MyModuleName.sln
+++ b/templates/module/MyCompanyName.MyModuleName.sln
@@ -7,6 +7,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyModuleName.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyModuleName.Domain", "src\MyCompanyName.MyModuleName.Domain\MyCompanyName.MyModuleName.Domain.csproj", "{F2840BC7-0188-4606-9126-DADD0F5ABF7A}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyModuleName.Application.Contracts", "src\MyCompanyName.MyModuleName.Application.Contracts\MyCompanyName.MyModuleName.Application.Contracts.csproj", "{BD65D04F-08D5-40C1-8C24-77CA0BACB877}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyModuleName.Application", "src\MyCompanyName.MyModuleName.Application\MyCompanyName.MyModuleName.Application.csproj", "{78040F9E-3501-4A40-82DF-00A597710F35}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -21,6 +25,14 @@ Global
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Release|Any CPU.Build.0 = Release|Any CPU
+ {78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName.MyModuleName.Application.Contracts.csproj b/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName.MyModuleName.Application.Contracts.csproj
new file mode 100644
index 0000000000..a114689550
--- /dev/null
+++ b/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName.MyModuleName.Application.Contracts.csproj
@@ -0,0 +1,19 @@
+
+
+
+
+
+ netstandard2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName/MyModuleName/Localization/ApplicationContracts/en.json b/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName/MyModuleName/Localization/ApplicationContracts/en.json
new file mode 100644
index 0000000000..a4f0053f51
--- /dev/null
+++ b/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName/MyModuleName/Localization/ApplicationContracts/en.json
@@ -0,0 +1,6 @@
+{
+ "culture": "en",
+ "texts": {
+ "Permission:MyModuleName": "MyModuleName"
+ }
+}
\ No newline at end of file
diff --git a/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName/MyModuleName/MyModuleNameApplicationContractsModule.cs b/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName/MyModuleName/MyModuleNameApplicationContractsModule.cs
new file mode 100644
index 0000000000..5eb0a8701a
--- /dev/null
+++ b/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName/MyModuleName/MyModuleNameApplicationContractsModule.cs
@@ -0,0 +1,39 @@
+using Microsoft.Extensions.DependencyInjection;
+using MyCompanyName.MyModuleName.Localization;
+using Volo.Abp.Application;
+using Volo.Abp.Authorization.Permissions;
+using Volo.Abp.Localization;
+using Volo.Abp.Modularity;
+using Volo.Abp.VirtualFileSystem;
+
+namespace MyCompanyName.MyModuleName
+{
+ [DependsOn(
+ typeof(MyModuleNameDomainSharedModule),
+ typeof(AbpDddApplicationModule)
+ )]
+ public class MyModuleNameApplicationContractsModule : AbpModule
+ {
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ context.Services.Configure(options =>
+ {
+ options.DefinitionProviders.Add();
+ });
+
+ context.Services.Configure(options =>
+ {
+ options.FileSets.AddEmbedded();
+ });
+
+ context.Services.Configure(options =>
+ {
+ options.Resources
+ .Get()
+ .AddVirtualJson("/MyCompanyName/MyModuleName/Localization/ApplicationContracts");
+ });
+
+ context.Services.AddAssemblyOf();
+ }
+ }
+}
diff --git a/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName/MyModuleName/MyModuleNamePermissionDefinitionProvider.cs b/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName/MyModuleName/MyModuleNamePermissionDefinitionProvider.cs
new file mode 100644
index 0000000000..2dd3fa7822
--- /dev/null
+++ b/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName/MyModuleName/MyModuleNamePermissionDefinitionProvider.cs
@@ -0,0 +1,19 @@
+using MyCompanyName.MyModuleName.Localization;
+using Volo.Abp.Authorization.Permissions;
+using Volo.Abp.Localization;
+
+namespace MyCompanyName.MyModuleName
+{
+ public class MyModuleNamePermissionDefinitionProvider : PermissionDefinitionProvider
+ {
+ public override void Define(IPermissionDefinitionContext context)
+ {
+ //var moduleGroup = context.AddGroup(MyModuleNamePermissions.GroupName, L("Permission:MyModuleName"));
+ }
+
+ private static LocalizableString L(string name)
+ {
+ return LocalizableString.Create(name);
+ }
+ }
+}
\ No newline at end of file
diff --git a/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName/MyModuleName/MyModuleNamePermissions.cs b/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName/MyModuleName/MyModuleNamePermissions.cs
new file mode 100644
index 0000000000..058392033f
--- /dev/null
+++ b/templates/module/src/MyCompanyName.MyModuleName.Application.Contracts/MyCompanyName/MyModuleName/MyModuleNamePermissions.cs
@@ -0,0 +1,15 @@
+namespace MyCompanyName.MyModuleName
+{
+ public class MyModuleNamePermissions
+ {
+ public const string GroupName = "MyModuleName";
+
+ public static string[] GetAll()
+ {
+ return new[]
+ {
+ GroupName
+ };
+ }
+ }
+}
\ No newline at end of file
diff --git a/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName.MyModuleName.Application.csproj b/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName.MyModuleName.Application.csproj
new file mode 100644
index 0000000000..a35899725e
--- /dev/null
+++ b/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName.MyModuleName.Application.csproj
@@ -0,0 +1,16 @@
+
+
+
+
+
+ netstandard2.0
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName/MyModuleName/MyModuleNameApplicationAutoMapperProfile.cs b/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName/MyModuleName/MyModuleNameApplicationAutoMapperProfile.cs
new file mode 100644
index 0000000000..a93cbc9d56
--- /dev/null
+++ b/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName/MyModuleName/MyModuleNameApplicationAutoMapperProfile.cs
@@ -0,0 +1,12 @@
+using AutoMapper;
+
+namespace MyCompanyName.MyModuleName
+{
+ public class MyModuleNameApplicationAutoMapperProfile : Profile
+ {
+ public MyModuleNameApplicationAutoMapperProfile()
+ {
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName/MyModuleName/MyModuleNameApplicationModule.cs b/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName/MyModuleName/MyModuleNameApplicationModule.cs
new file mode 100644
index 0000000000..aed0ed84d3
--- /dev/null
+++ b/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName/MyModuleName/MyModuleNameApplicationModule.cs
@@ -0,0 +1,30 @@
+using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.AutoMapper;
+using Volo.Abp.Modularity;
+using Volo.Abp.Settings;
+
+namespace MyCompanyName.MyModuleName
+{
+ [DependsOn(
+ typeof(MyModuleNameDomainModule),
+ typeof(MyModuleNameApplicationContractsModule),
+ typeof(AbpAutoMapperModule)
+ )]
+ public class MyModuleNameApplicationModule : AbpModule
+ {
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ context.Services.Configure(options =>
+ {
+ options.AddProfile(validate: true);
+ });
+
+ context.Services.Configure(options =>
+ {
+ options.DefinitionProviders.Add();
+ });
+
+ context.Services.AddAssemblyOf();
+ }
+ }
+}
diff --git a/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName/MyModuleName/MyModuleNameSettingDefinitionProvider.cs b/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName/MyModuleName/MyModuleNameSettingDefinitionProvider.cs
new file mode 100644
index 0000000000..2d0589dbfb
--- /dev/null
+++ b/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName/MyModuleName/MyModuleNameSettingDefinitionProvider.cs
@@ -0,0 +1,14 @@
+using Volo.Abp.Settings;
+
+namespace MyCompanyName.MyModuleName
+{
+ public class MyModuleNameSettingDefinitionProvider : SettingDefinitionProvider
+ {
+ public override void Define(ISettingDefinitionContext context)
+ {
+ /* Define module settings here.
+ * Use names from MyModuleNameSettings class.
+ */
+ }
+ }
+}
\ No newline at end of file
diff --git a/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName/MyModuleName/MyModuleNameSettings.cs b/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName/MyModuleName/MyModuleNameSettings.cs
new file mode 100644
index 0000000000..17fcd94825
--- /dev/null
+++ b/templates/module/src/MyCompanyName.MyModuleName.Application/MyCompanyName/MyModuleName/MyModuleNameSettings.cs
@@ -0,0 +1,11 @@
+namespace MyCompanyName.MyModuleName
+{
+ public static class MyModuleNameSettings
+ {
+ public const string GroupName = "MyModuleName";
+
+ /* Add constants for setting names. Example:
+ * public const string MySettingName = GroupName + ".MySettingName";
+ */
+ }
+}
\ No newline at end of file
diff --git a/templates/module/src/MyCompanyName.MyModuleName.Domain/MyCompanyName/MyModuleName/Localization/Domain/tr.json b/templates/module/src/MyCompanyName.MyModuleName.Domain/MyCompanyName/MyModuleName/Localization/Domain/tr.json
deleted file mode 100644
index 6c8cd12915..0000000000
--- a/templates/module/src/MyCompanyName.MyModuleName.Domain/MyCompanyName/MyModuleName/Localization/Domain/tr.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "culture": "tr",
- "texts": {
-
- }
-}
\ No newline at end of file