PitchHut logo
Build live web apps in C# using WebSocket and WebAssembly.
Pitch

Rask enables the creation of dynamic web applications with a single C# codebase, eliminating the need for .razor files or JavaScript. By leveraging server-rendering over WebSocket and client-side capabilities via WebAssembly, developers can create responsive applications efficiently while maintaining a streamlined workflow.

Description

Rask: A Fast and Flexible Component Framework for C# Web Applications

Rask is an innovative framework designed for creating live web applications in C#. This framework allows for a single codebase that can be rendered either server-side using WebSockets for live updates or client-side in the browser using WebAssembly. Unlike other frameworks, Rask eliminates the need for .razor syntax, JavaScript, or JSX, making the development process straightforward and efficient.

Key Features

  • Unified Codebase: Develop web apps with a single C# codebase that works seamlessly across server-rendered and client-side environments.
  • HTML Tree Rendering: Build user interfaces using plain C# classes to return a tree of HTML from the Render() method, ensuring a clear structure and type safety.
[Route("/counter")]
public sealed class Counter : Component
{
    private int _count;

    protected override RenderResult Render() =>
    [
        H1()["Counter"],
        P()[$"Current count: {_count}"],
        Button(OnClick: () => _count++)["Click me"]
    ];
}

This example showcases a fully interactive component with routing, state management, and event handling encapsulated within a single C# class.

Why Choose Rask?

  • Text-first DSL: Use a text-first approach with a declarative syntax that focuses on simplicity and readability, ensuring your UI elements are type-checked and easily refactorable.
  • Type-safe Routing: The framework provides type-safe URL builders through attributes like [Route], enhancing the reliability of navigation within your application.
  • Scoped CSS and JS: Drop scoped CSS or JS alongside your component files for automatic scoping, reducing the chances of CSS conflicts and improving maintainability.
  • Error Boundaries: Implement error boundaries to catch runtime errors in child components, preventing your application from crashing unexpectedly.
  • Asynchronous Forms: Incorporates forms with built-in asynchronous validation to streamline data submission processes.

Performance Optimization

Rask employs a live diff codec post-initial render, significantly reducing payload sizes during data updates by sending only the changes rather than full page re-renders. This efficiency is particularly beneficial for applications requiring real-time updates.

Documentation and Resources

Comprehensive documentation is available in the docs/ directory, covering essential topics such as routing, forms, components, authentication, and performance. Additionally, Rask includes runnable examples to help developers get started quickly and effectively.

Conclusion

Rask is a powerful framework tailored for developers looking to leverage the benefits of C# for web development without the complexities of traditional frameworks. With its user-friendly design, type safety, and performance-driven features, Rask stands out as a compelling choice for modern web applications.

0 comments

No comments yet.

Sign in to be the first to comment.