Code Monkey home page Code Monkey logo

Rhetos - A DSL platform

Rhetos is a DSL platform for Enterprise Application Development. It extends the modern .NET technology stack with advanced programming paradigms: declarative programming, metaprogramming and AOP.

  • Rhetos enables developers to create a Domain-Specific Programming Language and use it to write their applications.
  • There are libraries available with ready-to-use implementations of many standard business and design patterns or technology integrations.

Rhetos works as a compiler that generates C# code, SQL, and other source files, from the application model written in the DSL scripts.

  • The generated application is a standard business application based on Microsoft .NET technology stack.
  • Rhetos is focused on the back-end development: It generates the business logic layer (C# object model), the database and the web API (REST, SOAP, etc.).
  • The database is not generated from scratch on each deployment, it is upgraded instead, protecting the existing data.

Rhetos comes with the CommonConcepts DSL package, a programming language extension that contains many ready-to-use features for building applications.

IntelliSense and syntax highlighting is available for Visual Studio, Visual Studio Code, SublimeText3 and Notepad++.

Documentation and samples

See Rhetos wiki for more information on:

Visit the project web site at rhetos.org.

License

The code in this repository is licensed under version 3 of the AGPL unless otherwise noted. Please see License.txt for details.

How to contribute

Contributions are very welcome. The easiest way is to fork this repo, and then make a pull request from your fork. The first time you make a pull request, you may be asked to sign a Contributor Agreement. For more info see How to Contribute on Rhetos wiki.

Building the source code

Note: Rhetos NuGet packages are already available at the NuGet.org online gallery. You don't need to build it from source in order to use it in your application.

To build the source, run Clean.bat and Build.bat. The build output files are NuGet packages in the dist subfolder.

Testing

Initial setup (required for integration tests):

  • Create an empty database (for example, "Rhetos" database on "localhost" SQL Server instance).
  • Create a local setting file test\CommonConcepts.TestApp\local.settings.json with the following content, and modify the connection string to match your server instance and database:
    {
      "ConnectionStrings": {
        "RhetosConnectionString": "Data Source=ENTER_SQL_SERVER_NAME;Initial Catalog=ENTER_RHETOS_DATABASE_NAME;Integrated Security=true;"
      }
    }

To execute the unit tests and the integration tests, run Test.bat.

Visual Studio Solutions

Rhetos.sln contains the source for Rhetos framework and CommonConcepts plugins (a standard library for Rhetos DSL). It also contains unit tests for the projects.

CommonConceptsTest.sln contains the integration tests for DSL concepts in CommonConcepts. After changing the framework code in Rhetos.sln, you will need to run Build.bat and Test.bat, before you can develop the related integration tests in CommonConceptsTest.sln. CommonConceptsTest depends on Rhetos NuGet packages that are created and provide by those scripts.

rhetos's Projects

announcements icon announcements

Subscribe to this repo to be notified about major changes in Rhetos and official plugins

bookstore icon bookstore

Demo application for Rhetos development platform

floydextensions icon floydextensions

TypeScript model generator for web application with Rhetos framework.

httpnotifications icon httpnotifications

Abstract event processing and HTTP notifications on events, for applications with Rhetos framework

i18nformatter icon i18nformatter

This plugin enables localization of Rhetos applications, using message format compatible with https://github.com/turquoiseowl/i18n.

jobs icon jobs

Asynchronous operations for applications with Rhetos framework

jsoncommands icon jsoncommands

A generic JSON web service for Rhetos framework. It allows executing multiple read or write commands in one web request.

lightdms icon lightdms

Light document version system implementation plugin for Rhetos.

logarchive icon logarchive

A plugin package for Rhetos. It allows archiving the *Common.Log* in order to improve the performance of logging, and integrates the log archive into the existing auditing features.

rhetos icon rhetos

Rhetos is a DSL platform, specialized for Enterprise Application Development.

rhetos-wiki icon rhetos-wiki

A repository to make changes to the Rhetos Wiki on GitHub https://github.com/Rhetos/Rhetos/wiki

rhetosnpp icon rhetosnpp

Rhetos DSL syntax highlighting for Notepad++

simplewindowsauth icon simplewindowsauth

SimpleWindowsAuth is a legacy DSL package (a plugin module) for [Rhetos development platform](https://github.com/Rhetos/Rhetos), providing Windows Authentication to Rhetos applications.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.