diff --git a/Volo.Abp.sln b/Volo.Abp.sln
index b3e34a7248..ad408715da 100644
--- a/Volo.Abp.sln
+++ b/Volo.Abp.sln
@@ -34,10 +34,6 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Volo.Abp.AspNetCore", "src\
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Volo.Abp.AspNetCore.Tests", "test\Volo.Abp.AspNetCore.Tests\Volo.Abp.AspNetCore.Tests.xproj", "{B1D860BB-6EC6-4BAE-ADAA-C2AEC2FFB510}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Apps", "Apps", "{A3A3B258-B3D5-4FDE-9D84-CAA8CBB70586}"
-EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "AspNetCoreDemo", "test\Apps\AspNetCoreDemo\AspNetCoreDemo.xproj", "{12E14D95-4ABA-4290-AB1D-CCF5EB158411}"
-EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Volo.ExtensionMethods", "src\Volo.ExtensionMethods\Volo.ExtensionMethods.xproj", "{FC889503-0BF4-4959-AC80-F51073787025}"
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Volo.ExtensionMethods.Tests", "test\Volo.ExtensionMethods.Tests\Volo.ExtensionMethods.Tests.xproj", "{B520B696-86C7-46D2-A359-C2E9013A7BED}"
@@ -54,6 +50,18 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Volo.Abp.AspNetCore.TestBas
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Volo.Abp.EntityFrameworkCore", "src\Volo.Abp.EntityFrameworkCore\Volo.Abp.EntityFrameworkCore.xproj", "{A1AE63E9-0CF4-4AFB-A584-65D826DEA3CB}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AbpDesk", "AbpDesk", "{1187F469-0063-4065-9419-A1D956C80145}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "AbpDesk.Domain", "src\AbpDesk\AbpDesk.Domain\AbpDesk.Domain.xproj", "{2DBA20A3-8B1C-49F0-90F6-EB09DB78B1B8}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "AbpDesk.UI", "src\AbpDesk\AbpDesk.UI\AbpDesk.UI.xproj", "{12E14D95-4ABA-4290-AB1D-CCF5EB158411}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "AbpDesk.Application.Contracts", "src\AbpDesk\AbpDesk.Application.Contracts\AbpDesk.Application.Contracts.xproj", "{E45B2BA3-7917-4236-99CD-B0A25285A652}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "AbpDesk.Application", "src\AbpDesk\AbpDesk.Application\AbpDesk.Application.xproj", "{B6E622CE-0AEE-45DA-81AB-C244196CB583}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "AbpDesk.EntityFrameworkCore", "src\AbpDesk\AbpDesk.EntityFrameworkCore\AbpDesk.EntityFrameworkCore.xproj", "{35624E7C-6501-4B42-9AA7-70555666A8B3}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -88,10 +96,6 @@ Global
{B1D860BB-6EC6-4BAE-ADAA-C2AEC2FFB510}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B1D860BB-6EC6-4BAE-ADAA-C2AEC2FFB510}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B1D860BB-6EC6-4BAE-ADAA-C2AEC2FFB510}.Release|Any CPU.Build.0 = Release|Any CPU
- {12E14D95-4ABA-4290-AB1D-CCF5EB158411}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {12E14D95-4ABA-4290-AB1D-CCF5EB158411}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {12E14D95-4ABA-4290-AB1D-CCF5EB158411}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {12E14D95-4ABA-4290-AB1D-CCF5EB158411}.Release|Any CPU.Build.0 = Release|Any CPU
{FC889503-0BF4-4959-AC80-F51073787025}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FC889503-0BF4-4959-AC80-F51073787025}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FC889503-0BF4-4959-AC80-F51073787025}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -124,6 +128,26 @@ Global
{A1AE63E9-0CF4-4AFB-A584-65D826DEA3CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A1AE63E9-0CF4-4AFB-A584-65D826DEA3CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A1AE63E9-0CF4-4AFB-A584-65D826DEA3CB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2DBA20A3-8B1C-49F0-90F6-EB09DB78B1B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2DBA20A3-8B1C-49F0-90F6-EB09DB78B1B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2DBA20A3-8B1C-49F0-90F6-EB09DB78B1B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2DBA20A3-8B1C-49F0-90F6-EB09DB78B1B8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {12E14D95-4ABA-4290-AB1D-CCF5EB158411}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {12E14D95-4ABA-4290-AB1D-CCF5EB158411}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {12E14D95-4ABA-4290-AB1D-CCF5EB158411}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {12E14D95-4ABA-4290-AB1D-CCF5EB158411}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E45B2BA3-7917-4236-99CD-B0A25285A652}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E45B2BA3-7917-4236-99CD-B0A25285A652}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E45B2BA3-7917-4236-99CD-B0A25285A652}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E45B2BA3-7917-4236-99CD-B0A25285A652}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B6E622CE-0AEE-45DA-81AB-C244196CB583}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B6E622CE-0AEE-45DA-81AB-C244196CB583}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B6E622CE-0AEE-45DA-81AB-C244196CB583}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B6E622CE-0AEE-45DA-81AB-C244196CB583}.Release|Any CPU.Build.0 = Release|Any CPU
+ {35624E7C-6501-4B42-9AA7-70555666A8B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {35624E7C-6501-4B42-9AA7-70555666A8B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {35624E7C-6501-4B42-9AA7-70555666A8B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {35624E7C-6501-4B42-9AA7-70555666A8B3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -140,8 +164,6 @@ Global
{1020F5FD-6A97-40C2-AFCA-EBDF641DF111} = {447C8A77-E5F0-4538-8687-7383196D04EA}
{02BE03BA-3411-448C-AB61-CB36407CC49A} = {4C753F64-0C93-4D65-96C2-A40893AFC1E8}
{B1D860BB-6EC6-4BAE-ADAA-C2AEC2FFB510} = {37087D1B-3693-4E96-983D-A69F210BDE53}
- {A3A3B258-B3D5-4FDE-9D84-CAA8CBB70586} = {447C8A77-E5F0-4538-8687-7383196D04EA}
- {12E14D95-4ABA-4290-AB1D-CCF5EB158411} = {A3A3B258-B3D5-4FDE-9D84-CAA8CBB70586}
{FC889503-0BF4-4959-AC80-F51073787025} = {9A4A646B-CC96-44FB-A717-E50C5C148B54}
{B520B696-86C7-46D2-A359-C2E9013A7BED} = {82B41A0A-6068-410F-9C6B-2508CA763E21}
{58FA9F8F-216D-4C93-8929-D40D22B11CA7} = {4C753F64-0C93-4D65-96C2-A40893AFC1E8}
@@ -150,5 +172,11 @@ Global
{2C282467-2CD5-4750-BE1F-CA8BD8ECC6EA} = {37087D1B-3693-4E96-983D-A69F210BDE53}
{DDEC5D74-212F-41BD-974C-4B4E88E574E1} = {4C753F64-0C93-4D65-96C2-A40893AFC1E8}
{A1AE63E9-0CF4-4AFB-A584-65D826DEA3CB} = {4C753F64-0C93-4D65-96C2-A40893AFC1E8}
+ {1187F469-0063-4065-9419-A1D956C80145} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
+ {2DBA20A3-8B1C-49F0-90F6-EB09DB78B1B8} = {1187F469-0063-4065-9419-A1D956C80145}
+ {12E14D95-4ABA-4290-AB1D-CCF5EB158411} = {1187F469-0063-4065-9419-A1D956C80145}
+ {E45B2BA3-7917-4236-99CD-B0A25285A652} = {1187F469-0063-4065-9419-A1D956C80145}
+ {B6E622CE-0AEE-45DA-81AB-C244196CB583} = {1187F469-0063-4065-9419-A1D956C80145}
+ {35624E7C-6501-4B42-9AA7-70555666A8B3} = {1187F469-0063-4065-9419-A1D956C80145}
EndGlobalSection
EndGlobal
diff --git a/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk.Application.Contracts.xproj b/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk.Application.Contracts.xproj
new file mode 100644
index 0000000000..84e839aaa0
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk.Application.Contracts.xproj
@@ -0,0 +1,20 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+ e45b2ba3-7917-4236-99cd-b0a25285a652
+
+
+ .\obj
+ .\bin\
+ v4.6.1
+
+
+ 2.0
+
+
+
\ No newline at end of file
diff --git a/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk/Tickets/Dtos/TicketDto.cs b/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk/Tickets/Dtos/TicketDto.cs
new file mode 100644
index 0000000000..c4816fdde0
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk/Tickets/Dtos/TicketDto.cs
@@ -0,0 +1,11 @@
+using Volo.Abp.Application.Services.Dtos;
+
+namespace AbpDesk.Tickets.Dtos
+{
+ public class TicketDto : EntityDto
+ {
+ public string Title { get; set; }
+
+ public string Body { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk/Tickets/ITicketAppService.cs b/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk/Tickets/ITicketAppService.cs
new file mode 100644
index 0000000000..b01a1e3fe2
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Application.Contracts/AbpDesk/Tickets/ITicketAppService.cs
@@ -0,0 +1,11 @@
+using AbpDesk.Tickets.Dtos;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Application.Services.Dtos;
+
+namespace AbpDesk.Tickets
+{
+ public interface ITicketAppService : IApplicationService
+ {
+ ListResultDto GetAll();
+ }
+}
diff --git a/src/AbpDesk/AbpDesk.Application.Contracts/Properties/AssemblyInfo.cs b/src/AbpDesk/AbpDesk.Application.Contracts/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..0c510953f0
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Application.Contracts/Properties/AssemblyInfo.cs
@@ -0,0 +1,19 @@
+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: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("AbpDesk.Application.Contracts")]
+[assembly: AssemblyTrademark("")]
+
+// 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("e45b2ba3-7917-4236-99cd-b0a25285a652")]
diff --git a/src/AbpDesk/AbpDesk.Application.Contracts/project.json b/src/AbpDesk/AbpDesk.Application.Contracts/project.json
new file mode 100644
index 0000000000..863659ace7
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Application.Contracts/project.json
@@ -0,0 +1,14 @@
+{
+ "version": "1.0.0-*",
+
+ "dependencies": {
+ "NETStandard.Library": "1.6.1",
+ "Volo.Abp": "1.0.0-*"
+ },
+
+ "frameworks": {
+ "netstandard1.6": {
+ "imports": "dnxcore50"
+ }
+ }
+}
diff --git a/src/AbpDesk/AbpDesk.Application/AbpDesk.Application.xproj b/src/AbpDesk/AbpDesk.Application/AbpDesk.Application.xproj
new file mode 100644
index 0000000000..f02f0d2056
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Application/AbpDesk.Application.xproj
@@ -0,0 +1,20 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+ b6e622ce-0aee-45da-81ab-c244196cb583
+
+
+ .\obj
+ .\bin\
+ v4.6.1
+
+
+ 2.0
+
+
+
\ No newline at end of file
diff --git a/src/AbpDesk/AbpDesk.Application/AbpDesk/Tickets/TicketAppService.cs b/src/AbpDesk/AbpDesk.Application/AbpDesk/Tickets/TicketAppService.cs
new file mode 100644
index 0000000000..450202f35a
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Application/AbpDesk/Tickets/TicketAppService.cs
@@ -0,0 +1,17 @@
+using System.Collections.Generic;
+using AbpDesk.Tickets.Dtos;
+using Volo.Abp.Application.Services.Dtos;
+
+namespace AbpDesk.Tickets
+{
+ public class TicketAppService : ITicketAppService
+ {
+ public ListResultDto GetAll()
+ {
+ return new ListResultDto(new List
+ {
+ new TicketDto {Id = 1, Title = "Ticket 1 Title", Body = "Ticket 1 Body" }
+ });
+ }
+ }
+}
diff --git a/src/AbpDesk/AbpDesk.Application/Properties/AssemblyInfo.cs b/src/AbpDesk/AbpDesk.Application/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..d0ed5d9c78
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Application/Properties/AssemblyInfo.cs
@@ -0,0 +1,19 @@
+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: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("AbpDesk.Application")]
+[assembly: AssemblyTrademark("")]
+
+// 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("b6e622ce-0aee-45da-81ab-c244196cb583")]
diff --git a/src/AbpDesk/AbpDesk.Application/project.json b/src/AbpDesk/AbpDesk.Application/project.json
new file mode 100644
index 0000000000..5bb42422c0
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Application/project.json
@@ -0,0 +1,15 @@
+{
+ "version": "1.0.0-*",
+
+ "dependencies": {
+ "AbpDesk.Application.Contracts": "1.0.0-*",
+ "AbpDesk.Domain": "1.0.0-*",
+ "NETStandard.Library": "1.6.1"
+ },
+
+ "frameworks": {
+ "netstandard1.6": {
+ "imports": "dnxcore50"
+ }
+ }
+}
diff --git a/src/AbpDesk/AbpDesk.Domain/AbpDesk.Domain.xproj b/src/AbpDesk/AbpDesk.Domain/AbpDesk.Domain.xproj
new file mode 100644
index 0000000000..06dc1d78df
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Domain/AbpDesk.Domain.xproj
@@ -0,0 +1,20 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+ 2dba20a3-8b1c-49f0-90f6-eb09db78b1b8
+
+
+ .\obj
+ .\bin\
+ v4.6.1
+
+
+ 2.0
+
+
+
\ No newline at end of file
diff --git a/src/AbpDesk/AbpDesk.Domain/AbpDesk/Tickets/Ticket.cs b/src/AbpDesk/AbpDesk.Domain/AbpDesk/Tickets/Ticket.cs
new file mode 100644
index 0000000000..0363d18475
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Domain/AbpDesk/Tickets/Ticket.cs
@@ -0,0 +1,26 @@
+using Volo.Abp.Domain.Entities;
+
+namespace AbpDesk.Tickets
+{
+ public class Ticket : AggregateRoot
+ {
+ public const int MaxTitleLength = 256;
+
+ public const int MaxBodyLength = 64 * 1024; //64K
+
+ public string Title { get; set; }
+
+ public string Body { get; set; }
+
+ private Ticket()
+ {
+
+ }
+
+ public Ticket(string title, string body)
+ {
+ Title = title;
+ Body = body;
+ }
+ }
+}
diff --git a/src/AbpDesk/AbpDesk.Domain/Properties/AssemblyInfo.cs b/src/AbpDesk/AbpDesk.Domain/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..63044e64a9
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Domain/Properties/AssemblyInfo.cs
@@ -0,0 +1,19 @@
+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: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("AbpDesk.Domain")]
+[assembly: AssemblyTrademark("")]
+
+// 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("2dba20a3-8b1c-49f0-90f6-eb09db78b1b8")]
diff --git a/src/AbpDesk/AbpDesk.Domain/project.json b/src/AbpDesk/AbpDesk.Domain/project.json
new file mode 100644
index 0000000000..3ba528f0f6
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.Domain/project.json
@@ -0,0 +1,14 @@
+{
+ "version": "1.0.0-*",
+
+ "dependencies": {
+ "NETStandard.Library": "1.6.1",
+ "Volo.Abp": "1.0.0-*"
+ },
+
+ "frameworks": {
+ "netstandard1.6": {
+ "imports": "dnxcore50"
+ }
+ }
+}
diff --git a/src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk.EntityFrameworkCore.xproj b/src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk.EntityFrameworkCore.xproj
new file mode 100644
index 0000000000..e0860dcfa1
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk.EntityFrameworkCore.xproj
@@ -0,0 +1,20 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+ 35624e7c-6501-4b42-9aa7-70555666a8b3
+
+
+ .\obj
+ .\bin\
+ v4.6.1
+
+
+ 2.0
+
+
+
\ No newline at end of file
diff --git a/src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskDbContext.cs b/src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskDbContext.cs
new file mode 100644
index 0000000000..48ad9e9b1c
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskDbContext.cs
@@ -0,0 +1,18 @@
+using AbpDesk.Tickets;
+using Microsoft.EntityFrameworkCore;
+
+namespace AbpDesk.EntityFrameworkCore
+{
+ public class AbpDeskDbContext : DbContext
+ {
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ base.OnModelCreating(modelBuilder);
+
+ modelBuilder.Entity(builder =>
+ {
+ builder.ToTable("DskTickets");
+ });
+ }
+ }
+}
diff --git a/src/AbpDesk/AbpDesk.EntityFrameworkCore/Properties/AssemblyInfo.cs b/src/AbpDesk/AbpDesk.EntityFrameworkCore/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..8dc646f175
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.EntityFrameworkCore/Properties/AssemblyInfo.cs
@@ -0,0 +1,19 @@
+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: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("AbpDesk.EntityFrameworkCore")]
+[assembly: AssemblyTrademark("")]
+
+// 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("35624e7c-6501-4b42-9aa7-70555666a8b3")]
diff --git a/src/AbpDesk/AbpDesk.EntityFrameworkCore/project.json b/src/AbpDesk/AbpDesk.EntityFrameworkCore/project.json
new file mode 100644
index 0000000000..daec37af5c
--- /dev/null
+++ b/src/AbpDesk/AbpDesk.EntityFrameworkCore/project.json
@@ -0,0 +1,16 @@
+{
+ "version": "1.0.0-*",
+
+ "dependencies": {
+ "AbpDesk.Domain": "1.0.0-*",
+ "NETStandard.Library": "1.6.1",
+ "Volo.Abp.EntityFrameworkCore": "1.0.0-*",
+ "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0"
+ },
+
+ "frameworks": {
+ "netstandard1.6": {
+ "imports": "dnxcore50"
+ }
+ }
+}
diff --git a/test/Apps/AspNetCoreDemo/AspNetCoreDemo.xproj b/src/AbpDesk/AbpDesk.UI/AbpDesk.UI.xproj
similarity index 95%
rename from test/Apps/AspNetCoreDemo/AspNetCoreDemo.xproj
rename to src/AbpDesk/AbpDesk.UI/AbpDesk.UI.xproj
index c240f13525..855c3fa090 100644
--- a/test/Apps/AspNetCoreDemo/AspNetCoreDemo.xproj
+++ b/src/AbpDesk/AbpDesk.UI/AbpDesk.UI.xproj
@@ -4,16 +4,14 @@
14.0
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
-
12e14d95-4aba-4290-ab1d-ccf5eb158411
- AspNetCoreDemo
+ AbpDesk
.\obj
.\bin\
v4.6.1
-
2.0
@@ -22,4 +20,4 @@
-
+
\ No newline at end of file
diff --git a/test/Apps/AspNetCoreDemo/AppModule.cs b/src/AbpDesk/AbpDesk.UI/AppModule.cs
similarity index 89%
rename from test/Apps/AspNetCoreDemo/AppModule.cs
rename to src/AbpDesk/AbpDesk.UI/AppModule.cs
index 957a56638f..7c8479165b 100644
--- a/test/Apps/AspNetCoreDemo/AppModule.cs
+++ b/src/AbpDesk/AbpDesk.UI/AppModule.cs
@@ -1,12 +1,12 @@
-using Volo.Abp.AspNetCore;
-using Volo.Abp.Modularity;
-using Volo.Abp.AspNetCore.Modularity;
-using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
-using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Volo.Abp.AspNetCore;
+using Volo.Abp.AspNetCore.Modularity;
+using Volo.Abp.Modularity;
-namespace AspNetCoreDemo
+namespace AbpDesk
{
[DependsOn(typeof(AbpAspNetCoreModule))]
public class AppModule : AbpModule
diff --git a/test/Apps/AspNetCoreDemo/Program.cs b/src/AbpDesk/AbpDesk.UI/Program.cs
similarity index 94%
rename from test/Apps/AspNetCoreDemo/Program.cs
rename to src/AbpDesk/AbpDesk.UI/Program.cs
index ab54746192..f4eefc742e 100644
--- a/test/Apps/AspNetCoreDemo/Program.cs
+++ b/src/AbpDesk/AbpDesk.UI/Program.cs
@@ -1,7 +1,7 @@
using System.IO;
using Microsoft.AspNetCore.Hosting;
-namespace AspNetCoreDemo
+namespace AbpDesk
{
public class Program
{
diff --git a/test/Apps/AspNetCoreDemo/Properties/launchSettings.json b/src/AbpDesk/AbpDesk.UI/Properties/launchSettings.json
similarity index 100%
rename from test/Apps/AspNetCoreDemo/Properties/launchSettings.json
rename to src/AbpDesk/AbpDesk.UI/Properties/launchSettings.json
diff --git a/test/Apps/AspNetCoreDemo/Startup.cs b/src/AbpDesk/AbpDesk.UI/Startup.cs
similarity index 95%
rename from test/Apps/AspNetCoreDemo/Startup.cs
rename to src/AbpDesk/AbpDesk.UI/Startup.cs
index 71ec9520d1..4fc62c553b 100644
--- a/test/Apps/AspNetCoreDemo/Startup.cs
+++ b/src/AbpDesk/AbpDesk.UI/Startup.cs
@@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
-namespace AspNetCoreDemo
+namespace AbpDesk
{
public class Startup
{
diff --git a/test/Apps/AspNetCoreDemo/project.json b/src/AbpDesk/AbpDesk.UI/project.json
similarity index 91%
rename from test/Apps/AspNetCoreDemo/project.json
rename to src/AbpDesk/AbpDesk.UI/project.json
index e079132a8d..3831b3df5f 100644
--- a/test/Apps/AspNetCoreDemo/project.json
+++ b/src/AbpDesk/AbpDesk.UI/project.json
@@ -8,7 +8,8 @@
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.Extensions.Logging.Console": "1.1.0",
- "Volo.Abp.AspNetCore": "1.0.0-*"
+ "Volo.Abp.AspNetCore": "1.0.0-*",
+ "AbpDesk.Application.Contracts": "1.0.0-*"
},
"tools": {
diff --git a/test/Apps/AspNetCoreDemo/web.config b/src/AbpDesk/AbpDesk.UI/web.config
similarity index 100%
rename from test/Apps/AspNetCoreDemo/web.config
rename to src/AbpDesk/AbpDesk.UI/web.config
diff --git a/src/Volo.Abp/Volo/Abp/Application/Services/Dtos/EntityDto.cs b/src/Volo.Abp/Volo/Abp/Application/Services/Dtos/EntityDto.cs
new file mode 100644
index 0000000000..1d928aa41e
--- /dev/null
+++ b/src/Volo.Abp/Volo/Abp/Application/Services/Dtos/EntityDto.cs
@@ -0,0 +1,31 @@
+namespace Volo.Abp.Application.Services.Dtos
+{
+ ///
+ /// Implements common properties for entity based DTOs.
+ ///
+ /// Type of the primary key
+ public class EntityDto
+ {
+ ///
+ /// Id of the entity.
+ ///
+ public TPrimaryKey Id { get; set; }
+
+ ///
+ /// Creates a new object.
+ ///
+ public EntityDto()
+ {
+
+ }
+
+ ///
+ /// Creates a new object.
+ ///
+ /// Id of the entity
+ public EntityDto(TPrimaryKey id)
+ {
+ Id = id;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Volo.Abp/Volo/Abp/Application/Services/Dtos/ListResultDto.cs b/src/Volo.Abp/Volo/Abp/Application/Services/Dtos/ListResultDto.cs
new file mode 100644
index 0000000000..e47ed714a7
--- /dev/null
+++ b/src/Volo.Abp/Volo/Abp/Application/Services/Dtos/ListResultDto.cs
@@ -0,0 +1,36 @@
+using System.Collections.Generic;
+
+namespace Volo.Abp.Application.Services.Dtos
+{
+ //TODO: [Serializable] for all DTO classes
+
+ public class ListResultDto
+ {
+ ///
+ /// List of items.
+ ///
+ public IReadOnlyList Items
+ {
+ get { return _items ?? (_items = new List()); }
+ set { _items = value; }
+ }
+ private IReadOnlyList _items;
+
+ ///
+ /// Creates a new object.
+ ///
+ public ListResultDto()
+ {
+
+ }
+
+ ///
+ /// Creates a new object.
+ ///
+ /// List of items
+ public ListResultDto(IReadOnlyList items)
+ {
+ Items = items;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Volo.Abp/Volo/Abp/Application/Services/IApplicationService.cs b/src/Volo.Abp/Volo/Abp/Application/Services/IApplicationService.cs
new file mode 100644
index 0000000000..49a7fa3898
--- /dev/null
+++ b/src/Volo.Abp/Volo/Abp/Application/Services/IApplicationService.cs
@@ -0,0 +1,12 @@
+using Volo.DependencyInjection;
+
+namespace Volo.Abp.Application.Services
+{
+ ///
+ /// This interface must be implemented by all application services to identify them by convention.
+ ///
+ public interface IApplicationService : ITransientDependency
+ {
+
+ }
+}