diff --git a/src/Components/README.md b/src/Components/README.md index 6f7ed330ff32..86b1fe0d152a 100644 --- a/src/Components/README.md +++ b/src/Components/README.md @@ -1,17 +1,53 @@ # Blazor -**Build modern, interactive web-based UIs with C# and Razor.** +Blazor is a framework for building modern, interactive web-based UIs with C# and Razor. For more information on using Blazor to build apps, check out [the official docs](https://blazor.net). -This folder contains the underlying *components* programming model that powers both server-side and client-side [Blazor](#blazor) applications. +## Description -Blazor is a component based web UI framework. Blazor apps can run client-side in browser on WebAssembly or server-side as part of an ASP.NET Core app. Blazor is a full single-page application (SPA) framework inspired by the latest JavaScript SPA frameworks, featuring support for offline/PWA applications, app size trimming, and browser-based debugging. +This folder contains the component model shared between the WebAssembly and Server hosting models for Blazor. -Blazor uses only the latest web standards. No plugins or transpilation needed. It runs in the browser on a real .NET runtime implemented in [WebAssembly](http://webassembly.org) that executes normal .NET assemblies. +The following contains a description of each sub-directory in the `Components` directory. -[![Gitter](https://badges.gitter.im/aspnet/blazor.svg)](https://gitter.im/aspnet/blazor?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +- `Analyzers`: Contains a collection of Rosyln analyzers for Blazor components +- `Authorization`: Contains source files associated with auth-related components and services in Blazor +- `Components`: Contains the implementation for the Blazor component model +- `Forms`: Contains source files for Form components in Blazor +- `Ignitor`: A library for testing Blazor Server apps +- `Samples`: Contains a collection of sample apps in Blazor +- `Server`: Contains the implementation for Blazor Server-specific components +- `Shared`: Contains a collection of shared constants and helper methods/classes +- `Web`: Contains source files for handling DOM events, forms, and other components +- `Web.JS`: Contains the source files for Blazor's client-side JavaScript +- `WebAssembly`: Contains the implementation for WebAssembly-specific components + - `Authentication.Msal`: Contains the implementation for MSAL (Microsoft Authentication Library) auth in WASM applications + - `DevServer`: Contains the implementation for the Blazor dev server + - `JSInterop`: Contains the implementation for methods that allow invoking JS from .NET code + - `Sdk`: Contains the MSBuild definitions for the Blazor WASM SDK + - `Server`: Contains the implementation for WASM-specific extension methods and the launch logic for the debugging proxy + - `WebAssembly`: Contains WebAssembly-specific implementations of the renderer, HostBuilder, etc. + - `WebAssembly.Authentication`: Contains the WASM-specific implementations -You can learn more about Blazor at https://blazor.net. +## Development Setup -## Getting Started +### Build -To get started with Blazor and build your first web app check out our [getting started guide](https://go.microsoft.com/fwlink/?linkid=870449). +To build this specific project from source, you can follow the instructions [on building a subset of the code](https://github.com/dotnet/aspnetcore/blob/master/docs/BuildFromSource.md#building-a-subset-of-the-code). + +### Test + +This project contains a collection of unit tests implemented with XUnit and E2E tests implemented using Selenium. In order to run the E2E tests, you will need to have Selenium installed on your machine. + +The E2E tests are located in the top-level `tests` folder in this directory. The E2E tests consists of a top-level `TestServer` which instantiates different app servers for specific scenarios: + +- Standalone Blazor WASM +- Hosted Blazor WASM +- Blazor Server +- Blazor Server with pre-rendering + +Each app server mounts the same `BasicTestApp` application under each scenario. + +To run the tests for this project, you can [run the tests on the command line](https://github.com/dotnet/aspnetcore/blob/master/docs/BuildFromSource.md#running-tests-on-command-line) in this directory. + +## More Information + +For more information, see the [ASP.NET Core README](../../README.md).