.NET project templates for WebSharper
You may also want to configure the WebSharper GitHub feed, containing experimental tools and developer builds. To do so, make sure you have this extra feed configured.
You can install the latest WebSharper project templates via the
dotnet CLI - this will also make them available in Visual Studio 2022 and above. As of WebSharper 6, no separate VSIX installer is available, so use the following command to install:
> dotnet new -i WebSharper.Templates
You can also install any given version by adding the version as a suffix, for instance
Different WebSharper project templates are available for F# and C#. You can set the language of your preference in your shell with:
> set DOTNET_NEW_PREFERRED_LANG=F#
To see what project templates are installed on your system and what's the default language for each, you can use:
> dotnet new --list
WebSharper 6 Minimal Application websharper-min [F#], C# WebSharper/Web
WebSharper 6 Single-Page Application websharper-spa [F#], C# WebSharper/Web
WebSharper 6 Client-Server Application websharper-web [F#], C# WebSharper/Web
WebSharper 6 HTML Application websharper-html [F#], C# WebSharper/Web
WebSharper 6 .NET Proxy websharper-prx [F#], C# WebSharper
WebSharper 6 Library websharper-lib [F#], C# WebSharper
How to decide what template to use?
Here are some guidelines on choosing the right project for your app:
Does your application have a server-side?
Yes -> use the client-server application template (
websharper-web) for microservices or full-stack apps. If you have a single page with possibly multiple sub-pages, use the single-page application template (
No, I need to build a static web app and host it with my own web host (GitHub Pages, etc.) -> use the HTML application (
websharper-html), or the single-page application template (
websharper-spa) without a server-side.
What's the difference between an HTML application and an SPA?
An HTML application can contain multiple pages and has no server-side (RPCs or websockets, but it can still make requests to external services). An SPA has a single containing page with possibly multiple sub-pages inside it, and it may have an optional server-side.
Can I have multiple containing pages in an SPA?
websharper-ext). You may also want to look around on NuGet or GitHub to see if a binding already exists.
I have .NET code that fails to compile with WebSharper.
Create a .NET proxy project (
I want to package up some of my UI and/or client-side logic to be shared with other WebSharper applications.
Create a WebSharper library (
Quick overview of the available templates
websharper-min creates a minimal server-side application that you can expand into a full-stack web application. It contains the boilerplate to create a sitelet that responds with a simple text response. Check the Hello world! example for more information.
websharper-spa creates a single-page application (SPA) with a master
index.html file, into which dynamic client-side functionality is injected. You can expand this template with an optional server-side by adding RPCs to it.
websharper-web creates a full-stack client-server application. Use this as a base for your full-stack applications.
The rest of the page is not yet written, please check back soon!