BootGen 2.0.3

dotnet add package BootGen --version 2.0.3
                    
NuGet\Install-Package BootGen -Version 2.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BootGen" Version="2.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BootGen" Version="2.0.3" />
                    
Directory.Packages.props
<PackageReference Include="BootGen" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BootGen --version 2.0.3
                    
#r "nuget: BootGen, 2.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package BootGen@2.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=BootGen&version=2.0.3
                    
Install as a Cake Addin
#tool nuget:?package=BootGen&version=2.0.3
                    
Install as a Cake Tool

BootGen Build Status Coverage Status NuGet

<img align="right" width="200px" height="85px" src="BootGen/BootGenLogo.png">

Customizable code generator library for rapid application prototyping.

See a live demo at bootgen.com!

Supported Languages

C#, TypeScript, Swagger (OAS3)

How Does it Work?

From a set of sample data given JSON format BootGen will determine a data model. Using this data model and a set of Scriban templates it will generate a server and a client application.

An example set of Scriban templates can be found here.

An Example JSON Input

{
  "users": [
    {
      "userName": "Test User",
      "email": "example@email.com",
      "tasks": [
        //timestamps
        {
          "title": "Task Title",
          "description": "Task description",
          "isOpen": true,
          "dueDate": "2021-12-30T12:00:05",
          "estimatedHours": 1.5,
          "priority": 1,
          "tags": [
            //manyToMany
            {
              "name": "important",
              "color": "red"
            }
          ]
        }
      ]
    }
  ]
}
Conventions
  • Property and class names should be camelCase. Casing will be set in the generated code according to the type of file generated. In C# PascalCase will be used, in TypeScript property names will remain camelCase.
  • Array names should be plural nouns, everything else should be in singular form. In the generated code the fitting plural or singular form of names will be used.

Annotations

Although comments are non-standard feature in JSON, many JSON processing libraries support it. We use them as annotations. Annotations can be placed at the beginning of arrays. Possible annotations:

  • timestamps: Adds a Created and an Updated timestamp property to the class.
  • manyToMany: Declears that the given relation is a Many-To-Many relation, as opposed to the default One-To-Many relation.
  • class:[name]: Substitute [name] with the intended name of the class. Example:
{
  "users": [
    {
      "userName": "Test User",
      "email": "example@email.com",
      "friends": [
        //class:user
        //manyToMany
        {
          "userName": "Test User 2",
          "email": "example2@email.com"
        }
      ]
    }
  ]
}
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.3 671 3/23/2022
2.0.2 568 3/14/2022
2.0.1 587 3/12/2022
2.0.0 584 3/8/2022
1.3.5 603 2/13/2022
1.3.4 559 2/13/2022
1.3.2 595 1/21/2022
1.3.1 579 1/21/2022
1.3.0 585 1/20/2022
1.2.10 566 1/16/2022
1.2.9 581 1/16/2022
1.2.8 581 1/15/2022
1.2.7 572 1/15/2022
1.2.6 563 1/12/2022
1.2.5 581 1/12/2022
1.2.4 571 1/12/2022
1.2.3 418 1/7/2022
1.2.2 425 1/3/2022
1.2.1 6,253 11/24/2021
1.2.0 5,363 11/24/2021
1.1.5 500 10/4/2021
1.1.4 488 9/16/2021
1.1.3 464 9/16/2021
1.1.2 521 7/29/2021
1.1.1 523 7/27/2021
1.1.0 485 7/24/2021
1.0.3 453 7/21/2021
1.0.2 468 7/21/2021
1.0.1 438 7/16/2021
1.0.0 503 4/16/2021
0.6.1-beta 321 4/13/2021
0.6.0-beta 332 4/7/2021
0.5.6-beta 313 3/31/2021
0.5.5-beta 334 3/26/2021
0.5.4-beta 391 3/17/2021
0.5.3-beta 313 3/15/2021
0.5.2-beta 390 3/13/2021
0.5.1-beta 353 3/12/2021
0.5.0-beta 326 3/5/2021
0.4.5-alpha 303 3/3/2021
0.4.4-alpha 352 3/2/2021
0.4.3-alpha 320 3/1/2021
0.4.2-alpha 343 2/23/2021
0.4.1-alpha 356 2/22/2021
0.4.0-alpha 319 2/19/2021
0.3.4-alpha 386 11/25/2020
0.3.3-alpha 456 11/2/2020
0.3.2-alpha 410 10/31/2020
0.3.1-alpha 463 10/23/2020
0.3.0-alpha 469 10/21/2020
0.2.2-alpha 473 10/17/2020
0.2.1-alpha 378 10/12/2020
0.2.0-alpha 474 10/11/2020
0.1.0-alpha 373 9/30/2020