H5 is under active development, and targets a more integrated and faster development experience for C# web-developers. We're also planning to experiment with new ideas to improve compilation speed (such as aggressive caching of emitted code) and possibly integrating C# Source Generators) for even faster code generation.
To get started with it, you can use the following project template
<Project Sdk="h5.Target/0.0.*"> <PropertyGroup> <TargetFramework>netstandard2.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="h5" Version="*" /> <PackageReference Include="h5.Core" Version="*" /> </ItemGroup> </Project>
Don't forget to run
dotnet restore to fill the versions with the latest values. You can also manually install it with:
dotnet tool update --global h5-compiler
dotnet new --install h5.Template::0.0.21601
And create a new project with:
dotnet new h5
The easiest way to get started is to check out some of the examples of using h5 in this repository.
This fork introduces a series of breaking changes as part of the modernization effort:
- Projects must explicitly target
- Drop support to the legacy .csproj format (only SDK-style projects are supported)
- Drop support for legacy (and unused) command line arguments (check h5 -h for the current supported arguments)
- Compiler is now distributed as a
dotnet globaltool and have it's own versioning and auto-update on build (this can be disable by setting
<UpdateH5>false<UpdateH5/>on your project file.
- Retyped packages are not supported (as those are maintained by the Bridge authors, and cannot be built separately or consumed without the Bridge NuGet package).
- Logging and Report options have been removed from the h5.json config file. Logging settings will be available only as a command line argument (and exposed as a Project file option in the future)
- Hosted Compiler process (to speed up compilation and avoiding reloading assemblies that don't change often (like nuget packages), h5 introduces an off-process compiler server. For now, this process will open a terminal with the compilation logs - but this will be hidden in the future)
To avoid any conflicts with the original Bridge ecosystem, all packages have been renamed. For upgrading, you can use the following mapping:
- H5 (replaces the base Bridge library)
- H5.Core (replaces Retyped.Core, Retyped.es5 and Retyped.dom)
- H5.Newtonsoft.Json (replaces Bridge.Newtonsoft.Json)
- H5.WebGL2 (replaces Retyped.WebGl2)
Other packages might be added in the future as we experiment with this fork, but we do not aim on providing any kind of Retyped replacement here. If you're missing any specific Retyped package, open an issue and I can take a look into publishing it derived from the Retyped ones.