Serenity Application Platform

repository·master·Indexed 25 days ago

https://github.com/serenity-is/serenity

An ASP.NET Core and TypeScript application platform for building data-centric business applications using a service-based architecture. The platform includes @serenity-is/corelib for core TypeScript classes and @serenity-is/domwise, a library that allows using JSX syntax to create and manage DOM elements without a Virtual DOM, featuring integration with @preact/signals-core for fine-grained reactivity.

Tokens
27.3K
Snippets
39
Records
267
Agent score
83%

What's inside Serenity

  1. Overview of SleekGrid

    master

    SleekGrid is a modern Data Grid / Spreadsheet component written in TypeScript with ES6 modules. It is a complete rewrite of the original SlickGrid and includes features and fixes from the 6pac fork.

    Key characteristics:

    • Works without jQuery or jQuery UI (though it can utilize them for column ordering and resizing if they are available in the global namespace).
    • Provides backward compatibility with the original SlickGrid via compatibility files located in the dist/compat directory.
  2. Use the TypeScript Scanner and Parser (AST) Implementation

    master
    This project provides a C# implementation of the TypeScript Compiler's Scanner and Parser modules. It is designed for use in .NET source generators to obtain an Abstract Syntax Tree (AST) of TypeScript files directly within the .NET runtime, eliminating the need for a JavaScript runtime like Node.js. It is highly performant, specifically optimized for the requirements of source generators.
  3. Quickstart: Create a new Serene project

    master

    To create a new Serenity application using the Serene template, follow these steps. Ensure you have the necessary prerequisites installed before starting.

    1. Install or update the Serene.Templates package using the dotnet CLI.
    2. Create a new project named MySereneApp using the serene template.
    3. Navigate to the web project directory: MySereneApp/MySereneApp.Web.
    4. Install the required NPM packages.
    5. Build and run the project using dotnet run.

    Once running, you can access your application at http://localhost:5000 (the port may vary; check your console output).

    # Install/Update Serene.Templates package.
    dotnet new install Serene.Templates
    
    # Create a new Serene project.
    dotnet new serene -n MySereneApp
    
    # Navigate into your project folder.
    cd MySereneApp/MySereneApp.Web
    
    # Install NPM packages.
    npm i
    
    # Build and run the project.
    dotnet run
  4. Migrate font assets for Serene users (v8.7.0)

    master

    Version 8.7.0 removed legacy font assets. Serene users must update their appsettings.bundles.json to use the new paths:

    1. Open Sans: Replace ~/Serenity.Assets/Content/font-open-sans.css with ~/Serenity.Assets/fonts/open-sans/open-sans.css.
    2. Font Awesome: Replace ~/Serenity.Assets/Content/font-awesome.css with ~/Serenity.Assets/line-awesome/css/line-awesome-fa.min.css (this switches the project to Line Awesome).
  5. Migrate to new Controller and Endpoint naming conventions

    master

    As of version 6.6.0, Serenity has standardized naming conventions for controllers and endpoints to improve consistency:

    • Pages: Rename page controllers to use the Page.cs suffix instead of Controller (e.g., XYZPage.cs).
    • Service Endpoints: Rename service endpoint controllers to use the Endpoint.cs suffix (e.g., XYZEndpoint.cs).
    • Base Class Change: ServiceEndpoint now derives from ControllerBase instead of Controller. If you were returning views from a service endpoint, you must move that logic to a standard controller.

    Sergen and Pro.Coder are updated to support these new suffixes.