Saltar al contenido principal

Módulos

DAFce incluye 25 paquetes en search paths independientes — añade solo los que necesites. La tabla lista los diecinueve que tienen página propia; los otros seis son los paquetes de contrato .Abstractions. Cuando un módulo porta un diseño de otra comunidad, la tabla dice cuál.

Módulo Paquete Descripción
Cli Daf.Cli El miembro CLI de la familia de aplicaciones — porta la forma de Host.CreateApplicationBuilder de .NET, y su Run devuelve el código de salida
CommandLine Daf.CommandLine Un porte de System.CommandLine de .NET, la librería sobre la que está construido el propio CLI de dotnet: comandos, subcomandos, opciones y argumentos
Commons Daf.Commons Smart pointers, RTTI, threading, arrays, valores nulables
Configuración Daf.Configuration Config JSON / env / memoria, binding tipado
Inyección de Dependencias Daf.DependencyInjection Contenedor DI completo con scopes y lifetimes
Hosting Daf.Hosting Modelo de ciclo de vida IHost / IHostApplicationBuilder
Logging Daf.Logging Logging estructurado con scopes
MediatR Daf.MediatR CQRS: comandos, queries, notificaciones, pipelines
MiniSpec Daf.MiniSpec Testing BDD: specs Gherkin, expectations, live dashboard
NNLog Daf.NNLog Motor de logging inspirado en NLog integrado con DAF
SQLCute Daf.SQLCute Builder SQL fluido a la manera de SqlKata: IQuery como AST público y un compilador por dialecto
SQLCute.InMemory Daf.SQLCute.InMemory Segundo back-end: ejecuta el mismo IQuery sobre colecciones ya cargadas, con semántica ANSI de NULL. Sin equivalente — SqlKata solo compila a texto
SQLCute.Specification Daf.SQLCute.Specification La costura: baja una especificación entera —filtro, orden y paginación— a un IQuery
Linq Daf.Linq LINQ-to-Objects: secuencias perezosas sobre IEnumerable<T>, closures, sin SQL
Specification Daf.Specification Patrón Specification — filtro, orden y paginación sobre un árbol de predicados acotado a propósito, más estrecho que System.Linq.Expressions para que lo intraducible sea indecible
Web Daf.Web Servidor HTTP ligero, enrutamiento por atributos y action results — y sin pila de remoting: no enlaza ni DataSnap ni DBX
VCL Daf.VCL El miembro VCL de la familia de aplicaciones: el mismo arranque que las variantes CLI y Web, hasta el punto en que la plataforma toma el bucle
SystemProcess Daf.SystemProcess TSystemProcess — ejecuta procesos externos de forma síncrona o asíncrona, con callbacks de salida, error, fin y fallo. El análogo .NET es System.Diagnostics.Process
FMX Daf.FMX Lo que se apoya en FireMonkey, aislado para que ningún otro paquete lo enlace: hoy el destino de arranque que escribe por el servicio de log de la plataforma. Existe para que fuera de Windows el informe de arranque no se pierda en silencio — no es soporte de plataforma

Seis módulos incluyen también un paquete Daf.X.Abstractions con solo interfaces, para dependencias de compilación más limpias: Configuration, DependencyInjection, Hosting, Logging, MediatR y SQLCute.

Qué depende de qué

Instala solo los módulos que quieras — pero un módulo se lleva los paquetes que requiere, y algunos de ellos se llevan un paquete del runtime de RAD Studio. Las dos cosas están abajo; las flechas se leen requiere.

graph TD
  Cli[Cli]
  CommandLine[CommandLine]
  Commons[Commons]
  Configuration[Configuration]
  ConfigurationAbstractions[Configuration.Abstractions]
  DependencyInjection[DependencyInjection]
  DependencyInjectionAbstractions[DependencyInjection.Abstractions]
  FMX[FMX]
  Hosting[Hosting]
  HostingAbstractions[Hosting.Abstractions]
  Linq[Linq]
  Logging[Logging]
  LoggingAbstractions[Logging.Abstractions]
  MediatR[MediatR]
  MediatRAbstractions[MediatR.Abstractions]
  MiniSpec[MiniSpec]
  NNLog[NNLog]
  SQLCute[SQLCute]
  SQLCuteAbstractions[SQLCute.Abstractions]
  SQLCuteInMemory[SQLCute.InMemory]
  SQLCuteSpecification[SQLCute.Specification]
  Specification[Specification]
  SystemProcess[SystemProcess]
  VCL[VCL]
  Web[Web]
  RTIndy[("IndyCore · IndyProtocols · IndySystem")]
  RTRESTComponents[("RESTComponents")]
  RTfmx[("fmx")]
  RTinet[("inet")]
  RTinetstn[("inetstn")]
  RTvcl[("vcl")]
  Cli --> CommandLine
  Cli --> Hosting
  CommandLine --> Commons
  Configuration --> ConfigurationAbstractions
  Configuration --> DependencyInjectionAbstractions
  Configuration --> LoggingAbstractions
  ConfigurationAbstractions --> Commons
  DependencyInjection --> DependencyInjectionAbstractions
  DependencyInjectionAbstractions --> Commons
  FMX --> Hosting
  Hosting --> Configuration
  Hosting --> DependencyInjection
  Hosting --> HostingAbstractions
  Hosting --> Logging
  HostingAbstractions --> ConfigurationAbstractions
  HostingAbstractions --> DependencyInjectionAbstractions
  HostingAbstractions --> LoggingAbstractions
  Linq --> Commons
  Logging --> DependencyInjectionAbstractions
  Logging --> LoggingAbstractions
  LoggingAbstractions --> Commons
  MediatR --> MediatRAbstractions
  MediatRAbstractions --> DependencyInjectionAbstractions
  NNLog --> HostingAbstractions
  NNLog --> Logging
  SQLCute --> SQLCuteAbstractions
  SQLCuteInMemory --> Linq
  SQLCuteInMemory --> SQLCute
  SQLCuteSpecification --> SQLCuteInMemory
  SQLCuteSpecification --> Specification
  Specification --> Commons
  SystemProcess --> Commons
  VCL --> Hosting
  Web --> Hosting
  FMX --> RTfmx
  MiniSpec --> RTIndy
  NNLog -->|IndyCore · IndySystem| RTIndy
  VCL --> RTvcl
  Web --> RTIndy
  Web --> RTRESTComponents
  Web --> RTinet
  Web --> RTinetstn
  classDef abs stroke-dasharray:4 3;
  class ConfigurationAbstractions,DependencyInjectionAbstractions,HostingAbstractions,LoggingAbstractions,MediatRAbstractions,SQLCuteAbstractions abs;
  classDef rt stroke-dasharray:2 2,stroke-width:2px;
  class RTIndy,RTRESTComponents,RTfmx,RTinet,RTinetstn,RTvcl rt;

Dibujado como reducción transitiva: solo las aristas que no llegan ya por otro camino. rtl no se dibuja porque lo requieren los 25 paquetes; los de los runtimes ajenos van en un nodo por familia —Indy, RESTComponents, fmx, inet, inetstn y vcl— con los nombres reales en la etiqueta.

El borde de puntos marca un paquete de contrato (.Abstractions); los nodos redondeados a trazos son runtimes ajenos.

Instalables solos, sin depender de ningún otro paquete de DAF: Commons, MiniSpec, SQLCute.Abstractions.

Paquete Runtimes que arrastra
Cli rtl
CommandLine rtl
Commons rtl
Configuration rtl
Configuration.Abstractions rtl
DependencyInjection rtl
DependencyInjection.Abstractions rtl
FMX fmx · rtl
Hosting rtl
Hosting.Abstractions rtl
Linq rtl
Logging rtl
Logging.Abstractions rtl
MediatR rtl
MediatR.Abstractions rtl
MiniSpec IndyCore · IndyProtocols · IndySystem · rtl
NNLog IndyCore · IndySystem · rtl
SQLCute rtl
SQLCute.Abstractions rtl
SQLCute.InMemory rtl
SQLCute.Specification rtl
Specification rtl
SystemProcess rtl
VCL rtl · vcl
Web IndyCore · IndyProtocols · IndySystem · RESTComponents · inet · inetstn · rtl

20 de 25 no piden más que rtl.