Aplicación
La plataforma Devprime proporciona una estrategia de arquitectura de software moderna, y el proyecto App es el proyecto inicial de la aplicación, permitiendo la conectividad con otros componentes de la arquitectura.
Explorando la aplicación Devprime
El proyecto de aplicación Devprime proporciona algunos archivos principales, como App.cs, App.csproj, appsettings.json y GlobalUsings.cs, como se muestra en la imagen.
Estos archivos se encargan de la configuración de inicio de la aplicación, la configuración de la inversión de dependencias, la configuración inicial del app.net, Swagger, la seguridad y, especialmente, los parámetros de cada adaptador, que se tratan en detalle en la sección Configuración de la documentación.
Explorando el archivo App.cs
El archivo App.cs
contiene las implementaciones que son fundamentales para la inicialización de la aplicación y sigue un orden estándar de procesamiento ASP.NET. Un punto importante en este contexto es la creación del Builder and Run, así como las inyecciones de dependencias que conectan todo el proyecto de arquitectura de la aplicación.
el nombre de la aplicación o microservicio se define en ese punto de la línea 23 DpApp(builder).Run("my-microsservices,(app))
y se definió automáticamente cuando se creó el nuevo microservicio mediante el comando dp new
de la Devprime CLI.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
// Application Builder
var builder = WebApplication.CreateBuilder(args);
// Adding records for dependency injection.
// This block is modified when you run the
// dp init command to include new classes.
builder.Services.AddScoped<IPaymentRepository, PaymentRepository>();
builder.Services.AddScoped<IPaymentService, PaymentService>();
builder.Services.AddScoped<IPaymentState, PaymentState>();
builder.Services.AddMvc(o =>
{
o.EnableEndpointRouting = false;
});
//Registering Devprime Adapters
builder.Services.AddScoped<IExtensions, Extensions>();
builder.Services.AddScoped<IEventStream, EventStream>();
builder.Services.AddScoped<IEventHandler,
Application.EventHandlers.EventHandler>();
// Application Run
await new DpApp(builder).Run("my-microsservices", (app) =>
{
//The first stage of middleware registration
app.UseRouting(); //Routes
app.UseAuthentication(); //Security
DpApp.UseDevPrimeSwagger(app); //Swagger
app.UseAuthorization();//Security
app.MapControllerRoute(name: "default", pattern:
"{controller=Home}/{action=Index}/{id?}");//Routes
}, (builder) =>
{
//The second stage of middleware registration
DpApp.AddDevPrime(builder.Services);//Accelerators
DpApp.AddDevPrimeSwagger(builder.Services);//Swagger
DpApp.AddDevPrimeSecurity(builder.Services);//Security
});
|
Explorando el archivo App.csproj
El archivo App.csproj
trae las dependencias a los otros proyectos “Adaptadores” y “Core” que forman parte de la arquitectura de software, así como al componente devprime.stack.app
de Devprime Stack, que tiene comportamientos inteligentes que sirven al contexto de la “App”.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Version>1.0.0.0</Version>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include=
"..\Adapters\Services\DevPrime.Services.csproj" />
<ProjectReference Include=
"..\Adapters\State\DevPrime.State.csproj" />
<ProjectReference Include=
"..\Adapters\Extensions\DevPrime.Extensions.csproj" />
<ProjectReference Include=
"..\Adapters\Stream\DevPrime.Stream.csproj" />
<ProjectReference Include=
"..\Adapters\Web\DevPrime.Web.csproj" />
<ProjectReference Include=
"..\Adapters\Observability\DevPrime.Observability.csproj" />
<ProjectReference Include=
"..\Adapters\AppCenter\DevPrime.AppCenter.csproj" />
<ProjectReference Include=
"..\Adapters\HealthCheck\DevPrime.HealthCheck.csproj" />
<ProjectReference Include=
"..\Core\Application\Application.csproj" />
<ProjectReference Include=
"..\Core\Domain\Domain.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include=
"devprime.stack.app" Version="7.0.50" />
</ItemGroup>
</Project>
|
Se trata de una implementación estándar y no es necesario modificar la estructura a menos que desee ajustar los siguientes elementos:
Tema |
Descripción |
TargetFramework |
Versión .NET y presente en todos los proyectos |
Versión |
Actualizar el ID de versión por DevOps |
PackageReference |
Referencia de contexto de Devprime Stack |
El comando dp stack
, proporcionado por la Devprime CLI, debe ser utilizado por el desarrollador para actualizar automáticamente la referencia de Devprime en todos los proyectos.
Explorando el proyecto Devprime GlobalUsings.cs
La estrategia de C# para organizar globalmente los espacios de nombres usados en el proyecto y permite actualizar manualmente o mediante el comando dp init
desde la CLI de Devprime, si es necesario.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
global using DevPrime.Stream;
global using DevPrime.Stack.Foundation.Stream;
global using DevPrime.Stack.Foundation;
global using DevPrime.Stack.App.Load;
global using Microsoft.AspNetCore.Builder;
global using Microsoft.Extensions.DependencyInjection;
global using DevPrime.Extensions;
global using Application.Interfaces.Adapters.Extensions;
global using Application.Interfaces.Adapters.State;
global using Application.Interfaces.Services;
global using Application.Services.Payment;
global using DevPrime.State.Repositories.Payment;
global using DevPrime.State.States;
|
Explorando el archivo appsettings.json
La plataforma Devprime brinda la posibilidad de personalización a través del archivo de configuración, que, en el entorno de desarrollo, se encuentra en el proyecto Devprime APP e incluye elementos como: APP, Web, Stream, Observabilidad, Seguridad, Estado, Servicios y Personalizado.
A continuación, se muestra un breve ejemplo del archivo appsettings.json
. Puede explorarlo en detalle en la sección de configuración y obtenga más detalles sobre los parámetros de personalización.
1
2
3
4
5
6
7
8
9
10
|
{
"DevPrime_App": {},
"DevPrime_Web": {},
"DevPrime_Stream": {},
"DevPrime_Observability": {},
"DevPrime_Security": {},
"DevPrime_Services": {},
"DevPrime_State": {},
"DevPrime_Custom": {}
}
|
Ajustes |
Detalles |
APLICACIÓN |
Principales parámetros de aplicación |
Web |
Parámetros del adaptador web |
Transmisión |
Parámetros de flujo del adaptador |
Observabilidad |
Parámetros de observabilidad del adaptador |
Seguridad |
Parámetros de seguridad del adaptador |
Estado |
Parámetros de estado del adaptador |
Servicios |
Parámetros de los servicios de adaptadores |
Personalizado |
Parámetros personalizados para la aplicación |
Explora otras tecnologías relacionadas
Última modificación April 16, 2024 (2b35fcc8)