Skip to content

Commit

Permalink
* Upgrade to .NET core 3.1 and Blazor 3.2.
Browse files Browse the repository at this point in the history
* Fix for #42.
  • Loading branch information
jspuij committed Oct 21, 2020
1 parent 1b02a90 commit 813718c
Show file tree
Hide file tree
Showing 29 changed files with 268 additions and 152 deletions.
2 changes: 1 addition & 1 deletion build/build.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
<PackageProjectUrl>https://github.com/jspuij/Cortex.Net</PackageProjectUrl>
<DisableFody>true</DisableFody>
<Version>0.3.1</Version>
<Version>0.4.0</Version>
<NeutralLanguage>en-US</NeutralLanguage>
</PropertyGroup>
<PropertyGroup>
Expand Down
5 changes: 5 additions & 0 deletions docs/pages/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

The changelog is found below:

## 0.4.0

* Upgrade some dependencies.
* Fix for https://github.com/jspuij/Cortex.Net/issues/42.

## 0.3.1

* Upgrade to Blazor final 3.2.0
Expand Down
10 changes: 5 additions & 5 deletions samples/Cortex.Net.BlazorTodo/Cortex.Net.BlazorTodo.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Fody" Version="6.1.2">
<PackageReference Include="Fody" Version="6.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="3.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Build" Version="3.2.0" PrivateAssets="all" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="3.2.1" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Build" Version="3.2.1" PrivateAssets="all" />
<PackageReference Include="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.2.0-preview3.20168.3" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="3.2.0" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.0.0">
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="3.2.1" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
8 changes: 4 additions & 4 deletions samples/FlightFinder.Client/FlightFinder.Client.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Fody" Version="6.1.2">
<PackageReference Include="Fody" Version="6.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="3.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Build" Version="3.2.0" PrivateAssets="all" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="3.2.1" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Build" Version="3.2.1" PrivateAssets="all" />
<PackageReference Include="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.2.0-preview3.20168.3" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="3.2.0" PrivateAssets="all" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="3.2.1" PrivateAssets="all" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
2 changes: 2 additions & 0 deletions samples/FlightFinder.Client/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@ namespace FlightFinder.Client
/// <summary>
/// The program class. Bootstraps the WASM application.
/// </summary>
#pragma warning disable RCS1102 // Make class static.
public class Program
#pragma warning restore RCS1102 // Make class static.
{
/// <summary>
/// Main entry point for the WASM application.
Expand Down
2 changes: 1 addition & 1 deletion samples/FlightFinder.Server/FlightFinder.Server.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="3.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="3.2.1" />
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
2 changes: 1 addition & 1 deletion samples/FlightFinder.Shared/FlightFinder.Shared.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Fody" Version="6.1.2">
<PackageReference Include="Fody" Version="6.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
6 changes: 3 additions & 3 deletions src/Cortex.Net.Blazor/Cortex.Net.Blazor.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Fody" Version="6.1.2" PrivateAssets="None" />
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="3.1.4" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.0.0">
<PackageReference Include="Fody" Version="6.3.0" PrivateAssets="None" />
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="3.1.9" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
4 changes: 2 additions & 2 deletions src/Cortex.Net.Blazor/ObserverObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,12 @@ public sealed class ObserverObject : IDisposable
/// <summary>
/// The next fragment Id.
/// </summary>
private int nextFragmentId = 0;
private int nextFragmentId;

/// <summary>
/// Gets the current RenderFragment.
/// </summary>
private RenderFragment current = null;
private RenderFragment current;

/// <summary>
/// Initializes a new instance of the <see cref="ObserverObject"/> class.
Expand Down
4 changes: 2 additions & 2 deletions src/Cortex.Net.DynamicData/Cortex.Net.DynamicData.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@

<ItemGroup>
<PackageReference Include="DynamicData" Version="6.14.18" />
<PackageReference Include="Fody" Version="6.1.2" PrivateAssets="None" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.0.0">
<PackageReference Include="Fody" Version="6.3.0" PrivateAssets="None" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
57 changes: 33 additions & 24 deletions src/Cortex.Net.Fody/ActionWeaver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -305,15 +305,18 @@ private void WeaveMethod(MethodDefinition methodDefinition)

// push IL code for initialization of action members to the queue to emit in the ISharedState setter.
this.processorQueue.SharedStateAssignmentQueue.Enqueue(
(declaringType,
false,
(processor, sharedStateBackingField) => this.EmitSharedStateSetter(
new SharedAssignmentQueueEntry
{
ReactiveObjectTypeDefinition = declaringType,
AddInjectAttribute = false,
ProcessorAction = (processor, sharedStateBackingField) => this.EmitSharedStateSetter(
processor,
sharedStateBackingField,
methodDefinition,
actionName,
actionType,
actionFieldDefinition)));
actionFieldDefinition),
});

// extend the action method body.
ExtendActionMethodBody(methodDefinition, actionType, entranceCounterDefinition, actionFieldDefinition);
Expand Down Expand Up @@ -349,31 +352,37 @@ private void WeaveAsyncMethod(MethodDefinition methodDefinition)

// push IL code for initialization of action members to the queue to emit in the ISharedState setter.
this.processorQueue.SharedStateAssignmentQueue.Enqueue(
(stateMachineType,
false,
(processor, sharedStateBackingField) =>
{
stateMachineSharedStateBackingField = sharedStateBackingField;
if (declaringTypeSharedStateBackingField != null)
new SharedAssignmentQueueEntry
{
ReactiveObjectTypeDefinition = stateMachineType,
AddInjectAttribute = false,
ProcessorAction = (processor, sharedStateBackingField) =>
{
this.ExtendMoveNextMethodBody(moveNextMethod, methodDefinition, stateMachineSharedStateBackingField);
this.ExtendAsyncMethodBody(methodDefinition, declaringTypeSharedStateBackingField, innerType);
}
}));
stateMachineSharedStateBackingField = sharedStateBackingField;
if (declaringTypeSharedStateBackingField != null)
{
this.ExtendMoveNextMethodBody(moveNextMethod, methodDefinition, stateMachineSharedStateBackingField);
this.ExtendAsyncMethodBody(methodDefinition, declaringTypeSharedStateBackingField, innerType);
}
},
});

// push IL code for initialization of IShared State of inner struct / class for async.
this.processorQueue.SharedStateAssignmentQueue.Enqueue(
(declaringType,
false,
(processor, sharedStateBackingField) =>
{
declaringTypeSharedStateBackingField = sharedStateBackingField;
if (stateMachineSharedStateBackingField != null)
new SharedAssignmentQueueEntry
{
ReactiveObjectTypeDefinition = declaringType,
AddInjectAttribute = false,
ProcessorAction = (processor, sharedStateBackingField) =>
{
this.ExtendMoveNextMethodBody(moveNextMethod, methodDefinition, stateMachineSharedStateBackingField);
this.ExtendAsyncMethodBody(methodDefinition, declaringTypeSharedStateBackingField, innerType);
}
}));
declaringTypeSharedStateBackingField = sharedStateBackingField;
if (stateMachineSharedStateBackingField != null)
{
this.ExtendMoveNextMethodBody(moveNextMethod, methodDefinition, stateMachineSharedStateBackingField);
this.ExtendAsyncMethodBody(methodDefinition, declaringTypeSharedStateBackingField, innerType);
}
},
});
}

/// <summary>
Expand Down
18 changes: 12 additions & 6 deletions src/Cortex.Net.Fody/BlazorObserverWeaver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -148,12 +148,18 @@ private void WeaveClass(TypeDefinition decoratedClass)
}
}

this.processorQueue.SharedStateAssignmentQueue.Enqueue((decoratedClass, true, (processor, sharedStateBackingField) => this.EmitObserverObjectInit(
processor,
observerName,
innerObserverObjectField,
buildRenderTreeMethod,
stateHasChangedMethod)));
this.processorQueue.SharedStateAssignmentQueue.Enqueue(
new SharedAssignmentQueueEntry
{
ReactiveObjectTypeDefinition = decoratedClass,
AddInjectAttribute = true,
ProcessorAction = (processor, sharedStateBackingField) => this.EmitObserverObjectInit(
processor,
observerName,
innerObserverObjectField,
buildRenderTreeMethod,
stateHasChangedMethod),
});

// add entrance counter field.
var entranceCounterDefinition = decoratedType.CreateField(module.TypeSystem.Int32, $"{InnerCounterFieldPrefix}BuildRenderTree_EntranceCount", this.weavingContext, FieldAttributes.Private);
Expand Down
79 changes: 44 additions & 35 deletions src/Cortex.Net.Fody/ComputedWeaver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,15 @@ public ComputedWeaver(ModuleWeaver parentWeaver, ISharedStateAssignmentILProcess
internal void Execute()
{
var decoratedProperties = from t in this.ParentWeaver.ModuleDefinition.GetTypes()
from m in t.Properties
where
t != null &&
t.IsClass &&
t.BaseType != null &&
m != null &&
m.CustomAttributes != null &&
m.CustomAttributes.Any(x => x.AttributeType.FullName == this.WeavingContext.CortexNetApiComputedAttribute.FullName)
select m;
from m in t.Properties
where
t != null &&
t.IsClass &&
t.BaseType != null &&
m != null &&
m.CustomAttributes != null &&
m.CustomAttributes.Any(x => x.AttributeType.FullName == this.WeavingContext.CortexNetApiComputedAttribute.FullName)
select m;

foreach (var decoratedProperty in decoratedProperties.ToList())
{
Expand Down Expand Up @@ -144,17 +144,20 @@ private void WeaveProperty(PropertyDefinition propertyDefinition)

// push IL code for initialization of a computed member to the queue to emit in the ISharedState setter.
this.ProcessorQueue.SharedStateAssignmentQueue.Enqueue(
(declaringType,
false,
(processor, sharedStateBackingField) => this.EmitComputedMemberAdd(
processor,
computedName,
methodDefinition,
propertyDefinition.SetMethod,
equalityComparerType,
requiresReaction,
keepAlive,
observableObjectField)));
new SharedAssignmentQueueEntry
{
ReactiveObjectTypeDefinition = declaringType,
AddInjectAttribute = false,
ProcessorAction = (processor, sharedStateBackingField) => this.EmitComputedMemberAdd(
processor,
computedName,
methodDefinition,
propertyDefinition.SetMethod,
equalityComparerType,
requiresReaction,
keepAlive,
observableObjectField),
});

var fieldAttributes = FieldAttributes.Private;
if (methodDefinition.IsStatic)
Expand Down Expand Up @@ -312,17 +315,20 @@ private void WeaveMethod(MethodDefinition methodDefinition)

// push IL code for initialization of a computed member to the queue to emit in the ISharedState setter.
this.ProcessorQueue.SharedStateAssignmentQueue.Enqueue(
(declaringType,
false,
(processor, sharedStateBackingField) => this.EmitComputedMemberAdd(
processor,
computedName,
methodDefinition,
null,
equalityComparerType,
requiresReaction,
keepAlive,
observableObjectField)));
new SharedAssignmentQueueEntry
{
ReactiveObjectTypeDefinition = declaringType,
AddInjectAttribute = false,
ProcessorAction = (processor, sharedStateBackingField) => this.EmitComputedMemberAdd(
processor,
computedName,
methodDefinition,
null,
equalityComparerType,
requiresReaction,
keepAlive,
observableObjectField),
});

var fieldAttributes = FieldAttributes.Private;
if (methodDefinition.IsStatic)
Expand Down Expand Up @@ -354,14 +360,17 @@ private FieldDefinition CreateObservableObjectField(TypeDefinition declaringType

// push IL code for initialization of observableObject to the queue to emit in the ISharedState setter.
this.ProcessorQueue.SharedStateAssignmentQueue.Enqueue(
(declaringType,
false,
(processor, sharedStateBackingField) => this.EmitObservableObjectInit(
new SharedAssignmentQueueEntry
{
ReactiveObjectTypeDefinition = declaringType,
AddInjectAttribute = false,
ProcessorAction = (processor, sharedStateBackingField) => this.EmitObservableObjectInit(
processor,
declaringType.Name,
defaultEhancerType,
sharedStateBackingField,
observableObjectField)));
observableObjectField),
});
}

return observableObjectField;
Expand Down
4 changes: 2 additions & 2 deletions src/Cortex.Net.Fody/Cortex.Net.Fody.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="FodyHelpers" Version="6.1.2" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.0.0">
<PackageReference Include="FodyHelpers" Version="6.3.0" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
20 changes: 20 additions & 0 deletions src/Cortex.Net.Fody/Cortex.Net.Fody.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 813718c

Please sign in to comment.