BlazorWebFormsComponents
A collection of Blazor components that emulate the web forms components of the same name
Approach + Considerations
We believe that Web Forms applications that have been well maintained and provide value should have a path forward to the new user-interface frameworks with minimal changes. This is not an application converted nor is it a patch that can be applied to your project that magically makes it work with ASP.NET Core. This repository contains a library and series of strategies that will allow you to re-use much of your markup, much of your business code and help shorten your application re-write process.
This is not for everyone, not everyone needs to migrate their application. They can continue being supported as Web Forms for a very long time (2029 EOL at the time of this writing) and the applications that are considered for migration to Blazor may be better suited with a complete re-write. For those applications that need to be migrated, this library should help make that process simpler by providing components with the same names, markup, and functionality as previously available.
Documentation is available online. Get started with your migration, steps ahead, and strategy documentation for various controls and tools used are available. Live versions of these components are availalbe on the Live Samples website
Portions of the original .NET Framework are contributed to this project under their MIT license.
Blazor Components for Controls
There are a significant number of controls in ASP.NET Web Forms, and we will focus on creating components in the following order:
- Editor Controls
- Data Controls
- Validation Controls
- CompareValidator
- CustomValidator
- RangeValidator
- RegularExpressionValidator
- RequiredFieldValidator
- ValidationSummary
- Navigation Controls
- Menu
- SiteMapPath
- TreeView
- Login Controls
- ChangePassword
- Login
- LoginName
- LoginStatus
- LoginView
- PasswordRecovery
We will NOT be converting any DataSource objects, Wizard components, skins or themes. Once this first collection of 23 controls is written, we can consider additional features like modern tag formatting.
Utility Features
There are a handful of features that augment the ASP.NET development experience that are made available as part of this project in order to support migration efforts. Importantly, these features are NOT implemented the same way that they are in Web Forms, but rather have the same API and behave in a proper Blazor fashion. These features include:
Compiling the project
There are three different types of .NET projects in this repository: .NET Framework, .NET Core, and .NET Standard. The sample projects are in the /samples
folder, while the unit test project is next to the component library in the /src
folder. From the root of the repository, you should be able to execute:
dotnet restore
to restore packages
dotnet run --project samples/AfterBlazorServerSide
to start the Blazor Server-Side samples