Steve Sanderson
7e76490844
Refactor RenderTreeDiffComputer to use more "ref local" for less array dereferencing
2018-01-29 12:56:41 +00:00
Steve Sanderson
882096755b
Rerender child components when their parameters change
2018-01-26 14:25:26 -08:00
Steve Sanderson
94ad26a479
Update properties on retained child components
2018-01-26 11:58:43 -08:00
Steve Sanderson
9f7dab3096
Better error handling when setting properties on child components
2018-01-26 10:10:06 -08:00
Steve Sanderson
3940ca8b60
For components, allow attribute values to be arbitrary objects
2018-01-26 09:54:35 -08:00
Steve Sanderson
1b4fa4781a
Give attribute nodes a single object-valued value so they can be used for component properties too.
2018-01-26 09:40:48 -08:00
Steve Sanderson
9dcb1c4fc4
Begin on setting properties on child components
2018-01-26 08:47:53 -08:00
Steve Sanderson
0aa164073d
Rename Microsoft.Blazor.* -> Microsoft.AspNetCore.Blazor.* everywhere
2018-01-24 15:48:38 -08:00
Steve Sanderson
9e90ff3689
Rename AddComponentElement->OpenComponentElement for clarity (you have to close it too)
2018-01-24 15:26:27 -08:00
Steve Sanderson
2469558410
Preserve child component instances across renders. Move instantiation into the diffing phase.
2018-01-24 14:29:46 -08:00
Steve Sanderson
2107a1927f
In RazorCompiler, support temporary <c:MyComponent /> syntax
2018-01-24 10:43:23 -08:00
Steve Sanderson
04fa5f4b71
Since ArrayRange is now what the tree builder APIs expose, ArrayBuilder can be internal
2018-01-24 08:58:16 -08:00
Steve Sanderson
9da3260eb7
Avoid some struct copying during array building
2018-01-23 23:50:21 -08:00
Steve Sanderson
6e4d0dbca4
Move common resizable-array logic into shared ArrayBuilder. Replace ArraySegment with ArrayRange since Offset is never used.
2018-01-23 23:30:48 -08:00
Steve Sanderson
cc2d097c99
More comments on thinking around child components and wrapper elements
2018-01-23 20:38:01 -08:00
Steve Sanderson
5d5931d3c5
Clarify comments about components needing wrapper elements
2018-01-23 17:21:45 -08:00
Steve Sanderson
b049c7f574
Fix diffing for consecutive text nodes
2018-01-23 09:43:14 -08:00
Steve Sanderson
df321b9b8d
Make RenderTreeEdit specify which sibling node it acts on, so we can eliminate the Continue concept and no longer track indices on JS side
2018-01-22 20:17:32 -08:00
Steve Sanderson
0ea4c930e9
Remove redundant property
2018-01-22 16:53:41 -08:00
Steve Sanderson
2c3925a05c
Apply render tree diffs on JS side
2018-01-22 16:02:52 -08:00
Steve Sanderson
584e363110
Pass the tree edits to JS code on render
2018-01-22 09:26:14 -08:00
Steve Sanderson
5435582c0e
Update rendering APIs to supply the diff as well as the final state
2018-01-22 08:54:03 -08:00
Steve Sanderson
bea15241f2
Various renames of diff-related types, plus XML docs for newly-public types.
2018-01-22 08:31:07 -08:00
Steve Sanderson
7c30d51be9
In tree diffs, omit trailing Continue entries and skip over unmodified subtrees
2018-01-22 01:55:10 +00:00
Steve Sanderson
b021e19598
In diffing, support elements with descendants
2018-01-21 21:30:01 +00:00
Steve Sanderson
0a5e27fdcf
Support diffing attributes. This required tracking 'sequence' values on attributes too.
2018-01-21 20:57:11 +00:00
Steve Sanderson
7a1abbaca3
In tree diffing, better handle scenario where both old and new sequences loop back but to different locations
2018-01-21 19:37:34 +00:00
Steve Sanderson
6b37494e7c
Begin on RenderTree diffing. Doesn't yet recurse into elements to handle attributes/children.
2018-01-21 18:53:09 +00:00
Steve Sanderson
a0b354e0eb
Add concept of 'sequence' to RenderTreeNode. This is in preparation for diffing.
2018-01-21 11:51:26 +00:00
Steve Sanderson
b038117961
Force VS to treat all Blazor cshtml components as inheriting from BlazorComponent so that helpers like @onclick appear in intellisense
2018-01-18 10:05:07 +00:00
Steve Sanderson
374d19c1a4
Move child component instantiation into a post-render phase to bring it closer to how it will work with rendertree diffing
...
This is also needed to make it possible to have a helper to insert
Component nodes from Razor without doing anything messy to pass the
RenderTreeBuilder into that heper.
2018-01-18 00:29:00 +00:00
Steve Sanderson
3deab026c8
Stop spurious VS "cannot override ExecuteAsync" errors even if you don't specify a base class
2018-01-18 00:07:54 +00:00
Steve Sanderson
d1f96153d3
Implement basics of @onclick()-type shorthand syntax
2018-01-16 18:01:06 +00:00
Steve Sanderson
946e25462e
In RazorCompiler, support @using statements
2018-01-16 17:17:22 +00:00
Steve Sanderson
7cd5228b7f
In RazorCompiler, support attributes whose values are C# code blocks (treated as event handlers)
2018-01-16 16:58:47 +00:00
Steve Sanderson
5949045319
In RazorCompiler, support expressions with non-string or null values
2018-01-16 16:30:29 +00:00
Steve Sanderson
7bbb2b6660
In RazorCompiler, support attribute values of type UIEventHandler
2018-01-16 16:15:46 +00:00
Steve Sanderson
3a7b6b2178
In Razor compiler, support attributes with interpolated expressions
2018-01-16 15:24:34 +00:00
Steve Sanderson
b690aeee28
In RazorCompiler, support attributes with C# expression values
2018-01-16 13:15:13 +00:00
Steve Sanderson
80b371c647
In RazorCompiler, support string-valued attributes
2018-01-16 12:23:12 +00:00
Steve Sanderson
1c1fd69bf2
In RazorCompiler, support self-closing and void elements
2018-01-16 11:50:40 +00:00
Steve Sanderson
a64ece0319
In RazorCompiler, support HTML elements
2018-01-16 11:36:55 +00:00
Steve Sanderson
75b083911c
Add AngleSharp with temporary InternalsVisibleTo
2018-01-16 11:11:49 +00:00
Steve Sanderson
604aa14518
Use Razor component in StandaloneApp sample
2018-01-15 23:11:54 +00:00
Steve Sanderson
7e40427ffe
Razor compilation: Support text literals and C# code
2018-01-15 23:11:48 +00:00
Steve Sanderson
3ccdc1d16f
Begin integrating with real Razor compiler
2018-01-14 16:37:01 +00:00
Steve Sanderson
a03cb48c7a
When compiling Razor components, take base namespace from host project
2018-01-14 14:40:57 +00:00
Steve Sanderson
a32b857d96
When compiling Razor files, generate namespace based on directory path
2018-01-14 14:35:13 +00:00
Steve Sanderson
654c16fb44
Begin unit tests for RazorCompiler
2018-01-12 15:08:10 +00:00
Steve Sanderson
5b3f05bdc1
Begin emitting C# classes for Razor components
2018-01-11 11:51:27 +00:00
Steve Sanderson
3f522ab216
Begin ability to have .cshtml files in Blazor apps
2018-01-11 11:11:47 +00:00
Steve Sanderson
8d4491d4b8
Begin Razor build command
2018-01-11 10:31:49 +00:00
Steve Sanderson
863826ab9d
Begin on compilation infrastructure for Razor components
2018-01-10 16:34:37 +00:00
Steve Sanderson
247015fabb
Move interop-related TS code into its own directory
2018-01-10 12:36:37 +00:00
Steve Sanderson
111e83c976
Clean up usage of RenderComponentArgs in TS by explicitly defining accessors
2018-01-10 12:31:25 +00:00
Steve Sanderson
950250d1f7
Improve naming for direct memory access APIs in Platform interface
2018-01-10 12:15:26 +00:00
Steve Sanderson
0187384638
Clean up how JS functions are registered and located for invocation from .NET
2018-01-10 11:55:52 +00:00
Steve Sanderson
7bbf2b54aa
Enable TypeScript strict mode
2018-01-10 10:42:08 +00:00
Steve Sanderson
a729a8d5c5
Improve XML docs on BrowserRenderer
2018-01-09 15:23:27 +00:00
Steve Sanderson
07e31c6318
Unit tests relating to Renderer GC behavior
2018-01-09 15:08:27 +00:00
Steve Sanderson
c95747af3e
Remove some implementation code that isn't strictly needed (so far, at least)
2018-01-09 13:52:56 +00:00
Steve Sanderson
04f9c476a8
Update StandaloneApp to render a component. Remove some redundant code.
2018-01-09 13:45:15 +00:00
Steve Sanderson
6585667ce6
Refactor most of the rendering logic into Microsoft.Blazor, keeping only browser-specific parts in Microsoft.Blazor.Browser
2018-01-09 13:33:49 +00:00
Steve Sanderson
674024ed61
Rename UITree -> RenderTree, UIEventInfo -> UIEventArgs
2018-01-09 09:55:14 +00:00
Steve Sanderson
5793bf700a
Add ability to render child components
2018-01-08 14:21:48 +00:00
Steve Sanderson
04c582647a
Add support for passing parameters to UI event handlers (e.g., which key was pressed)
2018-01-08 11:31:10 +00:00
Steve Sanderson
23f7120b75
Basic parameterless events support (e.g., button click)
2018-01-05 22:16:29 +00:00
Steve Sanderson
f7cb54121b
Add DOM rendering capability for attributes
2018-01-05 17:50:03 +00:00
Steve Sanderson
0db6f5cc5d
Add concept of "attributes" to UITree. So far the values are only allowed to be strings, but this will have to change later.
2018-01-05 17:28:26 +00:00
Steve Sanderson
f0a78d13bf
Begin tracking association between components and DOM elements so that components can be refresh their own display
2018-01-05 14:31:06 +00:00
Steve Sanderson
dfd6c4a1c2
Begin E2E testing for BasicTestApp and component rendering in browser
2018-01-04 17:35:58 +00:00
Steve Sanderson
5238dd9bc4
Allow NPM to reorder the package-lock.json file
2018-01-04 14:28:18 +00:00
Steve Sanderson
a24fee4690
Set some projects back to netcoreapp until there's a way of referencing netcoreapp build tools from netstandard projects
2018-01-04 14:28:03 +00:00
Steve Sanderson
5453b58f31
Initial basic component rendering. Does not yet do any tree diffing. APIs will change.
2018-01-04 14:11:37 +00:00
Steve Sanderson
d3092dd787
Change libraries from netcoreapp2.0 to netstandard2.0 where possible
2018-01-03 15:37:31 +00:00
Steve Sanderson
78d12da33e
Implement simplified RegisteredFunction.Invoke that uses JSON for marshalling
2018-01-03 14:13:04 +00:00
Steve Sanderson
54c2431e88
Rename Invoke to InvokeUnmarshalled
2018-01-03 12:01:20 +00:00
Steve Sanderson
7daec15a8e
Add TS part of RegisteredFunction API
2017-12-15 20:01:23 +00:00
Steve Sanderson
9e92c21a2f
Simplify code by not inlining quite so much
2017-12-15 19:50:36 +00:00
Steve Sanderson
04064f983c
Add test to more explicitly cover both 'params array' and 'generics'-style interop APIs
2017-12-15 19:41:20 +00:00
Steve Sanderson
09eccb52c5
Remove old marshalled-interop API and update MonoSanity sample to use newer API
2017-12-15 19:16:15 +00:00
Steve Sanderson
99a08da321
Add API for unmarshalled .NET -> JS invocations (passing and returning .NET heap object pointers)
2017-12-15 14:26:40 +00:00
Steve Sanderson
748903c62f
Rebuild client apps when any source file changes
2017-12-15 13:28:40 +00:00
Steve Sanderson
fe6105a902
Support JS invocations that return undefined
2017-12-15 11:40:43 +00:00
Steve Sanderson
d1069e2d1e
Begin on Microsoft.Blazor.Browser project
2017-12-15 11:31:05 +00:00
Steve Sanderson
809528676b
Rename Microsoft.Blazor.Browser project to Microsoft.Blazor.Browser.JS
2017-12-15 11:24:03 +00:00
Steve Sanderson
4135f04901
Improve incremental build support
2017-12-14 19:54:00 +00:00
Steve Sanderson
c72f9a1977
Simplify in-memory file provider usage by initializing with byte[], not Stream
2017-12-14 15:48:01 +00:00
Steve Sanderson
64770bfb23
Remove redundant file following Build/BuildTools split
2017-12-14 15:37:43 +00:00
Steve Sanderson
a4b85ddf53
Split BuildTools into "Build" (for end-user app builds) and "BuildTools" (for building this repo only)
2017-12-14 15:32:28 +00:00
Steve Sanderson
c49a67dcf0
Tidy up build filesystem providers code
2017-12-14 15:12:18 +00:00
Steve Sanderson
85cc7aee34
Use CompositeMountedFileProvider to simplify build logic
2017-12-14 14:48:36 +00:00
Steve Sanderson
a81ad1830f
Implement CompositeMountedFileProvider
2017-12-14 14:31:55 +00:00
Steve Sanderson
aa63da5151
Write out all client app files to disk at build time instead of serving dynamically at runtime
2017-12-14 11:59:55 +00:00
Steve Sanderson
39b64c1bc3
Add tests for IndexHtmlFileProvider, plus minor cleanups
2017-12-13 12:33:47 +00:00
Steve Sanderson
7390af1681
Make the BuildTools project consumable either as a NuGet package or locally by importing a .proj
2017-12-13 11:10:41 +00:00
Steve Sanderson
91e1cd1030
Use (project).blazor.config to allow calling UseBlazor with just an assembly name. Allows ReferenceOutputAssembly=false.
2017-12-12 19:48:15 +00:00
Steve Sanderson
d0096ec78e
On build, emit <clientproject>.blazor.config to the output dir - transitively into host projects too
2017-12-12 17:18:35 +00:00
Steve Sanderson
c4fea86603
Inject blazor.js script tag (with all references) automatically
2017-12-12 00:36:09 +00:00
Steve Sanderson
aff369e86d
Improve assembly resolution. Standalone hosting now works again.
2017-12-11 21:06:37 +00:00
Steve Sanderson
9ec79ae9f7
Start making standalone hosting work again by automatically locating the client app assembly
2017-12-11 19:45:02 +00:00
Steve Sanderson
9117263114
Load .NET assemblies from the ReferencedAssemblyFileProvider only
2017-12-11 19:18:19 +00:00
Steve Sanderson
3b01daf15a
Begin on serving .NET assemblies from ReferencedAssemblyFileProvider
2017-12-11 17:32:30 +00:00
Steve Sanderson
9b95b68dbf
Rename client bin dir to _bin so it can be served under default config
2017-12-11 17:24:42 +00:00
Steve Sanderson
667f2cc007
Split Mono files provider into "Js" and "Bcl" parts, as they are used for different things
2017-12-11 16:56:31 +00:00
Steve Sanderson
4b247e8050
Make ReferencedAssemblyFileProviderTest more useful
2017-12-11 16:11:13 +00:00
Steve Sanderson
5ec2a5eb1e
Use new InMemoryFileProvider behaviours to clean up ReferencedAssemblyFileProvider
2017-12-11 15:14:07 +00:00
Steve Sanderson
867cb66b97
Use new file provider to serve Microsoft.Blazor.Browser and Microsoft.Blazor.Mono contents
2017-12-11 14:05:00 +00:00
Steve Sanderson
0ed4a4eba5
Implement directory-capable InMemoryFileProvider
2017-12-11 14:01:34 +00:00
Steve Sanderson
c439787ab5
Begin implementing ReferencedAssemblyFileProvider
2017-12-09 00:53:44 +00:00
Steve Sanderson
4138b3a049
Make Blazor apps actually start up Mono and execute the specified .NET entrypoint
2017-12-08 17:06:40 +00:00
Steve Sanderson
4d764d78df
Beginning UseBlazorDevelopmentServer middleware and HostedInAspNet sample
2017-12-08 14:42:59 +00:00
Steve Sanderson
da4df729ee
Verify that the local Node.js version is 8.3.0+ (for NPM 5) before using it to build the static resources
...
Verify that the local Node.js version is 9.2.0+ before using it to build
the static resources
2017-12-08 13:09:18 +00:00
Steve Sanderson
5b5b3892d3
Auto-restore NPM dependencies on build
2017-12-08 10:27:46 +00:00
Steve Sanderson
6cad4e3b84
Make E2E tests even more E2E by using ASP.NET Core apps' BuildWebHost method
2017-12-07 11:57:34 +00:00
Steve Sanderson
0ac789221e
Begin E2E testing for DevHost-based projects
2017-12-07 11:49:05 +00:00
Steve Sanderson
aedb146ea4
Enable incremental compilation for Webpack target
2017-12-07 00:03:19 +00:00
Steve Sanderson
e2a7d4fa40
Serve blazor.js in standalone site
2017-12-06 23:35:16 +00:00
Steve Sanderson
a63b695db8
Begin on DevHost and sample of standalone app
2017-12-06 23:17:23 +00:00
Steve Sanderson
3688d12ab7
Begin on Microsoft.Blazor.Browser (TS portion of runtime)
2017-12-06 22:38:26 +00:00
Steve Sanderson
3ca7aa853e
Rename "runtime" -> "src" because it is all the source
2017-12-06 21:48:48 +00:00