diff --git a/WebFx.sln b/WebFx.sln index 2aefd06076..69f7014e52 100644 --- a/WebFx.sln +++ b/WebFx.sln @@ -43,6 +43,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{3BA657BF-2 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.Mvc.ModelBinding.Test.net45", "test\Microsoft.AspNet.Mvc.ModelBinding.Test\Microsoft.AspNet.Mvc.ModelBinding.Test.net45.csproj", "{42195A56-42C0-4CFF-A982-B6E24EFC6356}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.Mvc.Startup.net45", "src\Microsoft.AspNet.Mvc.Startup\Microsoft.AspNet.Mvc.Startup.net45.csproj", "{8E6EAA52-7132-4707-936D-F15C8B28CFBA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.Mvc.Startup.k10", "src\Microsoft.AspNet.Mvc.Startup\Microsoft.AspNet.Mvc.Startup.k10.csproj", "{43ECCFDF-E646-4766-B339-F5CCD69DD6C3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -101,6 +105,14 @@ Global {42195A56-42C0-4CFF-A982-B6E24EFC6356}.Debug|Any CPU.Build.0 = Debug|Any CPU {42195A56-42C0-4CFF-A982-B6E24EFC6356}.Release|Any CPU.ActiveCfg = Release|Any CPU {42195A56-42C0-4CFF-A982-B6E24EFC6356}.Release|Any CPU.Build.0 = Release|Any CPU + {8E6EAA52-7132-4707-936D-F15C8B28CFBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E6EAA52-7132-4707-936D-F15C8B28CFBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E6EAA52-7132-4707-936D-F15C8B28CFBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E6EAA52-7132-4707-936D-F15C8B28CFBA}.Release|Any CPU.Build.0 = Release|Any CPU + {43ECCFDF-E646-4766-B339-F5CCD69DD6C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {43ECCFDF-E646-4766-B339-F5CCD69DD6C3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {43ECCFDF-E646-4766-B339-F5CCD69DD6C3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {43ECCFDF-E646-4766-B339-F5CCD69DD6C3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -115,11 +127,13 @@ Global {28AA31B2-6504-432D-8599-1501FE0B100A} = {6C2EDE5B-CA31-42DD-A352-84B10CC70C98} {236CDB04-8FDA-4152-9A5B-7F98C19C663A} = {6C2EDE5B-CA31-42DD-A352-84B10CC70C98} {64BD92BA-F313-496C-ACE6-B9C4C10C420E} = {6C2EDE5B-CA31-42DD-A352-84B10CC70C98} + {8E6EAA52-7132-4707-936D-F15C8B28CFBA} = {6C2EDE5B-CA31-42DD-A352-84B10CC70C98} {0D2C8C3D-AFC3-4E1F-A6D8-9F690EE5E063} = {4EB70D0E-E27E-4C42-AB58-BC8B325EDFB3} {613579ED-7B96-4F5C-8DBF-D2C580257BE2} = {4EB70D0E-E27E-4C42-AB58-BC8B325EDFB3} {24947215-86AB-4DD0-B94E-88B1EC4DC877} = {4EB70D0E-E27E-4C42-AB58-BC8B325EDFB3} {DA65D56F-1C40-4D38-B1E0-BF9641A98C52} = {4EB70D0E-E27E-4C42-AB58-BC8B325EDFB3} {BA88E212-5889-48DC-823F-A3A67DDEF123} = {4EB70D0E-E27E-4C42-AB58-BC8B325EDFB3} + {43ECCFDF-E646-4766-B339-F5CCD69DD6C3} = {4EB70D0E-E27E-4C42-AB58-BC8B325EDFB3} {501817DD-8143-4A50-888D-99896A82CD12} = {222CA408-93EE-473A-9325-D04989EC9FEF} {A7D7CD66-A407-4144-8AB7-07F895F87137} = {CE037E26-9EB5-48E2-B73B-06C6FF6CC9F5} {42195A56-42C0-4CFF-A982-B6E24EFC6356} = {3BA657BF-28B1-42DA-B5B0-1C4601FCF7B1} diff --git a/samples/MvcSample/Startup.cs b/samples/MvcSample/Startup.cs index 5fa0576dc1..190086249e 100644 --- a/samples/MvcSample/Startup.cs +++ b/samples/MvcSample/Startup.cs @@ -3,9 +3,8 @@ using System; using System.IO; using Microsoft.AspNet.Abstractions; using Microsoft.AspNet.Mvc; -using Microsoft.AspNet.Mvc.Razor; using Microsoft.AspNet.Mvc.Routing; -using Microsoft.Owin.FileSystems; +using Microsoft.AspNet.Mvc.Startup; using Owin; namespace MvcSample @@ -22,18 +21,10 @@ namespace MvcSample private void ConfigureMvc(IBuilder builder) { - var serviceProvider = MvcServices.Create(); - // HACK appbase doesn't seem to work. When in VS we're pointing at bin\Debug\Net45, so move up 3 directories string appRoot = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, "..", "..", "..")); - serviceProvider.AddInstance(new PhysicalFileSystem(appRoot)); - serviceProvider.AddInstance(new MvcRazorHost("Microsoft.AspNet.Mvc.Razor.RazorView")); - serviceProvider.Add(); - serviceProvider.Add(); - serviceProvider.Add(); - serviceProvider.Add(); - + var serviceProvider = MvcServices.Create(appRoot); var handler = new MvcHandler(serviceProvider); builder.Run(async context => diff --git a/samples/MvcSample/project.json b/samples/MvcSample/project.json index 5b05616b87..0dae194f70 100644 --- a/samples/MvcSample/project.json +++ b/samples/MvcSample/project.json @@ -9,7 +9,8 @@ "Microsoft.AspNet.Mvc.ModelBinding" : "", "Microsoft.AspNet.Mvc.Rendering" : "", "Microsoft.AspNet.Mvc.Razor" : "", - "Microsoft.AspNet.Mvc.Razor.Host" : "" + "Microsoft.AspNet.Mvc.Razor.Host" : "", + "Microsoft.AspNet.Mvc.Startup" : "" }, "configurations": { "net45": { diff --git a/src/Microsoft.AspNet.Mvc/MvcHandler.cs b/src/Microsoft.AspNet.Mvc.Startup/MvcHandler.cs similarity index 100% rename from src/Microsoft.AspNet.Mvc/MvcHandler.cs rename to src/Microsoft.AspNet.Mvc.Startup/MvcHandler.cs index 0b35e285a1..a42b534459 100644 --- a/src/Microsoft.AspNet.Mvc/MvcHandler.cs +++ b/src/Microsoft.AspNet.Mvc.Startup/MvcHandler.cs @@ -1,8 +1,8 @@ using System; using System.Threading.Tasks; -using Microsoft.AspNet.Mvc.Routing; -using Microsoft.AspNet.DependencyInjection; using Microsoft.AspNet.Abstractions; +using Microsoft.AspNet.DependencyInjection; +using Microsoft.AspNet.Mvc.Routing; namespace Microsoft.AspNet.Mvc { diff --git a/src/Microsoft.AspNet.Mvc.Startup/MvcServices.cs b/src/Microsoft.AspNet.Mvc.Startup/MvcServices.cs new file mode 100644 index 0000000000..37f941ce0c --- /dev/null +++ b/src/Microsoft.AspNet.Mvc.Startup/MvcServices.cs @@ -0,0 +1,31 @@ +using Microsoft.AspNet.DependencyInjection; +using Microsoft.AspNet.Mvc.Razor; +using Microsoft.Owin.FileSystems; + +namespace Microsoft.AspNet.Mvc.Startup +{ + public static class MvcServices + { + public static ServiceProvider Create(string appRoot) + { + var services = new ServiceProvider(); + services.Add(); + services.Add(); + services.Add(); + services.Add(); + services.Add(); + services.Add(); + + services.AddInstance(new PhysicalFileSystem(appRoot)); + services.AddInstance(new MvcRazorHost("Microsoft.AspNet.Mvc.Razor.RazorView")); + #if NET45 + services.Add(); + #endif + services.Add(); + services.Add(); + services.Add(); + + return services; + } + } +} diff --git a/src/Microsoft.AspNet.Mvc.Startup/project.json b/src/Microsoft.AspNet.Mvc.Startup/project.json new file mode 100644 index 0000000000..0aeddb4cae --- /dev/null +++ b/src/Microsoft.AspNet.Mvc.Startup/project.json @@ -0,0 +1,18 @@ +{ + "version" : "0.1-alpha-*", + "dependencies": { + "Microsoft.AspNet.Abstractions" : "0.1-alpha-*", + "Microsoft.AspNet.DependencyInjection" : "0.1-alpha-*", + "Microsoft.AspNet.FileSystems" : "0.1-alpha-*", + "Microsoft.AspNet.Razor" : "0.1-alpha-*", + "Microsoft.AspNet.Mvc": "", + "Microsoft.AspNet.Mvc.Razor": "", + "Microsoft.AspNet.Mvc.ModelBinding" : "", + "Microsoft.AspNet.Mvc.Rendering" : "", + "Microsoft.AspNet.Mvc.Razor.Host": "" + }, + "configurations": { + "net45": { }, + "k10" : { } + } +} \ No newline at end of file diff --git a/src/Microsoft.AspNet.Mvc/MvcServices.cs b/src/Microsoft.AspNet.Mvc/MvcServices.cs deleted file mode 100644 index 3e2390e4b2..0000000000 --- a/src/Microsoft.AspNet.Mvc/MvcServices.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using Microsoft.AspNet.DependencyInjection; - -namespace Microsoft.AspNet.Mvc -{ - public static class MvcServices - { - public static ServiceProvider Create() - { - var services = new ServiceProvider(); - DoCallback((service, implementation) => services.Add(service, implementation)); - return services; - } - - public static void DoCallback(Action callback) - { - callback(typeof(IControllerFactory), typeof(DefaultControllerFactory)); - callback(typeof(IActionInvokerFactory), typeof(ActionInvokerFactory)); - callback(typeof(IActionResultHelper), typeof(ActionResultHelper)); - callback(typeof(IActionResultFactory), typeof(ActionResultFactory)); - - - // TODO: Should be many - callback(typeof(IActionDescriptorProvider), typeof(ActionDescriptorProvider)); - callback(typeof(IActionInvokerProvider), typeof(ActionInvokerProvider)); - } - } -}