Even though all Fusion packages are available on NuGet, we highly recommend you to clone the repository, since it includes the tutorial and samples.
git clone git@github.com:servicetitan/Stl.Fusion.git
You also need to install:
- .NET Core SDK 3.1 – to use or build Fusion.
- try-dotnet – to run the Tutorial.
- If you only intend to run samples, you need just docker-compose.
Using IDE:
- Open the
Stl.sln
in your favorite IDE (note that Blazor debugging is currently supported only in Visual Studio and VSCode though) - Run "Stl.Samples.Blazor.Server" project
- Open http://localhost:5000 unless it didn't happen automatically.
If you prefer a CLI-only way, cd
to the repository folder and run:
- Windows:
dotnet build # The next line is optional - you need it if you want to debug Blazor client set ASPNETCORE_ENVIRONMENT=Development start "Stl.Samples.Blazor.Server" dotnet artifacts/samples/Stl.Samples.Blazor.Server/Stl.Samples.Blazor.Server.dll start "Samples" http://localhost:5000/
- Unix:
dotnet build # The next line is optional - you need it if you want to debug Blazor client export ASPNETCORE_ENVIRONMENT=Development dotnet artifacts/samples/Stl.Samples.Blazor.Server/Stl.Samples.Blazor.Server.dll
- Finally, if you don't want to install .NET Core SDK, you can run the samples
in Docker:
cd docker docker-compose up start "Samples" http://localhost:5000/
A few other useful scripts can be found in "scripts" folder.
- Overview is the best place to start. It describes what Stl.Fusion is on conceptual level and explains the most tricky concepts on relatively simple examples.
- Stl.Fusion In Simple Terms is so far the best descriptin of what Fusion is for non-developers
- Tutorial – it's not fully finished yet, but the best part is: it is interactive, so any code you see there is runnable with try-dotnet!
- The Story Behind Stl.Fusion – maybe you'll find it interesting too.
- Join our Discord Server to ask questions and track project updates
- Check out Q/A to get answers on some frequent questions.
That's it for now, but we'll definitely add more over time.
Overall, it's fairly simple:
- Server-side code should reference Stl.Fusion.Server NuGet package
- Client-side code should reference
Stl.Fusion.Client
- Though if it's a Blazor client, it's a good idea to reference Stl.Fusion.Blazor instead
- A library that could be used both by client and server should reference only Stl.Fusion.
Once it's done, you can start using it. Check out the Tutorial to learn how.
- ServiceTitan – for giving some of us an opportunity to work on this project
- Steve Sanderson – for both Knockout, which made "computed observable" abstraction popular, and Blazor – yeah, Steve is the creator of it as well!
- Quora — a huge part of the inspiration for Stl.Fusion was Quora's LiveNode framework
- Microsoft – for .NET Core and Blazor.
- All other contributors. For now it is Vladimir Chirikov – everything related to build system is written by him. But everyone is welcome to join – your pull request is all we need!
- The authors and maintainers of every library used by
Stl.Fusion
. Most notably, DynamicProxy from Castle.Core, RestEase, and Json.NET.