Moving MvcService and MvcHandler to a separate assembly

Tenatively named Microsoft.AspNet.Mvc.Startup, the assembly will act as an
entry point into the Mvc handler \ middleware.
This commit is contained in:
Pranav K 2014-02-06 16:18:45 -08:00
parent b51fd08bab
commit 591e21eea9
7 changed files with 69 additions and 42 deletions

View File

@ -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}

View File

@ -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<IFileSystem>(new PhysicalFileSystem(appRoot));
serviceProvider.AddInstance<IMvcRazorHost>(new MvcRazorHost("Microsoft.AspNet.Mvc.Razor.RazorView<dynamic>"));
serviceProvider.Add<ICompilationService, CscBasedCompilationService>();
serviceProvider.Add<IRazorCompilationService, RazorCompilationService>();
serviceProvider.Add<IVirtualPathViewFactory, VirtualPathViewFactory>();
serviceProvider.Add<IViewEngine, RazorViewEngine>();
var serviceProvider = MvcServices.Create(appRoot);
var handler = new MvcHandler(serviceProvider);
builder.Run(async context =>

View File

@ -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": {

View File

@ -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
{

View File

@ -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<IControllerFactory, DefaultControllerFactory>();
services.Add<IActionInvokerFactory, ActionInvokerFactory>();
services.Add<IActionResultHelper, ActionResultHelper>();
services.Add<IActionResultFactory, ActionResultFactory>();
services.Add<IActionDescriptorProvider, ActionDescriptorProvider>();
services.Add<IActionInvokerProvider, ActionInvokerProvider>();
services.AddInstance<IFileSystem>(new PhysicalFileSystem(appRoot));
services.AddInstance<IMvcRazorHost>(new MvcRazorHost("Microsoft.AspNet.Mvc.Razor.RazorView<dynamic>"));
#if NET45
services.Add<ICompilationService, CscBasedCompilationService>();
#endif
services.Add<IRazorCompilationService, RazorCompilationService>();
services.Add<IVirtualPathViewFactory, VirtualPathViewFactory>();
services.Add<IViewEngine, RazorViewEngine>();
return services;
}
}
}

View File

@ -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" : { }
}
}

View File

@ -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<Type, Type> 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));
}
}
}