AspNetCore.GenesisTool 1.1.0

dotnet tool install --global AspNetCore.GenesisTool --version 1.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local AspNetCore.GenesisTool --version 1.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=AspNetCore.GenesisTool&version=1.1.0
                    
nuke :add-package AspNetCore.GenesisTool --version 1.1.0
                    

Gerador de Código Genesis

Ferramenta destinada a gerar código com base em uma estrutura de banco de dados SQL Server, focada em API e utilizando Entity Framework. GenesisTool é a 'tool' que comunica o usuário com o sistema onde faz todo o papel de CLI, ja a Library é a biblioteca que executa todas as funções e onde fica a arquitetura do codigo em si.

Genesis

NuGet Reference

Installation

Starting Project

Você pode utilizar da forma que quiser, contanto que o programa seja em C# a partir de .NET 8.

iniciando um projeto

> dotnet new webapi

Inserindo a tool

> dotnet add package --global AspNetCore.GenesisTool

Inserindo a Biblioteca

> dotnet add package AspNetCore.Genesis

Genesis Tool

A ferramenta utiliza a palavra 'gns' como palavra reservada para os comandos globais

a estrutura dos commandos se dá pela seguinte:

> gns {knd} {tool} {args}
Help

Para ver as opções de comandos digite o seguinte comando

> gns help

Database

Add

Para gerar uma estrutura com base no banco de dados, você precisa primeiramente estar na pagina do projeto principal e digitar o seguinte comando:

> gns database add {database_url}

config

proxy-url

Configurar proxy somente pela url direta de proxy no formato "http://username:password@domain:port". Desta forma ele irá configurar automaticamente o nome de usuário, senha e domínio do proxy.

> gns config proxy-url {url}
proxy-domain

Configura somente o domínio do proxy onde pode-se alterar o dominio independente do nome de usuário e senha.

> gns config proxy-domain {domain}
proxy-credential-username

Configura somente o nome de usuário do proxy.

> gns config proxy-credential-username {username}
proxy-credential-password

Configura somente a senha de usuário do proxy.

> gns config proxy-credential-password {password}

Com isso ele gerará a seguinte estrutura para cada entidade no banco de dados desejado.

├─ Core
│    └─ Entity
│        ├─ ClassMap
│        │      └─ EntityClassmap.cs
│        ├─ Repository
│        │      └─ EntityRepository.cs
│        └─ Service
│               └─ EntityService.cs
└─ Domain
     └─ Entity
         ├─ Model
         │    └─ Entity.cs
         ├─ Repositories
         │    └─ IEntityRepository.cs
         └─ Services
              └─ IEntityService.cs

Configuration

Proxy Configuration

Para configurar o proxy via comando é necessario digitar os seguintes comandos:

Setting Proxy Host
gns config proxy-adress "http://yourhost.com:8080"

ou

gns config proxy-adress "http://100.100.100.100:8080"
Setting Proxy Username
gns config proxy-credential-username "yourUsername"
Setting Proxy Password
gns config proxy-credential-password "yourPassword"

Se as configurações de proxy não forem feitas o sistema não utilizará o proxy.

Genesis

Biblioteca que será utilizada como base para a estrutura da API em sí, de forma seguinto o Princípio de Interface Segregation (SOLID) e temos as seguintes interfaces:

  • IRepository.cs: base de repositorio a qual declaramos quais serão as ações base com o banco

  • IService.cs: base de serviço onde utilizamos o repositorio.

  • IEntity.cs: Base de entidade a qual é referente às entidades vindas do banco de dados. Todas as entidades geradas do banco de dados serão herdadas deste tipo.

Temos tambem uma base para Repositorio e Serviços, de forma genérica que inicialmente todos os objetos herdarão as suas respectivas bases.

  • BaseRepository.cs: Base de repositorio genérico que implementa IRepository<T>, que executa a comuicação com o banco para a tabela de determinada entidade (<T>) que obrigatóriamente herda de IEntity junto com o contexto do banco de dados.

  • BaseService.cs: Base de serviço genérico que implementa IService<T>, onde recebe um BaseRepository<T> para qual vai executar seus serviços básicos de cominicação com os repositorios.

Learn More:

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.

This package has no dependencies.

Version Downloads Last Updated
1.1.0 139 11/26/2024
1.0.15 116 11/25/2024
1.0.14 149 9/6/2024
1.0.13 119 7/26/2024
1.0.12 109 7/25/2024
1.0.11 100 7/25/2024
1.0.8 130 7/24/2024
1.0.7 119 7/24/2024
1.0.6 92 7/24/2024
1.0.5 156 7/18/2024
1.0.4 125 7/17/2024
1.0.3 112 7/17/2024
1.0.2 135 7/4/2024