DTIKC
Git
  1. Sistemas
DTIKC
  • Inicio
  • Modelo de Gestión
    • ITIL 4
    • Gestión por Procesos
    • LEAN, BPM & RAD
    • OKR
    • El Nuevo Paradigma de TI
  • Personas
    • Organigrama Funcional
    • Roles y Matriz RACI
      • Matriz RACI - Mesa de Ayuda (N1)
      • Matriz RACI - Soporte Técnico (N2)
      • Matriz RACI - Infraestructura (N3)
      • Matriz RACI Consolidada de la Dirección de Tecnología e Innovación
    • Descriptivos de Puestos
      • Indice
      • Developer RPA & IA con Python
      • Analista de Operaciones y Mesa de Ayuda N1
      • Especialista de Soporte Técnico Nivel 2
      • Senior de Infraestructura
        • Especialista Senior en Infraestructura N3
        • Especialista Junior en Infraestructura N3
    • Medición y Mejora Continua
      • OKRs Generales
      • OKRs Analista de Operaciones y Mesa de Ayuda N1
      • OKR Especialista de Soporte Técnico N2
  • Procesos de Sistemas
    • Indice
    • Proceso de Control de Versiones con Git
    • Proceso de Ejecución de Proyectos para Desarrolladores de Software
    • Procesos de Mesa de Ayuda N1
    • Procesos de Soporte Técnico N2
    • Procesos de Junior de Infraestructura
    • Procesos de Senior de Infraestructura
  • Especificaciones
    • Devs
      • Patrones de Nombrado (Naming Conventions) en Programación
  • Sistemas
    • Indice
    • Prometeo
    • Pegasus
    • Olympus
    • Andromeda
    • FrontBack
    • OServerLogic
    • CServer
    • FbCotizador
    • Oserver
    • MetCotizadores
    • ClassLibrary
    • APIs
      • Chatbase
      • ApiMetPro_Pendientes_Emitir_Get
    • App Services
      • Documento sin título
  • Manuales Usuarios
    • Procedimiento para Recuperar Contraseña de Acceso a Titan
    • Procedimiento de Alta de Agente IP en Keysi
    • Checklist Mantenimiento Soporte N2
    • Manual de Sistema de Gestión
  • Lineamientos y Politicas
    • Acta de Protocolo Home Office
    • Acta de Compromiso: Excelencia Operativa en la Dirección de Tecnologías e Innovación
    • Modelo de Atención Universal de Soporte Técnico Nivel 2
Git
  1. Sistemas

FbCotizador

Documentación del Proyecto - Sistema de Cotizaciones de Seguros#

1. INFORMACIÓN GENERAL DEL PROYECTO#

Nombre del proyecto: FrontBack Cotizador
Descripción y propósito: Sistema web para cotización y emisión de pólizas de seguros automotrices, integrando múltiples aseguradoras (Qualitas, ANA, AXA, Zurich, Mapfre) mediante servicios web SOAP. Permite gestionar cotizaciones, emisiones y generación de reportes PDF.
Versión del framework .NET utilizado: .NET Framework 4.8
Tipo de aplicación: Aplicación Web MVC/Web API Híbrida
Fecha de última modificación del proyecto: 2025-12-13
Namespace raíz: FrontBack
Assembly: FrontBack

2. MAPA DE SITIO / ESTRUCTURA DEL PROYECTO#

📁 fb_cotizador/
├── 📁 App_Start/
│   ├── 📄 BundleConfig.cs
│   ├── 📄 FilterConfig.cs
│   ├── 📄 IdentityConfig.cs
│   ├── 📄 RouteConfig.cs
│   ├── 📄 Startup.Auth.cs
│   └── 📄 WebApiConfig.cs
├── 📁 Areas/
│   └── 📁 HelpPage/
│       ├── 📁 Controllers/
│       │   └── 📄 HelpController.cs
│       ├── 📁 Models/
│       ├── 📁 ModelDescriptions/
│       └── 📁 SampleGeneration/
├── 📁 Controllers/
│   ├── 📄 HomeController.cs (MVC)
│   ├── 📄 QualitasController.cs (API)
│   ├── 📄 AnaController.cs (API)
│   ├── 📄 AxaController.cs (API)
│   ├── 📄 ZurichController.cs (API)
│   ├── 📄 MapfreController.cs (API)
│   ├── 📄 AutonetV4Controller.cs (API)
│   ├── 📄 WebReportController.cs (MVC)
│   ├── 📄 NotificacionController.cs (MVC)
│   ├── 📄 Cotizacion.cs
│   ├── 📄 Autos.cs
│   ├── 📄 EducaLifeController.cs
│   ├── 📄 PerfectLifeController.cs
│   ├── 📄 MetaLifeController.cs
│   ├── 📄 Met99Controller.cs
│   ├── 📄 polizaOlympusController.cs
│   ├── 📄 ValuesController.cs
│   ├── 📄 HelpersController.cs
│   └── 📁 Nf/
│       ├── 📄 AccountController.cs
│       ├── 📄 Helpers.cs
│       ├── 📄 NF_IISTaskManager.cs
│       ├── 📄 Nf_CaseController.cs
│       ├── 📄 Nf_DataController.cs
│       ├── 📄 Nf_FileController.cs
│       ├── 📄 Nf_FrontBack.cs
│       └── 📄 Nf_GridViewController.cs
├── 🐀񀐠Library/
│   ├── 📄 CotizadorQualitas.cs
│   ├── 📄 CotizadorAna.cs
│   ├── 📄 CotizadorAxa.cs
│   ├── 📄 CotizadorZurich.cs
│   ├── 📄 CotizacionQualitas.cs
│   ├── 📄 CotizacionAna.cs
│   ├── 📄 CotizacionAxa.cs
│   └── 📄 CotizacionZurich.cs
├── 📁 LibraryPdf/
│   ├── 📄 Aseg.cs
│   ├── 📄 Cotiz.cs
│   ├── 📄 CotizVi.cs
│   ├── 📄 CotizadorGmm.cs
│   ├── 📄 DatosGM.cs
│   └── 📄 GenSubs.cs
├── 📁 Models/
│   ├── 📄 AccountBindingModels.cs
│   ├── 📄 AccountViewModels.cs
│   └── 📄 IdentityModels.cs
├── 📁 Service References/
│   ├── 📁 wsQualitas/
│   ├── 📁 wsQualitasQA/
│   ├── 📁 wsQualitasCatalogo/
│   ├── 📁 wsQualitasImpresion/
│   └── 📁 wsAna/
├── 📁 Views/
│   ├── 📁 Home/
│   │   └── 📄 Index.cshtml
│   ├── 📁 Shared/
│   │   ├── 📄 _Layout.cshtml
│   │   └── 📄 Error.cshtml
│   ├── 📁 WebReport/
│   │   ├── 📄 CotizacionAutoPdf.cshtml
│   │   ├── 📄 CotizacionAutoPdfConAxa.cshtml
│   │   ├── 📄 CotizacionAutoPdf_Mail_Tpl.cshtml
│   │   ├── 📄 CotizacionAutoPdf_Mail_Tpl_Ejecutivo.cshtml
│   │   ├── 📄 CotizacionGMPdf.cshtml
│   │   ├── 📄 CotizacionGMPdf_Mail_Tpl.cshtml
│   │   ├── 📄 CotizacionMet99Pdf.cshtml
│   │   ├── 📄 CotizacionMet99Pdf_Mail_Tpl.cshtml
│   │   ├── 📄 CotizacionMetVidaPdf_Mail_Tpl.cshtml
│   │   ├── 📄 CotizacionRCMedico.cshtml
│   │   ├── 📄 CotizacionCasa.cshtml
│   │   ├── 📄 CotizacionSeguroAuto.cshtml
│   │   ├── 📄 ZCotizacionSeguroAuto.cshtml
│   │   ├── 📄 Cotizacion_Mail_Tpl.cshtml
│   │   └── 📄 wait.cshtml
│   └── 📁 Notificacion/
│       └── 📄 CotizacionAutoPdf.cshtml
├── 📁 xml/
│   ├── 📁 zurich/
│   ├── 📄 Ana_Cotizar_Amplia_VC.xml
│   ├── 📄 Ana_Cotizar_Plus_VC.xml
│   ├── 📄 Ana_Cotizar_Rc_VC.xml
│   ├── 📄 Ana_Cotizar_Limitada_VC.xml
│   ├── 📄 Ana_Emision.xml
│   ├── 📄 Ana_Impresion.xml
│   ├── 📄 Axa_Cotizar.xml
│   ├── 📄 Qualitas_Cotizar.xml
│   ├── 📄 Qualitas_Cotizar_Servicio_Publico.xml
│   ├── 📄 Qualitas_ObtenerCatalogo.xml
│   └── 📄 Qualitas_Emitir.xml
├── 📁 Content/
├── 📁 Scripts/
├── 📁 Providers/
│   └── 📄 ApplicationOAuthProvider.cs
├── 🐀񀐠Results/
│   └── 📄 ChallengeResult.cs
├── 📄 Web.config
├── 📄 Global.asax.cs
└── 📄 Startup.cs

3. INVENTARIO DE LIBRERÍAS Y DEPENDENCIAS#

NuGet Packages#

LibreríaVersión ActualPropósitoCategoría
EntityFramework6.2.0ORM para acceso a datosORM
EntityFramework.SqlServer6.2.0Proveedor SQL Server para EFORM
Microsoft.AspNet.Mvc5.2.7Framework MVCUI/Framework
Microsoft.AspNet.WebApi.Core5.2.7Framework Web APIAPI
Microsoft.AspNet.WebApi.WebHost5.2.7Hosting para Web APIAPI
Microsoft.AspNet.WebApi.Client5.2.7Cliente HTTP para Web APIAPI
Microsoft.AspNet.WebApi.Cors5.2.7Soporte CORS para Web APIAPI
Microsoft.AspNet.WebApi.Owin5.2.7Integración OWIN con Web APIAPI
Microsoft.AspNet.Identity.Core2.2.2Sistema de identidad y autenticaciónSeguridad
Microsoft.AspNet.Identity.EntityFramework2.2.2Implementación EF para IdentitySeguridad
Microsoft.AspNet.Identity.Owin2.2.2Integración OWIN con IdentitySeguridad
Microsoft.Owin4.0.1Middleware OWINFramework
Microsoft.Owin.Host.SystemWeb4.0.1Host OWIN para IISFramework
Microsoft.Owin.Security4.0.1Middleware de seguridad OWINSeguridad
Microsoft.Owin.Security.Cookies4.0.1Autenticación basada en cookiesSeguridad
Microsoft.Owin.Security.OAuth4.0.1Soporte OAuth 2.0Seguridad
Microsoft.Owin.Security.Facebook4.0.1Autenticación con FacebookSeguridad
Microsoft.Owin.Security.Google4.0.1Autenticación con GoogleSeguridad
Microsoft.Owin.Security.MicrosoftAccount4.0.1Autenticación con MicrosoftSeguridad
Microsoft.Owin.Security.Twitter4.0.1Autenticación con TwitterSeguridad
Newtonsoft.Json13.0.1Serialización/deserialización JSONUtilidades
NLog4.6.6Framework de loggingLogging
iTextSharp5.5.13.2Generación de documentos PDFPDF
itextsharp.xmlworker5.5.13.2Procesamiento XML/HTML a PDFPDF
BouncyCastle.Crypto1.8.9CriptografíaSeguridad
Common.Logging3.4.1Abstracción de loggingLogging
Common.Logging.Core3.4.1Núcleo de Common.LoggingLogging
RethinkDb.Driver2.3.100Cliente para base de datos RethinkDBBase de datos
WebGrease1.6.0Optimización de recursos webOptimización
Antlr3.5.0.2Parser para bundling/minificaciónOptimización
Owin1.0Especificación OWINFramework
Microsoft.AspNet.Cors5.2.7Soporte CORSAPI
Microsoft.AspNet.Razor3.2.7Motor de vistas RazorUI
Microsoft.AspNet.WebPages3.2.7Páginas web ASP.NETUI
Microsoft.AspNet.Web.Optimization1.1.3Bundling y minificaciónOptimización
Microsoft.Web.Infrastructure1.0.0.0Infraestructura web compartidaFramework
jQuery3.4.1Biblioteca JavaScriptUI
Bootstrap4.xFramework CSS/JSUI
Modernizr2.8.3Detección de características HTML5/CSS3UI
Popper.jsIncluidoPosicionamiento de tooltips/popoversUI

Referencias DLL Externas (No NuGet)#

LibreríaUbicaciónPropósito
DynamicPDF....\dlls\DynamicPDF.dllGeneración dinámica de PDFs
IKVM.Runtime....\dlls\IKVM.Runtime.dllEjecución de código Java en .NET
IKVM.OpenJDK.Core....\dlls\IKVM.OpenJDK.Core.dllBibliotecas core de Java
IKVM.OpenJDK.Security....\Dll\IKVM.OpenJDK.Security.dllSeguridad Java
IKVM.OpenJDK.Text....\Dll\IKVM.OpenJDK.Text.dllProcesamiento de texto Java
IKVM.OpenJDK.Util....\Dll\IKVM.OpenJDK.Util.dllUtilidades Java

Referencias de Proyecto#

ProyectoGUIDPropósito
NF.ClassLibrary{3c0ac671-cf96-4894-aefc-eb1663292e4c}Biblioteca de clases compartida (base de datos, modelos)
MetCotizadores{aceec137-488f-49bb-a8f1-1cf3d5b12333}Cotizadores de seguros MetLife

4. ARQUITECTURA DEL PROYECTO#

4.1 Patrón Arquitectónico#

El proyecto implementa una arquitectura híbrida MVC/Web API en N-Capas:
Capa de Presentación: Vistas Razor (MVC) para reportes PDF y páginas web
Capa de Controladores:
Controladores MVC para vistas
Controladores API para integración con aseguradoras
Capa de Lógica de Negocio: Clases Cotizador* en carpeta Library
Capa de Acceso a Datos: Entity Framework + Stored Procedures
Servicios Externos: Web Services SOAP (WCF) de aseguradoras

4.2 Diagrama de Arquitectura#

4.3 Componentes Principales#

Capa de Presentación#

Vistas Razor: Templates para generación de reportes PDF y emails de cotizaciones
HelpPage: Documentación automática de API
Bootstrap 4: Framework UI para interfaces responsivas

Capa de Controladores API#

QualitasController: Cotización, emisión y obtención de pólizas Qualitas
AnaController: Cotización y emisión para ANA Seguros
AxaController: Integración con AXA
ZurichController: Integración con Zurich
MapfreController: Integración con Mapfre
AutonetV4Controller: Integración con Autonet
NotificacionController: Envío de notificaciones y reportes

Capa de Lógica de Negocio#

CotizadorQualitas: Lógica de cotización Qualitas usando XML
CotizadorAna: Lógica de cotización ANA usando Web Services
CotizadorAxa: Lógica de cotización AXA
CotizadorZurich: Lógica de cotización Zurich
LibraryPdf/: Generadores de PDF para cotizaciones

Capa de Datos#

NF.ClassLibrary: Clases de acceso a datos (DataBase, DataModel, ResponseResult, etc.)
Entity Framework 6.2: ORM para modelos de Identity
Stored Procedures: Operaciones de base de datos principales
Múltiples bases de datos:
Prometeo (principal)
PegasusDB
Autonet_V8
iOpenData
Cotizadores
olympus_op_pr

Servicios Externos#

wsQualitas: Servicio SOAP de Qualitas (emisión)
wsQualitasQA: Ambiente QA de Qualitas
wsQualitasCatalogo: Catálogos de Qualitas
wsQualitasImpresion: Impresión de pólizas Qualitas
wsAna: Servicio SOAP de ANA Seguros

4.4 Flujo de Datos#

5. ASPECTOS MÁS RELEVANTES#

5.1 Funcionalidades Principales#

1.
Cotización Multi-Aseguradora
Integración simultánea con Qualitas, ANA, AXA, Zurich, Mapfre
Soporte para múltiples paquetes de cobertura (Amplia, Limitada, RC)
Cotización con diferentes formas de pago (Contado, Mensual, Trimestral, etc.)
Configuración de descuentos y bonificaciones por colectividad
2.
Emisión de Pólizas
Emisión directa con aseguradoras vía Web Services
Generación automática de PDF de pólizas
Validaciones de datos antes de emisión
Manejo de ambientes (Producción/QA)
3.
Generación de Reportes PDF
Cotizaciones en PDF con múltiples templates
Templates para email de ejecutivos
Reportes de seguros de autos, casa, gastos médicos
Integración con iTextSharp y DynamicPDF
4.
Gestión de Catálogos
Obtención dinámica de catálogos de aseguradoras
Marcas, modelos, submarcas de vehículos
Códigos postales, estados, municipios
Paquetes de coberturas y deducibles
5.
Sistema de Autenticación
ASP.NET Identity 2.2
OAuth 2.0 para integración con redes sociales
Autorización por colectividades
Gestión de credenciales por aseguradora
6.
Integración con Autonet
Integración con sistema Autonet V4
Sincronización de cotizaciones
7.
Sistema de Notificaciones
Envío de emails con cotizaciones
Templates HTML para correos
Configuración SMTP
8.
Gestión de Colectividades
Configuración de descuentos por colectividad
Credenciales de Web Services por colectividad
Derechos de póliza configurables
9.
Manejo de Ambientes
Configuración para Producción, QA, UAT
Connection strings por ambiente
CDN configurable por ambiente
10.
Logs y Auditoría
NLog para registro de errores
Almacenamiento de Request/Response de Web Services
Trazabilidad de cotizaciones y emisiones

5.2 Configuraciones Críticas#

Connection Strings#

- Prometeo_Prod: Base de datos principal
- PegasusDB_Prod: Sistema Pegasus
- Autonet_Prod: Integración Autonet V8
- iOpenData_Prod: Datos abiertos
- Cotizadores_Prod: Cotizadores MetLife
- Olympus_DB_Prod: Sistema Olympus
Servidor: sql.prod
Usuario: pegasus_user
Timeout: 30000ms

Configuraciones de Seguridad#

Autenticación: None (manejo por OWIN/Identity)
CORS: Habilitado para APIs
Headers permitidos: Content-Type, Authorization, X-Requested-With
Métodos: GET, POST, PUT, DELETE, OPTIONS
Credentials: true
HTTPS Redirect: Comentado (se puede activar)
Custom Errors: Off (modo desarrollo)

Configuraciones de Aseguradoras#

Qualitas
Clave_Agente: 31247
Numero_Negocio: 04538
Derechos_poliza: 750
Descuento: 40%
ANA Seguros
Clave_Agente: 59892
Numero_Negocio: 870
Usuario: 03910
Clave: 3Ruwrepr
Bonificacion: 25%

Configuraciones de Email#

SMTP Server: smtp.gmail.com
Port: 587
SSL: Enabled
From: autos@riesgosamparados.com

Configuraciones de Logging#

RootAppLog: C:\DEBUG
correo_reporte_error: erik.martinez@grupokc.com.mx

CDN#

CDN_Prod: https://cdngrupokc.azureedge.net/web/
CDN_QA: https://cdngrupokc.azureedge.net/web/

5.3 Patrones de Diseño Implementados#

1.
Repository Pattern: A través de NF.ClassLibrary (DataBase, DataModel)
2.
Factory Pattern: Creación de cotizadores por aseguradora
3.
Strategy Pattern: Diferentes estrategias de cotización por aseguradora
4.
Template Method: Templates XML para cada tipo de cotización
5.
DTO (Data Transfer Objects): CotizacionQualitas, CotizacionAna, CoberturaResult
6.
Dependency Injection: Vía OWIN para Identity y autenticación
7.
Async/Await Pattern: Operaciones asíncronas en controladores API
8.
Service Layer: Capa de cotizadores como servicios de negocio

5.4 Seguridad#

Autenticación#

ASP.NET Identity 2.2: Gestión de usuarios y roles
OWIN Authentication Middleware: Pipeline de autenticación
OAuth 2.0: Soporte para Facebook, Google, Microsoft, Twitter
Cookie Authentication: Sesiones de usuario
[Authorize] Attribute: Protección de endpoints API (algunos comentados en código)

Autorización#

Validación de colectividades
Credenciales por aseguradora almacenadas en BD
Validación de descuentos máximos por colectividad

Protecciones Implementadas#

CORS Configurado: Control de orígenes cruzados
TLS 1.2: Forzado para comunicación con servicios externos
SQL Injection Protection: Uso de Stored Procedures y parámetros
Binding Redirect: Prevención de conflictos de versiones
X-Frame-Options: Removido (permitir iframes)

Consideraciones de Seguridad#

Credenciales en Web.config (hardcoded) - RIESGO ALTO
Custom Errors: Off - No recomendado para producción
Algunos endpoints API sin [Authorize]
Connection strings con credenciales en texto plano

6. ANÁLISIS DE VERSIONES Y COMPATIBILIDAD#

Framework .NET#

Versión actual: .NET Framework 4.8
Fecha de lanzamiento: Abril 2019
Fecha de fin de soporte: Indefinido (soportado mientras Windows lo soporte)
Estado: ✅ Completamente Soportado (Última versión de .NET Framework)
Política de soporte: Soportado como parte del sistema operativo Windows

Compatibilidad C##

Versión del lenguaje: C# 7.3 (compatible con .NET Framework 4.8)
Características modernas utilizadas:
Async/Await
LINQ
Extension Methods
Lambda Expressions
Nullable Reference Types (no utilizado)
Pattern Matching (no utilizado)

Compatibilidad de IIS#

Versión mínima: IIS 7.0+
Modo Pipeline: Integrated
Runtime Version: v4.0
TypeScript: 3.0

Navegadores Soportados#

Basado en Bootstrap 4 y jQuery 3.4.1
IE 10+, Edge, Chrome, Firefox, Safari

7. RECOMENDACIONES DE ACTUALIZACIÓN#

7.1 Prioridad Alta 🔴#

ComponenteVersión ActualVersión RecomendadaMotivoEsfuerzo
Framework.NET Framework 4.8.NET 8.0+Modernización, performance, soporte a largo plazo, cloud-readyAlto
CredencialesHardcoded en Web.configAzure Key Vault / Secrets ManagerSeguridad crítica, exposición de credencialesMedio
Custom ErrorsOffOn con páginas personalizadasSeguridad, no exponer detalles internosBajo
HTTPSOpcional (comentado)Obligatorio con HSTSSeguridad, cifrado de datos sensiblesBajo
ASP.NET Identity2.2.2ASP.NET Core Identity (latest)Seguridad, características modernasAlto

7.2 Prioridad Media 🟡#

ComponenteVersión ActualVersión RecomendadaBeneficioEsfuerzo
NLog4.6.65.3+Mejores features, performanceBajo
iTextSharp5.5.13.2iText 7+ o QuestPDFLicenciamiento, características modernasMedio
Newtonsoft.Json13.0.1System.Text.JsonPerformance, reducción de dependenciasMedio
jQuery3.4.13.7+Seguridad, bugs corregidosBajo
Bootstrap4.x5.xMejoras UI, mejor accesibilidadMedio
Entity Framework6.2.0EF Core 8+Performance, características modernasAlto
Web APIASP.NET Web APIASP.NET Core Web APIPerformance, cross-platformAlto
SOAP ServicesWCFgRPC o RESTModernización, mejor performanceAlto

7.3 Prioridad Baja 🟢#

ComponenteVersión ActualVersión RecomendadaBeneficioEsfuerzo
TypeScript Tools3.0LatestMejores características TSBajo
Modernizr2.8.3Eliminar (no necesario en navegadores modernos)Reducir dependenciasBajo
RethinkDB.Driver2.3.100LatestCaracterísticas nuevasBajo

7.4 Roadmap de Migración Recomendado#

7.5 Estrategia de Migración a .NET 8#

Opción 1: Big Bang (No Recomendado)#

Migrar todo el proyecto de una vez. Alto riesgo, largo tiempo sin deploys.

Opción 2: Strangler Fig Pattern (Recomendado)#

1.
Crear nueva aplicación .NET 8 en paralelo
2.
Migrar endpoints gradualmente de .NET Framework a .NET 8
3.
Usar API Gateway (Azure API Management, Ocelot) para enrutar tráfico
4.
Compartir base de datos durante migración
5.
Migrar usuarios cuando funcionalidad crítica esté migrada
6.
Retirar aplicación legacy cuando todo esté migrado

Ventajas del Strangler Pattern#

Deploys continuos sin interrupciones
Rollback fácil si hay problemas
Testing en producción gradual
Menor riesgo de negocio
Aprendizaje incremental del equipo

8. MÉTRICAS DEL PROYECTO#

Estadísticas de Código#

Total de Controladores: 23+
Total de Vistas Razor: 20+
Servicios Web Integrados: 5 (Qualitas, ANA, AXA, Zurich, Mapfre)
Bases de Datos Conectadas: 7
Templates XML: 15+
Librerías de Negocio: 8 clases principales de cotizadores
Modelos de Datos: 3+ (Identity models)

9. DEUDA TÉCNICA IDENTIFICADA#

Issues Críticos 🔴#

Credenciales hardcoded en Web.config - ALTO RIESGO DE SEGURIDAD
Migrar a Azure Key Vault o sistema de secrets
Implementar rotación de credenciales
Custom Errors desactivado - Exposición de información sensible
Activar custom errors en producción
Crear páginas de error personalizadas
Endpoints API sin autorización - Algunos endpoints comentaron [Authorize]
Revisar y aplicar [Authorize] donde corresponda
Implementar políticas de autorización granulares
Falta de manejo centralizado de excepciones
Implementar Global Exception Handler
Logging estructurado de excepciones
Connection strings en texto plano
Cifrar connection strings
Usar Always Encrypted de SQL Server
Sin implementación de Circuit Breaker para Web Services
Implementar Polly para resiliencia
Manejo de timeouts y reintentos

Issues Importantes 🟡#

Código duplicado en controladores de aseguradoras
Crear clase base abstracta para controladores
Extraer lógica común
Falta de tests unitarios e integración
Implementar xUnit/NUnit
Cobertura mínima 70%
Logging inconsistente
Estandarizar logging con NLog
Implementar correlación de logs
Falta de documentación de APIs
Swagger/OpenAPI está parcialmente configurado (HelpPage)
Completar documentación de endpoints
XML parsing manual con XmlDocument
Migrar a LINQ to XML (XDocument)
Considerar modelos fuertemente tipados con serialización
Uso de Thread.Sleep en código de producción
Eliminar ThreadProc innecesarios
Usar async/await correctamente
Falta de validación de entrada
Implementar Data Annotations
Validar todos los FormDataCollection

Mejoras Recomendadas 🟢#

Implementar caching
Redis o In-Memory caching para catálogos
Reducir llamadas a Web Services
Containerizar aplicación
Crear Dockerfile
Kubernetes/AKS deployment
CI/CD Pipeline
Azure DevOps / GitHub Actions
Automated testing y deployment
Monitoreo y observabilidad
Application Insights
Health checks
Métricas de negocio
Refactorizar arquitectura hacia Clean Architecture
Separar Domain, Application, Infrastructure
Dependency Inversion
Implementar MediatR
CQRS pattern para separar lecturas/escrituras
Mejor testabilidad
Versionado de API
Implementar API versioning
Documentar breaking changes

10. GLOSARIO TÉCNICO#

Términos de Dominio#

Cotización: Proceso de calcular el costo de una póliza de seguro antes de la emisión
Emisión: Generación formal de una póliza de seguro después de la cotización
Paquete de Cobertura: Conjunto de coberturas incluidas en una póliza (Amplia, Limitada, RC)
RC (Responsabilidad Civil): Cobertura básica obligatoria
DM (Daños Materiales): Cobertura para daños al vehículo
GMO (Gastos Médicos Ocupantes): Cobertura médica para ocupantes del vehículo
Deducible: Monto que el asegurado debe pagar antes de que la aseguradora cubra el resto
Suma Asegurada: Monto máximo que la aseguradora pagará por un siniestro
Bonificación/Descuento: Porcentaje de descuento aplicado a la prima
Colectividad: Grupo de clientes con condiciones especiales (empresa, organización)
Clave AMIS: Código estandarizado de vehículo por la Asociación Mexicana de Instituciones de Seguros
Número de Negocio: Identificador del agente/negocio en la aseguradora

Términos Técnicos#

SOAP: Protocolo de comunicación basado en XML para Web Services
WCF (Windows Communication Foundation): Framework de Microsoft para servicios web
OWIN (Open Web Interface for .NET): Abstracción entre servidores web y aplicaciones
ORM (Object-Relational Mapping): Entity Framework para mapear objetos a BD
DTO (Data Transfer Object): Objetos para transferir datos entre capas
CORS (Cross-Origin Resource Sharing): Compartir recursos entre diferentes orígenes
HSTS (HTTP Strict Transport Security): Forzar conexiones HTTPS
CDN (Content Delivery Network): Red de distribución de contenido estático

Aseguradoras Integradas#

Qualitas: Aseguradora mexicana especializada en seguros de auto
ANA (ABA Seguros): Aseguradora mexicana
AXA: Aseguradora internacional
Zurich: Aseguradora internacional
Mapfre: Aseguradora española con presencia en México
MetLife: Aseguradora de vida

Sistemas Relacionados#

Autonet: Sistema de administración de agencias
Pegasus: Sistema interno de gestión
Olympus: Sistema de operaciones
iOpenData: Sistema de datos abiertos
Prometeo: Base de datos principal

NOTAS ADICIONALES#

Ambientes de Ejecución#

El sistema está configurado para múltiples ambientes:
Producción (Prod): Ambiente productivo
QA: Control de calidad
UAT: User Acceptance Testing
EnQA: Ambiente adicional de QA
La configuración se controla mediante:
<add key="RunTimeMode" value="Prod"/>

Características Notables#

1.
Multitenancy por Colectividad: Cada colectividad puede tener diferentes credenciales y descuentos
2.
Templates XML por Operación: Cada operación (cotizar, emitir) tiene su template XML
3.
Generación Dinámica de PDFs: Múltiples templates Razor para diferentes tipos de reportes
4.
Integración con Azure CDN: Recursos estáticos servidos desde Azure CDN
5.
Stored Procedures: La mayoría de operaciones de BD usan SPs

Limitaciones Conocidas#

1.
No hay implementación de rate limiting para APIs
2.
No hay implementación de circuit breaker para resiliencia
3.
Falta de health checks para monitoreo
4.
No hay implementación de feature flags
5.
Logging de requests/responses puede impactar performance
6.
No hay compresión de responses configurada
7.
Falta de paginación en algunos endpoints

Oportunidades de Optimización#

1.
Caching de catálogos: Los catálogos de vehículos raramente cambian
2.
Async all the way: Algunos métodos síncronos pueden ser async
3.
Bulk operations: Guardar múltiples cotizaciones en una sola operación
4.
Database indexes: Revisar y optimizar índices
5.
Query optimization: Algunos SPs podrían optimizarse
6.
CDN para XMLs: Templates XML podrían servirse desde CDN
7.
Lazy loading: Cargar servicios solo cuando se necesiten

Referencias de Documentación#

ASP.NET MVC 5: https://docs.microsoft.com/aspnet/mvc/overview/getting-started/
ASP.NET Web API 2: https://docs.microsoft.com/aspnet/web-api/
Entity Framework 6: https://docs.microsoft.com/ef/ef6/
OWIN: http://owin.org/
iTextSharp: https://itextpdf.com/

Documentación generada: 2025-12-13
Analizado por: Claude AI (Sonnet 4.5)
Versión del documento: 1.0
Proyecto: FrontBack Cotizador
Framework: .NET Framework 4.8
Modificado en 2025-12-14 00:02:53
Anterior
CServer
Siguiente
Oserver
Built with