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.

Diagrama del software de arquitectura Devprime

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)