diff --git a/Volo.Abp.sln b/Volo.Abp.sln
new file mode 100644
index 0000000000..46e3eab048
--- /dev/null
+++ b/Volo.Abp.sln
@@ -0,0 +1,48 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{CBCC288A-53C3-402F-99F7-E468738560F5}"
+ ProjectSection(SolutionItems) = preProject
+ global.json = global.json
+ EndProjectSection
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Volo.Abp", "src\Volo.Abp\Volo.Abp.xproj", "{FC5F7372-EA60-4052-B943-0EE070221CC1}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Volo.Abp.DependencyInjection", "src\Volo.Abp.DependencyInjection\Volo.Abp.DependencyInjection.xproj", "{F6F172F4-977B-4E20-BB9D-D4B083624011}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{447C8A77-E5F0-4538-8687-7383196D04EA}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Volo.Abp.Tests", "test\Volo.Abp.Tests\Volo.Abp.Tests.xproj", "{E9A85F1B-A5CB-4E19-B2BB-A7F97BB25EE1}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {FC5F7372-EA60-4052-B943-0EE070221CC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FC5F7372-EA60-4052-B943-0EE070221CC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FC5F7372-EA60-4052-B943-0EE070221CC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FC5F7372-EA60-4052-B943-0EE070221CC1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F6F172F4-977B-4E20-BB9D-D4B083624011}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F6F172F4-977B-4E20-BB9D-D4B083624011}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F6F172F4-977B-4E20-BB9D-D4B083624011}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F6F172F4-977B-4E20-BB9D-D4B083624011}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E9A85F1B-A5CB-4E19-B2BB-A7F97BB25EE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E9A85F1B-A5CB-4E19-B2BB-A7F97BB25EE1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E9A85F1B-A5CB-4E19-B2BB-A7F97BB25EE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E9A85F1B-A5CB-4E19-B2BB-A7F97BB25EE1}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {FC5F7372-EA60-4052-B943-0EE070221CC1} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
+ {F6F172F4-977B-4E20-BB9D-D4B083624011} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
+ {E9A85F1B-A5CB-4E19-B2BB-A7F97BB25EE1} = {447C8A77-E5F0-4538-8687-7383196D04EA}
+ EndGlobalSection
+EndGlobal
diff --git a/global.json b/global.json
new file mode 100644
index 0000000000..9d09ab54cb
--- /dev/null
+++ b/global.json
@@ -0,0 +1,6 @@
+{
+ "projects": [ "src", "test" ],
+ "sdk": {
+ "version": "1.0.0-preview2-003131"
+ }
+}
diff --git a/src/Volo.Abp.DependencyInjection/Properties/AssemblyInfo.cs b/src/Volo.Abp.DependencyInjection/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..5e243abac0
--- /dev/null
+++ b/src/Volo.Abp.DependencyInjection/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("Volo.Abp.DependencyInjection")]
+[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("f6f172f4-977b-4e20-bb9d-d4b083624011")]
diff --git a/src/Volo.Abp.DependencyInjection/Volo.Abp.DependencyInjection.xproj b/src/Volo.Abp.DependencyInjection/Volo.Abp.DependencyInjection.xproj
new file mode 100644
index 0000000000..dd0ba7421c
--- /dev/null
+++ b/src/Volo.Abp.DependencyInjection/Volo.Abp.DependencyInjection.xproj
@@ -0,0 +1,21 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+ f6f172f4-977b-4e20-bb9d-d4b083624011
+ Volo.Abp.DependencyInjection
+ .\obj
+ .\bin\
+ v4.6.1
+
+
+
+ 2.0
+
+
+
diff --git a/src/Volo.Abp.DependencyInjection/project.json b/src/Volo.Abp.DependencyInjection/project.json
new file mode 100644
index 0000000000..3f091a2fb8
--- /dev/null
+++ b/src/Volo.Abp.DependencyInjection/project.json
@@ -0,0 +1,14 @@
+{
+ "version": "1.0.0-*",
+
+ "dependencies": {
+ "NETStandard.Library": "1.6.1",
+ "Microsoft.Extensions.DependencyInjection": "1.1.0"
+ },
+
+ "frameworks": {
+ "netstandard1.6": {
+ "imports": "dnxcore50"
+ }
+ }
+}
diff --git a/src/Volo.Abp/Modularity/IAbpModule.cs b/src/Volo.Abp/Modularity/IAbpModule.cs
new file mode 100644
index 0000000000..789f12457f
--- /dev/null
+++ b/src/Volo.Abp/Modularity/IAbpModule.cs
@@ -0,0 +1,9 @@
+using Microsoft.Extensions.DependencyInjection;
+
+namespace Volo.Abp.Modularity
+{
+ public interface IAbpModule
+ {
+ void ConfigureServices(IServiceCollection services);
+ }
+}
diff --git a/src/Volo.Abp/Properties/AssemblyInfo.cs b/src/Volo.Abp/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..e1de3d578c
--- /dev/null
+++ b/src/Volo.Abp/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("Volo.Abp")]
+[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("fc5f7372-ea60-4052-b943-0ee070221cc1")]
diff --git a/src/Volo.Abp/Volo.Abp.xproj b/src/Volo.Abp/Volo.Abp.xproj
new file mode 100644
index 0000000000..3af070bb13
--- /dev/null
+++ b/src/Volo.Abp/Volo.Abp.xproj
@@ -0,0 +1,21 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+ fc5f7372-ea60-4052-b943-0ee070221cc1
+ Volo.Abp
+ .\obj
+ .\bin\
+ v4.6.1
+
+
+
+ 2.0
+
+
+
diff --git a/src/Volo.Abp/project.json b/src/Volo.Abp/project.json
new file mode 100644
index 0000000000..03a4741f16
--- /dev/null
+++ b/src/Volo.Abp/project.json
@@ -0,0 +1,14 @@
+{
+ "version": "1.0.0-*",
+
+ "dependencies": {
+ "NETStandard.Library": "1.6.1",
+ "Volo.Abp.DependencyInjection": "1.0.0-*"
+ },
+
+ "frameworks": {
+ "netstandard1.6": {
+ "imports": "dnxcore50"
+ }
+ }
+}
diff --git a/test/Volo.Abp.Tests/Properties/AssemblyInfo.cs b/test/Volo.Abp.Tests/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..2c2097a329
--- /dev/null
+++ b/test/Volo.Abp.Tests/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("Volo.Abp.Tests")]
+[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("e9a85f1b-a5cb-4e19-b2bb-a7f97bb25ee1")]
diff --git a/test/Volo.Abp.Tests/Volo.Abp.Tests.xproj b/test/Volo.Abp.Tests/Volo.Abp.Tests.xproj
new file mode 100644
index 0000000000..7faf9ac85d
--- /dev/null
+++ b/test/Volo.Abp.Tests/Volo.Abp.Tests.xproj
@@ -0,0 +1,21 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+ e9a85f1b-a5cb-4e19-b2bb-a7f97bb25ee1
+ Volo.Abp.Tests
+ .\obj
+ .\bin\
+ v4.6.1
+
+
+
+ 2.0
+
+
+
diff --git a/test/Volo.Abp.Tests/project.json b/test/Volo.Abp.Tests/project.json
new file mode 100644
index 0000000000..863659ace7
--- /dev/null
+++ b/test/Volo.Abp.Tests/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"
+ }
+ }
+}