Make app.AddNodeServices optional in Angular case. Fix tag helper attribute name. Bump versions.

This commit is contained in:
SteveSandersonMS
2015-11-02 20:07:31 -08:00
parent 37eb4efff0
commit 7e1955c6fe
10 changed files with 22 additions and 19 deletions

View File

@@ -1,7 +1,7 @@
using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Razor.Runtime.TagHelpers; using Microsoft.AspNet.Razor.Runtime.TagHelpers;
using Microsoft.AspNet.Http; using Microsoft.AspNet.Http;
using Microsoft.AspNet.NodeServices;
using Microsoft.AspNet.Http.Extensions; using Microsoft.AspNet.Http.Extensions;
namespace Microsoft.AspNet.NodeServices.Angular namespace Microsoft.AspNet.NodeServices.Angular
@@ -10,6 +10,7 @@ namespace Microsoft.AspNet.NodeServices.Angular
public class AngularRunAtServerTagHelper : TagHelper public class AngularRunAtServerTagHelper : TagHelper
{ {
static StringAsTempFile nodeScript; static StringAsTempFile nodeScript;
static INodeServices fallbackNodeServices; // Used only if no INodeServices was registered with DI
static AngularRunAtServerTagHelper() { static AngularRunAtServerTagHelper() {
// Consider populating this lazily // Consider populating this lazily
@@ -17,8 +18,8 @@ namespace Microsoft.AspNet.NodeServices.Angular
nodeScript = new StringAsTempFile(script); // Will be cleaned up on process exit nodeScript = new StringAsTempFile(script); // Will be cleaned up on process exit
} }
const string PrerenderModuleAttributeName = "aspnet-ng2-prerender-module"; const string PrerenderModuleAttributeName = "asp-ng2-prerender-module";
const string PrerenderExportAttributeName = "aspnet-ng2-prerender-export"; const string PrerenderExportAttributeName = "asp-ng2-prerender-export";
[HtmlAttributeName(PrerenderModuleAttributeName)] [HtmlAttributeName(PrerenderModuleAttributeName)]
public string ModuleName { get; set; } public string ModuleName { get; set; }
@@ -29,10 +30,16 @@ namespace Microsoft.AspNet.NodeServices.Angular
private IHttpContextAccessor contextAccessor; private IHttpContextAccessor contextAccessor;
private INodeServices nodeServices; private INodeServices nodeServices;
public AngularRunAtServerTagHelper(INodeServices nodeServices, IHttpContextAccessor contextAccessor) public AngularRunAtServerTagHelper(IServiceProvider nodeServices, IHttpContextAccessor contextAccessor)
{ {
this.contextAccessor = contextAccessor; this.contextAccessor = contextAccessor;
this.nodeServices = nodeServices; this.nodeServices = (INodeServices)nodeServices.GetService(typeof (INodeServices)) ?? fallbackNodeServices;
// Consider removing the following. Having it means you can get away with not putting app.AddNodeServices()
// in your startup file, but then again it might be confusing that you don't need to.
if (this.nodeServices == null) {
this.nodeServices = fallbackNodeServices = Configuration.CreateNodeServices(NodeHostingModel.Http);
}
} }
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)

View File

@@ -1,5 +1,5 @@
{ {
"version": "1.0.0-alpha2", "version": "1.0.0-alpha3",
"description": "Microsoft.AspNet.NodeServices.Angular Class Library", "description": "Microsoft.AspNet.NodeServices.Angular Class Library",
"authors": [ "authors": [
"Microsoft" "Microsoft"
@@ -25,7 +25,7 @@
} }
}, },
"dependencies": { "dependencies": {
"Microsoft.AspNet.NodeServices": "1.0.0-alpha2", "Microsoft.AspNet.NodeServices": "1.0.0-alpha3",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta8" "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta8"
}, },
"resource": [ "resource": [

View File

@@ -1,5 +1,5 @@
{ {
"version": "1.0.0-alpha2", "version": "1.0.0-alpha3",
"description": "Microsoft.AspNet.NodeServices.React Class Library", "description": "Microsoft.AspNet.NodeServices.React Class Library",
"authors": [ "authors": [
"Microsoft" "Microsoft"
@@ -25,7 +25,7 @@
} }
}, },
"dependencies": { "dependencies": {
"Microsoft.AspNet.NodeServices": "1.0.0-alpha2" "Microsoft.AspNet.NodeServices": "1.0.0-alpha3"
}, },
"resource": [ "resource": [
"Content/**/*" "Content/**/*"

View File

@@ -8,7 +8,7 @@ namespace Microsoft.AspNet.NodeServices {
}); });
} }
private static INodeServices CreateNodeServices(NodeHostingModel hostingModel) public static INodeServices CreateNodeServices(NodeHostingModel hostingModel)
{ {
switch (hostingModel) switch (hostingModel)
{ {

View File

@@ -1,5 +1,5 @@
{ {
"version": "1.0.0-alpha2", "version": "1.0.0-alpha3",
"description": "Microsoft.AspNet.NodeServices", "description": "Microsoft.AspNet.NodeServices",
"authors": [ "Microsoft" ], "authors": [ "Microsoft" ],
"tags": [""], "tags": [""],

View File

@@ -8,7 +8,6 @@ using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http; using Microsoft.AspNet.Http;
using Microsoft.AspNet.Identity.EntityFramework; using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.AspNet.NodeServices;
using Microsoft.Data.Entity; using Microsoft.Data.Entity;
using Microsoft.Dnx.Runtime; using Microsoft.Dnx.Runtime;
using Microsoft.Framework.Configuration; using Microsoft.Framework.Configuration;
@@ -79,9 +78,6 @@ namespace MusicStore
Mapper.CreateMap<ArtistResultDto, Artist>(); Mapper.CreateMap<ArtistResultDto, Artist>();
Mapper.CreateMap<Genre, GenreResultDto>(); Mapper.CreateMap<Genre, GenreResultDto>();
Mapper.CreateMap<GenreResultDto, Genre>(); Mapper.CreateMap<GenreResultDto, Genre>();
// Enable Node Services
services.AddNodeServices();
} }
// Configure is called after ConfigureServices is called. // Configure is called after ConfigureServices is called.

View File

@@ -3,7 +3,7 @@
} }
<cache vary-by="@Context.Request.Path"> <cache vary-by="@Context.Request.Path">
<app aspnet-ng2-prerender-module="wwwroot/ng-app/components/app/app"> <app asp-ng2-prerender-module="wwwroot/ng-app/components/app/app">
Loading... Loading...
</app> </app>
</cache> </cache>

View File

@@ -19,7 +19,7 @@
"EntityFramework.SQLite": "7.0.0-beta8", "EntityFramework.SQLite": "7.0.0-beta8",
"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta8", "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta8",
"AutoMapper": "4.0.0-alpha1", "AutoMapper": "4.0.0-alpha1",
"Microsoft.AspNet.NodeServices.Angular": "1.0.0-alpha2" "Microsoft.AspNet.NodeServices.Angular": "1.0.0-alpha3"
}, },
"commands": { "commands": {
"web": "Microsoft.AspNet.Server.Kestrel" "web": "Microsoft.AspNet.Server.Kestrel"

View File

@@ -16,7 +16,7 @@
"Microsoft.Framework.Logging": "1.0.0-beta8", "Microsoft.Framework.Logging": "1.0.0-beta8",
"Microsoft.Framework.Logging.Console": "1.0.0-beta8", "Microsoft.Framework.Logging.Console": "1.0.0-beta8",
"Microsoft.Framework.Logging.Debug": "1.0.0-beta8", "Microsoft.Framework.Logging.Debug": "1.0.0-beta8",
"Microsoft.AspNet.NodeServices": "1.0.0-alpha2" "Microsoft.AspNet.NodeServices": "1.0.0-alpha3"
}, },
"commands": { "commands": {
"web": "Microsoft.AspNet.Server.Kestrel" "web": "Microsoft.AspNet.Server.Kestrel"

View File

@@ -16,7 +16,7 @@
"Microsoft.Framework.Logging": "1.0.0-beta8", "Microsoft.Framework.Logging": "1.0.0-beta8",
"Microsoft.Framework.Logging.Console": "1.0.0-beta8", "Microsoft.Framework.Logging.Console": "1.0.0-beta8",
"Microsoft.Framework.Logging.Debug": "1.0.0-beta8", "Microsoft.Framework.Logging.Debug": "1.0.0-beta8",
"Microsoft.AspNet.NodeServices.React": "1.0.0-alpha2" "Microsoft.AspNet.NodeServices.React": "1.0.0-alpha3"
}, },
"commands": { "commands": {
"web": "Microsoft.AspNet.Server.Kestrel" "web": "Microsoft.AspNet.Server.Kestrel"