All Projects → slaveOftime → Fun.Blazor

slaveOftime / Fun.Blazor

Licence: MIT license
Powered by .NET blazor!!! ❤ F#

Programming Languages

F#
602 projects
CSS
56736 projects

Labels

Projects that are alternatives of or similar to Fun.Blazor

SPA-With-Blazor
Creating a Single Page Application with Razor pages in Blazor using Entity Framework Core database first approach.
Stars: ✭ 27 (-74.77%)
Mutual labels:  spa, blazor
acblog
An open source extensible static & dynamic blog system. (an alternative tool with same features at StardustDL/paperead)
Stars: ✭ 60 (-43.93%)
Mutual labels:  spa, blazor
BlazorDemo
Demo application for my writings about Blazor
Stars: ✭ 79 (-26.17%)
Mutual labels:  spa, blazor
cozy-contacts-v2
Contact books manager for Cozy
Stars: ✭ 20 (-81.31%)
Mutual labels:  spa
blazorators
This project converts TypeScript type declarations into C# representations, and use C# source generators to expose automatic JavaScript interop functionality.
Stars: ✭ 225 (+110.28%)
Mutual labels:  blazor
TabBlazor
Blazor admin template based on Tabler UI
Stars: ✭ 222 (+107.48%)
Mutual labels:  blazor
XAF Security E4908
This repository contains examples for Role-based Access Control, Permission Management, and OData / Web / REST API Services for Entity Framework and XPO ORM
Stars: ✭ 47 (-56.07%)
Mutual labels:  blazor
sotsera.blazor.oidc
OpenID Connect client for Blazor client-side projects
Stars: ✭ 21 (-80.37%)
Mutual labels:  blazor
page-title
A Polymer element for easily updating a webpage's title, such as in a SPA.
Stars: ✭ 13 (-87.85%)
Mutual labels:  spa
MvvmBlazor
A lightweight Blazor Mvvm Library
Stars: ✭ 203 (+89.72%)
Mutual labels:  blazor
sapui5-cli
Simple CLI to scaffold SAPUI5 / OpenUI5 projects.
Stars: ✭ 17 (-84.11%)
Mutual labels:  spa
parksben.github.io
parksben's blog
Stars: ✭ 46 (-57.01%)
Mutual labels:  spa
BlazorVirtualScrolling
Blazor components for efficiently rendering large lists and data using virtual scrolling
Stars: ✭ 56 (-47.66%)
Mutual labels:  blazor
quasar-typescript-admin-template
💫 💫 [use Class API Not use composion or option API]template for Vue2 or Vue3 admin with quasar and use Tyepscript (master branch ->Vue2, v3-admin branch ->Vue3) 🌝 🌝 support pwa,electron,spa,Ionic
Stars: ✭ 87 (-18.69%)
Mutual labels:  spa
BlazorTimeline
Responsive, vertical timeline component.
Stars: ✭ 56 (-47.66%)
Mutual labels:  blazor
router-example
Use React Router DOM to create a Single Page Application (SPA).
Stars: ✭ 50 (-53.27%)
Mutual labels:  spa
BlazorEFCoreMultitenant
Examples of multitenancy using EF Core and Blazor.
Stars: ✭ 67 (-37.38%)
Mutual labels:  blazor
Amazing-Favorites
Amazing Favorites is a browser extension to help you to manage you bookmarks efficiently.
Stars: ✭ 48 (-55.14%)
Mutual labels:  blazor
BethanysPieShopHR
Server-side Blazor project
Stars: ✭ 45 (-57.94%)
Mutual labels:  blazor
letportal
Angular 9 .NET Core 3.1 open source web portal platform 2020 for building quickly application form, data grid , data list, chart, report, users management
Stars: ✭ 29 (-72.9%)
Mutual labels:  spa

Fun.Blazor Nuget

image

This is a project to make F# developer to write blazor easier.

  1. Use F# ❤️😊 for blazor
  2. Computation expression (CE) style DSL for internal and third party blazor libraries
  3. Dependency injection (html.inject/html.comp)
  4. Adaptive model (adaptiview/AdaptivieForm) (recommend), elmish model (html.elmish)
  5. Giraffe style routing (html.route)
  6. Type safe style (Fun.Css)

Check the WASM Docs for more 🚀

Benchmark

Method Mean Error StdDev Gen 0 Allocated
RenderWithRazorCSharp 400.3 ns 6.99 ns 6.20 ns 0.0610 384 B
RenderWithBolero 926.1 ns 17.49 ns 17.96 ns 0.2546 1,600 B
RenderWithFunBlazorCE 731.1 ns 14.07 ns 21.49 ns 0.1173 736 B
RenderWithFunBlazorTemplate 2,569.9 ns 42.22 ns 39.50 ns 0.6752 4,240 B

Main projects

  1. Fun.Blazor: help you to use basic dom DSL and state management helpers.

    let demo =
        adaptiview(){
            let! count, setCount = FSharp.Data.Adaptive.cval(1).WithSetter()
            button {
                onclick (fun _ -> setCount (count + 1))
                "Increase"
            }
            div {
                style { color "red" }
                $"value = {count}"
            }
        }
  2. Fun.Blazor.HtmlTemplate: help you to convert plain string to dom tree. And with VSCode + Ionide-fsharp + Highlight HTML/SQL templates you can get embeded intellicense. You can check more detail in shoelacejs + tailwind demo

    let staticPart =
        Static.html """
            <div style="color: hotpink;">Congratulations! You made it ❤️</div>
        """
    
    // The performance will not be good as CE DSL for initial start. Because it need to parse at runtime and cache for next usage.
    let dynamicPart =
        adaptiview(){
            let! count, setCount = FSharp.Data.Adaptive.cval(1).WithSetter()
            Template.html $"""
                <div>
                    {staticPart}
                    {count}
                    <button onclick={fun _ -> setCount (count + 1)}></button>
                </div>
            """
        }
  3. Fun.Blazor.Cli: support hot-reload and help you to generate CE style binding automatically for any blazor third party libraries.

    Docs for how to use it

    Docs for hot-reload

    Samples for using MudBlazor

    open Fun.Blazor
    open MudBlazor
    
    let alertDemo =
        MudCard'.create [
            MudAlert'() {
                Icon Icons.Filled.AccessAlarm
                "This is the way"
            }
        ]
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].