AspNetCore.GenesisTool
1.1.0
dotnet tool install --global AspNetCore.GenesisTool --version 1.1.0
dotnet new tool-manifest
dotnet tool install --local AspNetCore.GenesisTool --version 1.1.0
#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
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 | Versions 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. |
This package has no dependencies.