Show / Hide Table of Contents

    What's New in DevMagic Studio

    Last Updated: June 2023

    New features in DevMagic Studio Beta

    DevMagic Studio Beta has the following new features.

    Installer

    • The installer is adjusted for installation of the features required for designer-developed projects.

    Project types

    Provides the following project types:

    • The designer-developed project types include:

      • Web API: Create a designer project where entities can be easily created and back-end Web APIs can be automatically generated.

      • Library: Create a designer library which can be easily referenced by other projects.

    • The other project types (same as those in the IDE earlier versions) all belong to manually-coded project types.

    Item types

    Provides the following items for supporting the designer-developed project types:

    • Entity Design (from Scratch): Create an empty entity metadata file.
    • Entity Design (from Database): Create entity metafiles (one or multiple at a time) from tables/views in existing databases. The database schema will be automatically imported to the entity.
    • Base Entity Design: Create a base entity which can be inherited by the other entities. A base entity is mainly used for inheritance. A base entity has no Table/Schema and Inheritance mapping options; no Filter and Service & APIs; and it can only inherit from another base entity.
    • Owned Entity Design: Create an empty owned entity metadata file. An owned entity is an entity to be embedded within its owner (another entity). An owned entity has no Table/Schema and Inheritance mapping options; no Filter and Service & APIs; and it cannot inherit from any other entity.
    • Enum Design: Create an enumerator metadata file.

    Enum Designer

    • Supports basic settings such as name, value.
    • Supports bit operation. The user can set a flag for bit enumeration in the enum designer. When the field type is Enum, multiple enumeration values can be selected.

    Entity Designer

    Field design

    • Supports inheriting fields from other entities.
    • Supports the following inheritance strategies: TPH, TPT, TPC.
    • Supports various field types including basic data types, built-in types, computed fields, enum types, entity types.
    • Supports basic settings such as name, value, type, required, length, value range, default value, concurrency, delete strategy etc.
    • Supports collection.
    • Supports relations (one-to-one, one-to-many, many-to-one, many-to-many).
    • Supports index.
    • Supports composite primary keys. User can configure multiple fields as the primary keys for an entity.
    • Supports foreign keys (generating foreign keys for associated fields and using foreign keys in composite primary keys).
    • Supports keyless entities. If entities have no primary key, the base services that require the primary key will not be generated in the designer.
    • Supports expressions including common functions, constructor (including enum), CurrentUser.

    Filter design

    • Supports parameters (and Collection for parameters).
    • Supports defining conditions using fields, expressions, and scope (priority).
    • Supports previewing the filter code while designing.

    Service & API design

    • Supports adding base services, customizing base services, and automatically generating APIs.
    • Supports sorting data in the database and return results.
    • Supports assignment with values or cascade query.
    • Supports related settings such as authorization settings, parameter settings, etc.

    Project properties

    • Supports enabling authorization for the entire project and specifying the authorization policies for all or particular APIs.
    • Supports customizing the code generation for certain code fragments such as Using, inheritance, class attributes, property attributes, method attributes, constructor injection, and code snippet.

    Project generation

    • Supports generating C# code with concise structure and layers:
      • [project].Common: the development toolkits and extension functions that are referenced or dependent by the Contracts or Identity projects.
      • [project].Contracts: the contract layer which defines the contract for the service.
      • [project].Controllers: the controller layer which defines the controller for the service.
      • [project].Dal: the data access layer such as EF Core which contain the database-related configurations (repository, unit of work, DbContext) and data initialization (value comparers, value converters).
      • [project].Services: the service layer which implements the contracts.
      • [project].WebApi: the representation layer which sends data to users.
      • [project].Identity: the authentication service layer which authorizes the user registration and login internally.
    • Supports creating various profiles for project generation. Profile settings include
      • whether to specify the prefix of entity file name.
      • whether to create a schema folder for entities.
      • whether to overwrite existing project files.
      • whether to specify the location of projects (and items in each project) and namespace for the projects.
      • specifying the ORM (only EFCore is supported currently).
      • whether to configure the referenced projects separately.
      • configuring a default database connection for the application database and identity database (used for authorization).
    • Supports automatically handling project references and package references.
    Back to top Generated by Appeon