Commit Graph

37 Commits

Author SHA1 Message Date
Ryan Nowak 601e7914f7 Implement components as tag helpers
Implements Component code generation and tooling support end to end
udditionally adds some default `@addTagHelper` directives to make
programming in Blazor a little nicer.

Components are discovered as Tag Helpers using Razor's extensibility
during the build/IDE process. This drives the code generation during
build and lights up a bunch of editor features.

Add
2018-03-14 11:23:41 +00:00
Ryan Nowak adf4674955 Fix clean builds
This got out of date with my other changes
2018-03-14 11:23:40 +00:00
Ryan Nowak 211561a6a6 Implement 2-phase compilation
This is a working (all tests passing) implementation of the two-phase
compilation system we will need for component discovery.

This builds on top of work we've doing in Razor, including the Razor
SDK, MSBuild tasks, and CLI/server.

This currently *does* discovery components during the build process, but
it doesn't use that data for anything yet.

It works like this:
1. Generate class declarations (structure only, no method bodies)
2. Compile a 'temp' assembly using the .cs files and output of 1.
3. Do component discovery using the 'temp' assembly
4. Generate class definitions (including method bodies)
5. Compile the 'real' assembly using the .cs files and output of 4.
2018-03-14 11:23:40 +00:00
Ryan Nowak 6182e8448d Get rid of RazorCompiler
Adds a little more use of Razor extensibility.

Razor is a plugin model, so we can't be the 'first mover' for initiating
compilation in the build tools and IDE.

Reorganizes tests and fills out more reusable test infrastructure for
Razor-driven testing.

Adds tests for declaration-only configuration.
2018-03-14 11:23:40 +00:00
Ryan Nowak 57a04fb178 Adopt more of Razor Exensibility
Removes some workarounds and uses Razor extensibility in a few more
places.

_ViewImports now works in VS
2018-03-14 11:23:40 +00:00
Steve Sanderson 9a17a343cc Ensure Microsoft.AspNetCore.Blazor.Build is packed in a post-publish form so it's cross-plat compatible 2018-02-27 20:22:19 +00:00
Steve Sanderson 2fc2a23d41 Include *.html in UpToDateCheckInput 2018-02-27 14:28:20 +00:00
Steve Sanderson 3e5381c17e Rename .DevHost project to .Cli, and make it work as a DotNetCliTool 2018-02-27 12:17:35 +00:00
Steve Sanderson 9d21eda9c4 Include "serve" command in dotnet-blazor tool 2018-02-26 17:37:00 +00:00
Steve Sanderson c255e77ab5 Remove redundant entry in NuSpec file 2018-02-26 17:05:45 +00:00
Steve Sanderson 44a2603720 Have the Build package include all its own dependencies (otherwise the DotNetCliTool won't work) 2018-02-26 16:34:57 +00:00
Steve Sanderson 2f9515785e Fixes for Microsoft.AspNetCore.Blazor.Build package layout 2018-02-26 16:22:06 +00:00
Ryan Nowak dfe576f4fa Add new Razor bits
- Adds the aspnetcore-dev feed as a package source
- Updates Razor to a relatively new build
- Fixes a few issues encountered with new bits
2018-02-22 08:48:32 -08:00
Steve Sanderson 0665d30e19 In RazorCompiler, reject malformed documents with mismatching tags 2018-02-22 11:07:03 +00:00
Steve Sanderson 58af3e1638 Allow blazor-boot script to be served from apps not hosted at domain root 2018-02-21 10:22:03 +00:00
Steve Sanderson 608da4c78b Specifying entrypoint: Add tests and other stylistic tweaks 2018-02-19 14:22:03 +00:00
Eugene Bekker 1653e56b98 Adding ability to qualify the entry point of the main assembly 2018-02-19 14:11:25 +00:00
Steve Sanderson f649de2976 Support _ViewImports.cshtml files hierarchically 2018-02-18 23:57:20 +00:00
Steve Sanderson 69498f68f9 Add LayoutDisplay component and use it in StandaloneApp 2018-02-16 15:04:57 +00:00
Steve Sanderson b529f2b913 Avoid confusion with client apps not rebuilding after changing Blazor library code 2018-02-15 16:45:30 +00:00
Steve Sanderson af0085f550 Add *.cshtml for UpToDateCheckInput for VS 2018-02-15 16:14:48 +00:00
Steve Sanderson dcbd7a27eb Workaround file locked issue during build 2018-02-15 15:59:00 +00:00
Steve Sanderson 2ebfddc237 Switch client apps to netstandard2.0 to fix type load errors
Do a "git clean -xdf" on your local copy if you get runtime errors after
updating to this.
2018-02-15 10:20:31 +00:00
Ryan Nowak 043e623d5b Split Razor extensibility into its own assembly
This functionality will need to cross-compile to desktop framework
(net461) so that we can use it in VS. VS doesn't yet have netstandard2.0
support.
2018-02-14 14:08:14 -08:00
Steve Sanderson 0eb0555303 Eliminate IComponent.BuildRenderTree to guarantee that components are only rendered by themselves 2018-02-13 19:47:37 +00:00
Steve Sanderson d98a6153f7 In RazorCompiler, have BuildRenderTree overrides call base implementation 2018-02-13 15:53:59 +00:00
Steve Sanderson 7bb4bbbe5c In IndexHtmlFileProvider, preserve original source formatting 2018-02-12 23:05:47 +00:00
Eugene Bekker b38718d77f Require <script type="blazor-boot"> to define script injection location 2018-02-12 21:49:27 +00:00
Steve Sanderson 5a9c41af0e Make AngleSharp not strong-named. Change assembly name to Microsoft.AspNetCore.Blazor.AngleSharp to ensure no conflicts with other usages. 2018-02-09 17:37:21 +00:00
Mark Gaze 5a4bc2e6d6 Added quotes to paths in build that cause the build to fail when directory has a space in the path #44 2018-02-07 16:30:26 +00:00
Brian Allred 5da3c172b5 Make build target path platform agnostic 2018-02-07 10:27:33 +00:00
Steve Sanderson 93f17219ea Rename OpenComponentElement -> OpenComponent for consistency 2018-02-05 00:19:44 +00:00
Steve Sanderson 1fda744770 Make RenderTreeFrame properly readonly to allow more pass-by-ref cases 2018-02-05 00:16:08 +00:00
Steve Sanderson f1332919bc Rename RenderTreeNode -> RenderTreeFrame (and correspondingly, "node" ->
"frame" everywhere)
2018-02-04 22:21:29 +00:00
Steve Sanderson 1c9c74c801 In RazorCompiler, fix bug about attribute nodes having wrong sequence
numbers. Make tests explicit about sequence numbers.
2018-01-31 10:23:56 +00:00
Steve Sanderson cc053ddbbf Better validation of C# class names in RazorCompiler 2018-01-31 10:23:49 +00:00
Steve Sanderson 0aa164073d Rename Microsoft.Blazor.* -> Microsoft.AspNetCore.Blazor.* everywhere 2018-01-24 15:48:38 -08:00