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

Olympus

MAPA DE SITIO Y DOCUMENTACIÓN TÉCNICA - PROYECTO OLYMPUS#

Versión: 3.0.12
Fecha de Generación: 2025-12-13
Analizado por: Claude AI (Sonnet 4.5)
Empresa: Grupo KC Agente de Seguros, S.A.P.I. de C.V.

1. INFORMACIÓN GENERAL DEL PROYECTO#

Descripción y Propósito#

Olympus es una aplicación web empresarial integral que gestiona todas las operaciones de seguros para Grupo KC Agente de Seguros. El sistema cubre el ciclo de vida completo desde la captura de solicitudes hasta la emisión de pólizas, incluyendo gestión de agentes, cálculo de comisiones, generación de reportes y administración de catálogos.

Datos Técnicos#

AtributoValor
Nombre del ProyectoOlympus
Versión Actual3.0.12
Framework.NET Framework 4.5
LenguajeVisual Basic.NET (VB.NET)
Tipo de AplicaciónASP.NET Web Forms (Aplicación Web)
Base de DatosSQL Server (olympus_op_pr)
Servidor BDsql.prod
Última ModificaciónAgosto 2025
Años de Operación15+ años

Estado del Framework#

ComponenteVersiónEstadoSoporte
.NET Framework4.5❌ ObsoletoFinalizado en enero 2016
ASP.NET Web Forms4.5⚠️ LegacySolo en .NET Framework
Visual Basic.NETVB 11⚠️ LegacySin nuevas características

2. MAPA DE SITIO / ESTRUCTURA DEL PROYECTO#

2.1 Árbol Jerárquico Completo#

📁 Olympus/
│
├── 📁 Web/ (Proyecto principal ASP.NET)
│   │
│   ├── 📄 Default.aspx (Página de Login - v3.0.12)
│   ├── 📄 Global.asax (Eventos del ciclo de vida de la aplicación)
│   ├── 📄 Web.config ⚙️ (Configuración principal del sistema)
│   ├── 📄 Web.sitemap (Estructura de navegación - 126 nodos)
│   ├── 📄 StyleSheet.css (Estilos globales)
│   │
│   ├── 📁 admin/ (Administración del Sistema - 8 páginas)
│   │   ├── 📄 AdministrarQueries.aspx
│   │   ├── 📄 GenerarCorte.aspx
│   │   ├── 📄 ListarMetricas.aspx
│   │   ├── 📄 PermisoVentaRetenedor.aspx
│   │   ├── 📄 SelfService.aspx (Actualización de producción)
│   │   └── 📄 ... (3 páginas más)
│   │
│   ├── 📁 agentes/ ⭐ (Gestión de Agentes - 34 páginas)
│   │   ├── 📄 BuscarAgentes.aspx
│   │   ├── 📄 NuevoAgente.aspx
│   │   ├── 📄 CalcularMetas.aspx
│   │   ├── 📄 ListarPremios.aspx
│   │   ├── 📄 ImprimirEtiquetas.aspx
│   │   ├── 📄 RankingAgentes.aspx
│   │   ├── 📄 FinanciamientoEspecial.aspx
│   │   └── 📄 ... (27 páginas más)
│   │
│   ├── 📁 Api/ (Endpoints API - 2 archivos)
│   │   ├── 📄 ListarBonoSemestralProduccionAPI.aspx
│   │   └── 📄 ObtenerIdRetenedor.aspx
│   │
│   ├── 📁 App_Code/ ⚙️ (Código Compartido - 52 archivos VB.NET)
│   │   │
│   │   ├── 📁 Data/ (Capa de Acceso a Datos - 15 DataSets)
│   │   │   ├── 📄 olympus.xsd (DataSet principal)
│   │   │   ├── 📄 Solicitudes.xsd
│   │   │   ├── 📄 Polizas.xsd
│   │   │   ├── 📄 Servicios.xsd
│   │   │   ├── 📄 Agentes.xsd
│   │   │   ├── 📄 Comisiones.xsd
│   │   │   ├── 📄 Catalogos.xsd
│   │   │   ├── 📄 Consultas.xsd
│   │   │   ├── 📄 Relaciones.xsd
│   │   │   ├── 📄 reportes.xsd
│   │   │   ├── 📄 procesos.xsd
│   │   │   ├── 📄 Admin.xsd
│   │   │   ├── 📄 gridViews.xsd
│   │   │   ├── 📄 Callout.xsd
│   │   │   └── 📄 Pruebas.xsd
│   │   │
│   │   └── 📁 UI/Business/ (Capa de Lógica de Negocio - 33 clases)
│   │       ├── 📄 UserData.vb (Gestión de sesión de usuario)
│   │       ├── 📄 CustomMembership.vb (Autenticación personalizada)
│   │       ├── 📄 Solicitud.vb
│   │       ├── 📄 Poliza.vb
│   │       ├── 📄 Agente.vb
│   │       ├── 📄 Comisiones.vb
│   │       ├── 📄 Lote.vb
│   │       ├── 📄 Servicio.vb
│   │       ├── 📄 Devolucion.vb
│   │       ├── 📄 Excel.vb (Exportación a Excel)
│   │       ├── 📄 BarCode.vb (Códigos de barras)
│   │       ├── 📄 Globals.vb
│   │       ├── 📄 Helpers.vb
│   │       ├── 📄 Layout.vb
│   │       ├── 📄 Cotizador.vb
│   │       ├── 📄 Premio.vb
│   │       ├── 📄 Promotoria.vb
│   │       ├── 📄 Retenedor.vb
│   │       ├── 📄 ArchivosDES.vb
│   │       ├── 📄 Cartera.vb
│   │       ├── 📄 Comunicados.vb
│   │       ├── 📄 Concursos.vb
│   │       ├── 📄 Excepcion.vb
│   │       ├── 📄 Motivo.vb
│   │       ├── 📄 PanelControl.vb
│   │       ├── 📄 Parametro.vb
│   │       ├── 📄 Privilegio.vb
│   │       ├── 📄 Query.vb (Reporteador dinámico)
│   │       ├── 📄 Relacion.vb
│   │       ├── 📄 Transactions.vb
│   │       ├── 📄 Usuario.vb
│   │       └── 📁 Exceptions/
│   │           └── 📄 CatalogException.vb
│   │
│   ├── 📁 Bin/ (Ensamblados Compilados - 34+ DLLs)
│   │   ├── 📦 CrystalDecisions.*.dll (13 DLLs - Crystal Reports 13.0.4001)
│   │   ├── 📦 AjaxControlToolkit.dll
│   │   ├── 📦 Newtonsoft.Json.dll
│   │   ├── 📦 OServerLogic.dll (Proyecto externo)
│   │   ├── 📦 Microsoft.Office.Interop.Excel.dll
│   │   ├── 📦 Microsoft.Practices.EnterpriseLibrary.*.dll
│   │   ├── 📦 itextsharp.dll
│   │   ├── 📦 GenCode128.dll
│   │   └── 📦 Brettle.Web.NeatUpload.dll
│   │
│   ├── 📁 Carga/ (Carga de Datos - 2 páginas)
│   │   ├── 📄 Cargar_Polizas.aspx
│   │   └── 📄 Resultado_Polizas.aspx
│   │
│   ├── 📁 catalogos/ (Catálogos Maestros - 33 páginas)
│   │   ├── 📄 ListarMotivos.aspx
│   │   ├── 📄 ListarPlanes.aspx
│   │   ├── 📄 ListarPromotorias.aspx
│   │   ├── 📄 ListarOficinas.aspx
│   │   ├── 📄 ListarRetenedores.aspx
│   │   ├── 📄 ListarSubretenedores.aspx
│   │   ├── 📄 ListarTarifas.aspx
│   │   ├── 📄 ListarProveedores.aspx
│   │   ├── 📄 ListarConceptos.aspx
│   │   ├── 📄 ListarTiposServicio.aspx
│   │   └── 📄 ... (23 páginas más)
│   │
│   ├── 📁 comisiones/ (Sistema de Comisiones - 27 páginas)
│   │   ├── 📄 CalcularComisiones.aspx
│   │   ├── 📄 ListarEsquemas.aspx
│   │   ├── 📄 ListarExcepciones.aspx
│   │   ├── 📄 BonoProductividad.aspx
│   │   ├── 📄 BonoReclutamiento.aspx
│   │   ├── 📄 BonoSemestral.aspx
│   │   ├── 📄 BonoTrimestral.aspx
│   │   ├── 📄 AnexoComisiones.aspx
│   │   ├── 📄 InvasionMercado.aspx
│   │   └── 📄 ... (18 páginas más)
│   │
│   ├── 📁 consultas/ (Consultas y Búsquedas - 22 páginas)
│   │   ├── 📄 BuscarSolicitudes.aspx
│   │   ├── 📄 BuscarPolizas.aspx
│   │   ├── 📄 BuscarLotes.aspx
│   │   ├── 📄 BuscarServicios.aspx
│   │   ├── 📄 ListarQueries.aspx
│   │   ├── 📄 Reporteador.aspx (Reportes dinámicos SQL)
│   │   ├── 📄 GeneraFinanc.aspx
│   │   └── 📄 ... (15 páginas más)
│   │
│   ├── 📁 general/ (Páginas Generales - 8 páginas)
│   │   ├── 📄 Home.aspx (Página principal post-login)
│   │   ├── 📄 MasterPage.master (Plantilla principal del sitio)
│   │   ├── 📄 ListarTrabajos.aspx
│   │   ├── 📄 ChecarTrabajo.aspx
│   │   ├── 📄 Error.aspx
│   │   └── 📄 ... (3 páginas más)
│   │
│   ├── 📁 images/ (Recursos Gráficos)
│   │   ├── 🖼️ GrupoKCLogo300.png
│   │   ├── 🖼️ olympusch.gif
│   │   └── 🖼️ splash.jpg
│   │
│   ├── 📁 relaciones/ (Reportes de Relaciones - 88 archivos .rpt)
│   │   ├── 📄 ImprimirPolizas.rpt
│   │   ├── 📄 ImprimirServicios.rpt
│   │   ├── 📄 CartaOrden.rpt
│   │   ├── 📄 EnvioAseguradora.rpt
│   │   ├── 📄 SIEMI_Metlife.rpt
│   │   ├── 📄 DevolucionKC.rpt
│   │   ├── 📄 DevolucionPCE.rpt
│   │   └── 📄 ... (81 reportes más)
│   │
│   ├── 📁 reportes/ (Generación de Reportes - 10 páginas + 24 .rpt)
│   │   ├── 📄 ListarReportes.aspx
│   │   ├── 📄 ListarReportes2.aspx
│   │   ├── 📄 GenerarReportes.aspx
│   │   ├── 📄 MostrarPDF.aspx
│   │   ├── 📄 AgentesHistorico.rpt
│   │   ├── 📄 ComisionesAnexo.rpt
│   │   └── 📄 ... (18 reportes más)
│   │
│   ├── 📁 scripts/ (JavaScript - 9 archivos)
│   │   ├── 📄 captura.js
│   │   ├── 📄 utils.js
│   │   ├── 📄 jquery.sumoselect.min.js
│   │   ├── 📄 Subretenedores.js
│   │   └── 📄 ... (5 archivos más)
│   │
│   ├── 📁 seguridad/ (Seguridad y Usuarios - 4 páginas)
│   │   ├── 📄 ListarUsuarios.aspx
│   │   ├── 📄 ListarRoles.aspx
│   │   ├── 📄 CapturarUsuario.aspx
│   │   └── 📄 CapturarRol.aspx
│   │
│   ├── 📁 solicitudes/ ⭐⭐⭐ (MÓDULO PRINCIPAL - 59 páginas)
│   │   ├── 📄 CapturarSolicitud.aspx (Captura de nuevos negocios)
│   │   ├── 📄 CapturarDevolucion.aspx
│   │   ├── 📄 CapturarPoliza.aspx
│   │   ├── 📄 CapturarServicio.aspx
│   │   ├── 📄 GenerarLote.aspx
│   │   ├── 📄 GenerarValija.aspx
│   │   ├── 📄 PanelControl.aspx (Dashboard ejecutivo)
│   │   ├── 📄 EnviarServicios.aspx
│   │   ├── 📄 ImprimirPolizas.aspx
│   │   ├── 📄 ProcesarDES.aspx
│   │   ├── 📄 VerSolicitud.aspx
│   │   ├── 📄 VerPoliza.aspx
│   │   └── 📄 ... (47 páginas más)
│   │
│   └── 📁 styles/ (Hojas de Estilo)
│       ├── 📄 StyleGeneral.css
│       └── 📄 sumoselect.css
│
└── 📁 OServerLogic/ (Proyecto VB.NET Externo)
    └── 📦 OServerLogic.dll (Lógica de servidor compilada)

2.2 Organización de Namespaces#

El proyecto utiliza la estructura de namespaces implícita de ASP.NET Web Forms:
App_Code (Namespace raíz global)
├── Data
│   ├── olympusDataSet
│   ├── SolicitudesDataSet
│   ├── PolizasDataSet
│   └── ... (12 DataSets más)
│
└── UI.Business
    ├── UserData
    ├── CustomMembership
    ├── Solicitud
    ├── Poliza
    └── ... (29 clases más)

2.3 Proyectos en la Solución#

La solución olympus.sln contiene:
1.
Web (ASP.NET Website) - Proyecto principal
2.
OServerLogic (VB.NET Class Library) - Lógica de servidor externa
Relación:
Web (416 páginas ASPX)
 └── Referencia → OServerLogic.dll

3. INVENTARIO DE LIBRERÍAS Y DEPENDENCIAS#

3.1 NuGet Packages#

LibreríaVersión ActualPropósitoCategoríaEstado
CrystalReports.ReportAppServer13.0.4001Motor de reportes Crystal ReportsReportes⚠️ Antigua
log4net1.2.10Registro de eventos y erroresLogging❌ Muy desactualizado

3.2 Ensamblados en Bin/#

LibreríaVersiónPropósitoCategoríaEstado
CrystalDecisions.*.dll13.0.4000.0Suite completa Crystal ReportsReportes⚠️ Antigua
AjaxControlToolkit.dllDesconocidaControles AJAX para Web FormsUI/AJAX⚠️ Verificar
Newtonsoft.Json.dllDesconocidaSerialización JSONAPI/Data⚠️ Verificar
Microsoft.Office.Interop.Excel.dll14.0Generación de archivos ExcelReportes⚠️ Office 2010
Microsoft.Practices.EnterpriseLibrary.*.dllDesconocidaPatrones empresariales MicrosoftFramework⚠️ Descontinuada
itextsharp.dllDesconocidaGeneración de PDFsReportes⚠️ Verificar
GenCode128.dllDesconocidaCódigos de barras Code128Utilidades✅ OK
Brettle.Web.NeatUpload.dllDesconocidaSubida de archivos grandesFile Upload⚠️ Verificar
OServerLogic.dllCustomLógica de negocio personalizadaNegocio✅ Custom

3.3 Frontend Libraries#

LibreríaVersiónPropósitoEstado
jQuery1.9.1 (2013)Manipulación DOM❌ 11 años desactualizado
Tailwind CSSCDN (última)Framework CSS utility-first✅ Actualizado (solo en Default.aspx)
AmChartsDesconocidaGráficos y visualizaciones⚠️ Verificar
SumoSelectDesconocidaSelect mejorado multi-selección⚠️ Verificar

3.4 Dependencias del Sistema#

ComponenteVersión RequeridaPropósito
.NET Framework4.5+Runtime del framework
IIS7.0+Servidor web
SQL Server2008+Base de datos
Windows Server2008 R2+Sistema operativo servidor

4. ARQUITECTURA DEL PROYECTO#

4.1 Patrón Arquitectónico#

Arquitectura de 3 Capas (Three-Tier Architecture)
El proyecto implementa una arquitectura clásica de 3 capas con separación clara de responsabilidades:
1.
Capa de Presentación (Presentation Layer)
2.
Capa de Lógica de Negocio (Business Logic Layer)
3.
Capa de Acceso a Datos (Data Access Layer)
Patrón secundario: Code-Behind Pattern (ASP.NET Web Forms)

4.2 Diagrama de Arquitectura#

4.3 Componentes Principales#

Capa de Presentación#

Páginas ASPX: 416 páginas Web Forms con interfaz de usuario
Code-Behind (.aspx.vb): 412 archivos con lógica de presentación
Master Pages: MasterPage.master proporciona layout consistente
Controles de Servidor: Uso extensivo de controles ASP.NET (GridView, DetailsView, etc.)
AJAX: AjaxControlToolkit para interactividad sin postback completo
JavaScript/CSS: Scripts personalizados y estilos
Responsabilidad: Renderizado de UI, validación de entrada, interacción con usuario

Capa de Lógica de Negocio#

33 clases VB.NET en App_Code/UI/Business/
Entidades de dominio: Solicitud, Poliza, Agente, Comisiones, etc.
Servicios de negocio: Excel, BarCode, Helpers, Layout
Gestión de sesión: UserData.vb
Autenticación: CustomMembership.vb
OServerLogic.dll: Proyecto externo con lógica adicional
Responsabilidad: Reglas de negocio, validaciones complejas, orquestación de operaciones

Capa de Acceso a Datos#

15 Typed DataSets (.xsd): Generan clases fuertemente tipadas
TableAdapters: Métodos Fill() y GetData() autogenerados
Stored Procedures: Llamadas a SQL Server vía TableAdapters
Connection Pooling: Gestión automática de conexiones ADO.NET
Responsabilidad: CRUD operations, queries a base de datos, mapeo objeto-relacional

Base de Datos#

SQL Server en servidor sql.prod
olympus_op_pr: Base de datos de producción
Tablas principales: Solicitudes, Polizas, Agentes, Comisiones, Catálogos
Stored Procedures: Lógica de negocio en BD
Views: Vistas para reportes y consultas
Responsabilidad: Persistencia de datos, integridad referencial, transacciones

Servicios Externos#

Crystal Reports: Generación de 88 reportes en formato .rpt
Office Interop: Exportación a Excel
iTextSharp: Generación de PDFs

4.4 Flujo de Datos#

Secuencia de Operación Típica: Capturar Solicitud#

Flujo de Autenticación#


5. ASPECTOS MÁS RELEVANTES#

5.1 Funcionalidades Principales del Sistema#

1. Gestión de Solicitudes (Módulo Core)#

Tipos de solicitudes:
Nuevo: Alta de nueva póliza
Incremento: Aumento de suma asegurada
Inclusión: Agregado de beneficiarios/coberturas
Servicio: Modificaciones a pólizas existentes
Devolución Producción: Devolución de nuevos negocios
Devolución Servicio: Devolución de servicios
Estados del flujo:
Capturada Promotoría → Enviada Oficina → Ingresada KC →
Enviada Proveedor → Recibida Proveedor → En Captura Proveedor →
Pendiente Proveedor → Suscripción Proveedor → Emitida
Páginas clave:
CapturarSolicitud.aspx: Captura de solicitudes
PanelControl.aspx: Dashboard ejecutivo del estado
GenerarLote.aspx / GenerarValija.aspx: Agrupación de solicitudes
ProcesarDES.aspx: Procesamiento de documentos electrónicos

2. Gestión de Agentes#

Alta, baja y modificación de agentes
Asignación a promotorías y niveles
Cálculo de metas (individuales, por promotoría, por retenedor)
Financiamiento especial
Rankings de producción
Impresión de etiquetas y comunicados

3. Sistema de Comisiones#

Tipos de comisiones:
Comisiones regulares (basadas en esquemas)
Bono de Productividad
Bono de Reclutamiento
Bono Semestral
Bono Trimestral
Retroactivos
Excepciones personalizadas
Funcionalidades:
Esquemas de comisión configurables por plan/promotoria/agente
Cálculo automatizado por periodo
Anexos de comisiones para retenedor
Invasión de mercado

4. Catálogos Maestros#

33 catálogos configurables:
Motivos de devolución
Conceptos de descuento
Tipos de Servicio
Planes de seguros
Promotorías y categorías
Oficinas
Proveedores (aseguradoras)
Retenedores y Subretenedores
Tarifas
Zonas geográficas
Estados de la República
Claves Presupuestales

5. Reporteador y Consultas#

Búsqueda avanzada de solicitudes, pólizas, lotes y servicios
Reporteador dinámico: Queries SQL guardados y parametrizados
Generación de reportes financieros
Exportación: Excel, PDF, Crystal Reports

6. Generación de Reportes#

88 reportes Crystal Reports (.rpt):
Relaciones: Impresión de pólizas, servicios, devoluciones
Documentos: Cartas de orden, envíos a aseguradora, acuses
SIEMI: Sistema de emisión Metlife
Análisis: Históricos de agentes, comisiones, bonos
Etiquetas: Impresión de etiquetas para correspondencia

7. Administración del Sistema#

Gestión de usuarios y roles
Asignación de privilegios granulares
Métricas del sistema
Generación de cortes
SelfService: Actualización de producción de agentes
Permisos de venta por retenedor
Administración de queries del reporteador

5.2 Configuraciones Críticas#

Connection Strings#

<connectionStrings>
    <add name="olympusConnectionString"
         connectionString="Data Source=sql.prod;
                           Initial Catalog=olympus_op_pr;
                           Integrated Security=True"
         providerName="System.Data.SqlClient" />
</connectionStrings>
⚠️ Riesgo: Connection string con credenciales en Web.config

Configuraciones de Seguridad#

<pages validateRequest="false"
       enableEventValidation="false"
       enableViewStateMac="false"
       viewStateEncryptionMode="Never" />
⚠️ CRÍTICO: Configuraciones inseguras que exponen el sistema a:
XSS (Cross-Site Scripting)
ViewState Tampering
Exposición de datos sensibles en ViewState

Autenticación#

<authentication mode="Forms">
    <forms loginUrl="default.aspx"
           name=".ASPXFORMSAUTH"
           enableCrossAppRedirects="true"
           timeout="525600" />
</authentication>

<membership defaultProvider="CustomMembership">
    <providers>
        <add name="CustomMembership"
             type="CustomMembership"
             requiresUniqueEmail="true"
             passwordFormat="Clear" />
    </providers>
</membership>
⚠️ CRÍTICO:
passwordFormat="Clear": Contraseñas en texto claro
timeout="525600": 1 año de timeout (riesgo de sesiones robadas)

Globalización#

<globalization culture="es-MX" uiCulture="es-MX" />
✅ Configurado para México (español)

HTTP Runtime#

<httpRuntime maxRequestLength="2097151" executionTimeout="60000" />
maxRequestLength: ~2GB (para cargas de archivos grandes)
executionTimeout: 60 segundos

Redirección HTTPS#

<system.webServer>
    <rewrite>
        <rule name="http to https" stopProcessing="true">
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
        </rule>
    </rewrite>
</system.webServer>
✅ Fuerza uso de HTTPS

5.3 Patrones de Diseño Implementados#

1. Code-Behind Pattern (Web Forms)#

Separación entre presentación (.aspx) y lógica de UI (.aspx.vb)

2. Master Page Pattern#

MasterPage.master proporciona layout consistente con:
Menú de navegación basado en Web.sitemap
Header con logo y usuario logueado
Footer común
SiteMapPath para breadcrumbs

3. Custom Membership Provider Pattern#

CustomMembership.vb implementa MembershipProvider abstracto para autenticación personalizada contra SQL Server

4. TableAdapter Pattern (Typed DataSets)#

15 archivos .xsd generan:
Clases DataTable fuertemente tipadas
TableAdapters con métodos CRUD
Métodos personalizados por query

5. Business Objects Pattern#

Clases en App_Code/UI/Business/ encapsulan:
Entidades de dominio (Solicitud, Poliza, Agente)
Lógica de negocio
Validaciones

6. Session Management via FormsAuthenticationTicket#

UserData.vb serializa información de sesión en ticket de autenticación en lugar de Session state tradicional

7. Repository-like Pattern (TableAdapters)#

Aunque no es Repository puro, los TableAdapters actúan como capa de abstracción sobre SQL

5.4 Seguridad#

Autenticación#

Mecanismo: Forms Authentication con CustomMembership Provider
Flujo:
1.
Usuario ingresa credenciales en Default.aspx
2.
CustomMembership.ValidateUser() consulta tabla Usuarios en BD
3.
Comparación de contraseña en texto claro ⚠️
4.
Si es válido, crea FormsAuthenticationTicket con UserData serializado
5.
Cookie .ASPXFORMSAUTH almacena ticket encriptado
UserData contiene:
Public Class UserData
    Public IdUsuario As Integer
    Public Privilegios As String
    Public Tipo As Integer
    Public IdPromotoria As Integer
    Public IdOficina As Integer
    Public IdRetenedor As Integer
    ' ... más propiedades
End Class

Autorización#

Sistema basado en privilegios:
Cada funcionalidad tiene un ID de privilegio
Usuarios tienen string de privilegios: "1,5,12,35,..."
Menú se filtra dinámicamente según privilegios del usuario
Validación en Page_Load de cada página
Roles/Tipos de usuario:
Administrador
Promotoría
Oficina
Proveedor (aseguradora)

Vulnerabilidades Identificadas#

🔴 Críticas:
1.
Contraseñas en texto claro (passwordFormat="Clear")
2.
validateRequest="false": Vulnerable a XSS
3.
enableViewStateMac="false": ViewState puede ser alterado
4.
viewStateEncryptionMode="Never": ViewState sin encriptar expone datos
5.
Connection strings en Web.config: Credenciales expuestas en código fuente
🟠 Altas:
1.
Session timeout de 1 año: Sesiones robadas son válidas por mucho tiempo
2.
No hay rate limiting: Vulnerable a brute force en login
3.
jQuery 1.9.1 antiguo: Vulnerabilidades conocidas (CVE-2015-9251, CVE-2020-11022)
🟡 Medias:
1.
No hay CORS configurado: Potencial para ataques CSRF
2.
No hay Content Security Policy (CSP)
3.
No hay protección contra clickjacking (X-Frame-Options)

6. ANÁLISIS DE VERSIONES Y COMPATIBILIDAD#

6.1 Framework .NET#

ComponenteVersión ActualFecha de LanzamientoFecha de EOLEstado
.NET Framework 4.54.5.0Agosto 2012Enero 2016❌ Fuera de soporte
.NET Framework 4.5.1-Octubre 2013Enero 2016❌ Fuera de soporte
.NET Framework 4.5.2-Mayo 2014Abril 2022❌ Fuera de soporte
.NET Framework 4.6-Julio 2015Abril 2022❌ Fuera de soporte
.NET Framework 4.6.2-Agosto 2016Enero 2027⚠️ Soporte extendido
.NET Framework 4.7.2-Abril 2018Enero 2027⚠️ Soporte extendido
.NET Framework 4.8-Abril 2019Enero 2027✅ Soportado
.NET Framework 4.8.1RecomendadoAgosto 20222027+✅ Última versión
Estado del proyecto: ❌ CRÍTICO - Framework obsoleto desde hace 9 años
Recomendación urgente: Migrar a .NET Framework 4.8.1 como mínimo

6.2 Compatibilidad C##

El proyecto usa Visual Basic.NET versión 11 (VB.NET para .NET 4.5)
CaracterísticaVB 11 (.NET 4.5)VB 14 (.NET 4.6+)VB 15 (.NET 4.7+)
Async/Await✅ Soportado✅ Mejorado✅ Mejorado
Iteradores✅✅✅
Caller Info Attributes✅✅✅
String Interpolation❌✅✅
Null-Conditional Operators❌✅✅
Tuples❌❌✅
Características modernas utilizadas en el proyecto:
Ninguna característica moderna identificada
Código utiliza sintaxis VB.NET clásica

6.3 ASP.NET Web Forms#

VersiónEstadoPortabilidad .NET Core
ASP.NET Web Forms 4.5⚠️ Legacy❌ NO soportado en .NET Core/.NET 5+
Implicaciones:
Web Forms solo existe en .NET Framework (Windows only)
No puede migrar a .NET Core, .NET 5, .NET 6, .NET 7, .NET 8
Limitado a Windows Server + IIS
No soporta contenedores nativamente (Docker complicado)
Alternativas de Microsoft:
ASP.NET Core MVC
ASP.NET Core Razor Pages
Blazor Server
Blazor WebAssembly

7. RECOMENDACIONES DE ACTUALIZACIÓN#

7.1 Prioridad Alta 🔴 (Crítico - Ejecutar de inmediato)#

ComponenteVersión ActualVersión RecomendadaMotivoEsfuerzo
.NET Framework4.54.8.1Seguridad / EOL desde 2016Alto
jQuery1.9.1 (2013)3.7.1Vulnerabilidades CVEBajo
log4net1.2.10 (2011)2.0.17Seguridad / 13 años desactualizadoBajo
ContraseñasTexto claroHashing (bcrypt/PBKDF2)Seguridad críticaMedio
Web.configInseguroHabilitar proteccionesXSS / TamperingBajo
Justificación detallada:
1.
.NET Framework 4.5 → 4.8.1
Seguridad: Sin parches desde 2016, vulnerabilidades conocidas sin resolver
Performance: 4.8.1 es ~15-20% más rápido
Compatibilidad: 4.8.1 es backward compatible con 4.5
Esfuerzo: Medio-Alto (requiere testing extenso)
Impacto: Soporte extendido hasta 2027+
2.
jQuery 1.9.1 → 3.7.1
Vulnerabilidades: CVE-2015-9251, CVE-2020-11022, CVE-2020-11023
Esfuerzo: Bajo-Medio (posibles breaking changes en sintaxis)
Testing: Validar funcionalidad AJAX y manipulación DOM
3.
log4net 1.2.10 → 2.0.17
Seguridad: Versión antigua con potenciales vulnerabilidades
Compatibilidad: API compatible, mínimos cambios
Esfuerzo: Bajo
4.
Implementar hashing de contraseñas
' Actual (INSEGURO):
If password = dbPassword Then ' Comparación texto claro

' Recomendado:
If BCrypt.Verify(password, dbPasswordHash) Then
Esfuerzo: Medio (requiere migración de contraseñas existentes)
Plan:
1.
Agregar columna PasswordHash a tabla Usuarios
2.
Implementar BCrypt.NET
3.
Migrar contraseñas existentes (script one-time)
4.
Actualizar CustomMembership.ValidateUser()
5.
Web.config - Habilitar protecciones
<!-- Cambiar de: -->
<pages validateRequest="false" enableViewStateMac="false" viewStateEncryptionMode="Never" />

<!-- A: -->
<pages validateRequest="true" enableViewStateMac="true" viewStateEncryptionMode="Always" />
Esfuerzo: Bajo
Impacto: Puede romper páginas que usan HTML en TextBox
Testing: Validar todas las páginas con entrada de usuario

7.2 Prioridad Media 🟡 (Importante - 3-6 meses)#

ComponenteVersión ActualVersión RecomendadaBeneficioEsfuerzo
Crystal Reports13.0.4001CR for VS 2022Soporte modernoAlto
Newtonsoft.JsonDesconocida13.0.3Performance y seguridadBajo
AjaxControlToolkitDesconocida20.1.0Compatibilidad .NET 4.8Medio
Connection StringsHardcodedAzure Key Vault / EncryptedSeguridadMedio

7.3 Prioridad Baja 🟢 (Opcional - 6-12 meses)#

ComponenteVersión ActualVersión RecomendadaBeneficioEsfuerzo
Office Interop14.0 (2010)NPOI / EPPlusSin dependencia de OfficeAlto
iTextSharpAntiguaiText 7Licenciamiento modernoMedio
Typed DataSets.xsdEntity Framework 6ORM moderno, testingMuy Alto

7.4 Roadmap de Actualización Recomendado#

7.5 Estimación de Costos#

FaseDuraciónEsfuerzo (personas)Costo Estimado (USD)
Fase 1: Crítico4 meses2-3 desarrolladores90,000
Fase 2: Importante5 meses2 desarrolladores70,000
Fase 3: Mejoras4 meses2-3 desarrolladores60,000
Fase 4: Evaluación4 meses1-2 arquitectos50,000
TOTAL17 meses-270,000
Nota: Costos basados en desarrolladores mid-senior en México ($15-20/hora)

8. MÉTRICAS DEL PROYECTO#

8.1 Distribución por Tipo de Archivo#

8.2 Distribución por Módulo Funcional#

MóduloPáginas (.aspx)PorcentajeComplejidad
solicitudes5928%Muy Alta
agentes3416%Alta
catalogos3316%Media
comisiones2713%Muy Alta
consultas2210%Media
reportes105%Media
admin84%Media
general84%Baja
seguridad42%Alta
otros42%Baja
TOTAL209100%-

8.3 Complejidad Técnica#

Líneas de código estimadas:
CategoríaArchivosLOC EstimadasPromedio por Archivo
Code-Behind (.aspx.vb)412~165,000~400 LOC
Business Classes (.vb)52~26,000~500 LOC
JavaScript906~45,000~50 LOC
TOTAL1,370~236,000-
Complejidad Ciclomática: Alta (estimada >50 por archivo en módulos complejos)

8.4 Deuda Técnica#

Principales contribuyentes:
1.
Framework obsoleto (.NET 4.5)
2.
Vulnerabilidades de seguridad
3.
Librerías desactualizadas
4.
Código duplicado
5.
Falta de tests automatizados

9. DEUDA TÉCNICA IDENTIFICADA#

9.1 Issues Críticos 🔴#

.NET Framework 4.5 obsoleto (sin soporte desde 2016)
Impacto: Vulnerabilidades de seguridad sin parchear
Acción: Migrar a .NET Framework 4.8.1
Prioridad: INMEDIATA
Contraseñas en texto claro
Impacto: Exposición total de credenciales si BD es comprometida
Acción: Implementar bcrypt o PBKDF2
Prioridad: INMEDIATA
Configuraciones inseguras en Web.config
validateRequest="false" → XSS
enableViewStateMac="false" → Tampering
viewStateEncryptionMode="Never" → Exposición de datos
Acción: Habilitar protecciones
Prioridad: INMEDIATA
jQuery 1.9.1 con vulnerabilidades conocidas
CVE-2015-9251, CVE-2020-11022, CVE-2020-11023
Acción: Actualizar a 3.7.1
Prioridad: ALTA
Connection strings en código fuente
Credenciales expuestas en Web.config
Acción: Migrar a Azure Key Vault o encriptar
Prioridad: ALTA

9.2 Issues Altos 🟠#

ASP.NET Web Forms (tecnología legacy)
No portable a .NET Core/.NET 8
Limitado a Windows + IIS
Acción: Evaluar migración a ASP.NET Core (largo plazo)
Prioridad: MEDIA (planificar)
Visual Basic.NET
Lenguaje en decline, difícil reclutar desarrolladores
Acción: Considerar migración a C# (largo plazo)
Prioridad: BAJA (planificar)
log4net 1.2.10 (13 años desactualizado)
Acción: Actualizar a 2.0.17
Prioridad: ALTA
Crystal Reports 13.0.4001 (versión antigua)
Licenciamiento costoso
Acción: Evaluar alternativas (SSRS, Telerik, DevExpress)
Prioridad: MEDIA
Typed DataSets (tecnología legacy)
Difícil de testear
Acción: Migrar a Entity Framework 6 (largo plazo)
Prioridad: BAJA

9.3 Issues Medios 🟡#

416 páginas ASPX (monolito grande)
Alto acoplamiento
Difícil de modularizar
Acción: Refactorizar gradualmente
Prioridad: MEDIA
Código duplicado extenso
Lógica repetida en code-behind
Acción: Refactorizar a clases reutilizables
Prioridad: MEDIA
Ausencia de Unit Tests
Testing manual extenso
Regresiones frecuentes
Acción: Implementar tests gradualmente
Prioridad: MEDIA
JavaScript distribuido en 906 archivos
Librerías duplicadas
No hay bundling/minification
Acción: Implementar webpack o similar
Prioridad: BAJA
Session timeout de 1 año
Riesgo de seguridad
Acción: Reducir a 8-12 horas
Prioridad: MEDIA

9.4 Mejoras Recomendadas 🟢#

Implementar CI/CD
Azure DevOps Pipelines
Deployment automatizado
Beneficio: Reducir errores de deployment
Documentación técnica
Diagramas de arquitectura
Diccionario de datos
Guías de desarrollo
Beneficio: Onboarding más rápido
Monitoreo y logging
Application Insights o ELK Stack
Error tracking (Sentry)
Beneficio: Detección proactiva de errores
Implementar Content Security Policy (CSP)
Protección contra XSS
Beneficio: Capa adicional de seguridad
Rate limiting en login
Protección contra brute force
Beneficio: Prevenir ataques de contraseña

10. GLOSARIO TÉCNICO#

Términos de Dominio#

TérminoDescripción
AgenteVendedor de seguros individual
AseguradoPersona que contrata el seguro (cliente final)
DESDocumento Electrónico de Seguros (formato digital de póliza)
DevoluciónCancelación de solicitud o servicio que regresa a etapa anterior
IncrementoAumento de suma asegurada en póliza existente
InclusiónAgregado de beneficiarios o coberturas adicionales a póliza existente
LoteAgrupación lógica de solicitudes para envío a proveedor
PCEProveedor de Captura Externa (aseguradora que captura sus propias pólizas)
PlanTipo de producto de seguro (ej: Vida Universal, Temporal, GMM)
PólizaContrato de seguro emitido por el proveedor
PrimaMonto que paga el asegurado (mensual/anual)
Prima ExcedentePrima adicional sobre la base del plan
PromotoríaAgrupación de agentes bajo un líder (Promotor)
ProveedorAseguradora (ej: Metlife, AXA, GNP)
RetenedorEntidad que retiene parte de las comisiones (nivel superior a promotoría)
ServicioModificación a póliza existente (cambio de beneficiario, domicilio, etc.)
SIEMISistema de Emisión de Metlife (formato específico de documentos)
SolicitudPetición de nuevo seguro o modificación
SubretenedorSubnivel dentro de un retenedor
Suma AseguradaMonto que pagará la aseguradora en caso de siniestro
ValijaAgrupación física de documentos impresos para envío

Términos Técnicos#

TérminoDescripción
ASPXActive Server Pages Extended (Web Forms)
Code-BehindArchivo .aspx.vb con lógica de presentación
Crystal ReportsMotor de generación de reportes empresariales
FormsAuthenticationSistema de autenticación basado en cookies de ASP.NET
Master PagePlantilla de layout compartida en Web Forms
TableAdapterComponente de Typed DataSet que encapsula comandos SQL
Typed DataSetDataSet fuertemente tipado generado desde .xsd
ViewStateMecanismo de Web Forms para mantener estado entre postbacks

11. ARQUITECTURA DE BASE DE DATOS#

11.1 Conexión#

Servidor: sql.prod
Base de Datos: olympus_op_pr
Provider: System.Data.SqlClient
Autenticación: Integrated Security (Windows Authentication)

11.2 Tablas Principales (inferidas desde DataSets)#

Módulo de Solicitudes#

Solicitudes - Solicitudes de seguros
Polizas - Pólizas emitidas
Servicios - Servicios a pólizas existentes
Devoluciones - Devoluciones de solicitudes/servicios
Lotes - Lotes de solicitudes
Valigas - Valijas físicas

Módulo de Agentes#

Agentes - Información de agentes
Metas - Metas de producción
Premios - Premios y reconocimientos
Rankings - Rankings de producción

Módulo de Comisiones#

Comisiones - Comisiones calculadas
EsquemasComision - Esquemas de comisión configurables
Excepciones - Excepciones a esquemas
Bonos - Bonos (productividad, reclutamiento, etc.)

Catálogos#

Promotoria - Promotorías
Retenedor / Subretenedor - Retenedores
Oficina - Oficinas
Proveedor - Aseguradoras
Plan - Planes de seguros
Motivo - Motivos de devolución
TipoServicio - Tipos de servicio
Tarifa - Tarifas
Concepto - Conceptos de descuento

Seguridad#

Usuarios - Usuarios del sistema
Roles - Roles de usuarios
Privilegios - Privilegios granulares

12. FLUJOS DE NEGOCIO CRÍTICOS#

12.1 Flujo de Solicitud de Nuevo Negocio#

12.2 Flujo de Cálculo de Comisiones#


13. INTEGR ACIONES EXTERNAS#

13.1 Integraciones Identificadas#

1. Proveedores de Seguros (Aseguradoras)#

Formato DES (Documento Electrónico de Seguros):
Recepción de archivos DES de pólizas emitidas
Procesamiento mediante ProcesarDES.aspx
Conversión de solicitud a póliza
SIEMI (Metlife):
Sistema de Emisión de Metlife
Reportes en formato específico de Metlife
Archivo: relaciones/SIEMI_Metlife.rpt

2. Microsoft Office#

Excel:
Exportación de reportes a Excel
Microsoft.Office.Interop.Excel.dll
Clase Excel.vb para generación
Limitación: Requiere Office instalado en servidor

3. Crystal Reports#

88 reportes .rpt
Runtime de Crystal Reports 13.0.4001
Generación de PDFs

4. Base de Datos SQL Server#

Conexión a sql.prod
Stored Procedures para lógica de negocio
Transacciones

14. ESTRATEGIA DE TESTING#

14.1 Estado Actual#

❌ No se identificaron pruebas automatizadas en el proyecto
Riesgos:
Testing manual extenso
Alta probabilidad de regresiones
Dificultad para refactorizar con confianza

14.2 Recomendaciones#

Fase 1: Unit Tests (Business Layer)#

Prioridad: Alta
Herramienta: MSTest o NUnit
Clases a testear primero:
1.
Comisiones.vb - Cálculos críticos
2.
Solicitud.vb - Validaciones de negocio
3.
Poliza.vb - Lógica de conversión
4.
UserData.vb - Serialización/deserialización
Ejemplo:
<TestClass()>
Public Class ComisionesTests
    <TestMethod()>
    Public Sub CalcularComision_ConEsquemaBasico_RetornaMontoCorreto()
        ' Arrange
        Dim esquema As New EsquemaComision With {.Porcentaje = 10}
        Dim prima As Decimal = 1000

        ' Act
        Dim resultado = Comisiones.Calcular(esquema, prima)

        ' Assert
        Assert.AreEqual(100D, resultado)
    End Sub
End Class

Fase 2: Integration Tests (Data Layer)#

Prioridad: Media
Herramienta: MSTest con base de datos de prueba
Áreas a testear:
TableAdapters
Stored Procedures
Transacciones

Fase 3: UI Tests (Presentation)#

Prioridad: Baja
Herramienta: Selenium WebDriver
Páginas críticas a testear:
Login (Default.aspx)
CapturarSolicitud.aspx
PanelControl.aspx
CalcularComisiones.aspx

14.3 Cobertura Objetivo#

FaseCobertura ObjetivoPlazo
Fase 150% Business Layer3 meses
Fase 230% Data Layer6 meses
Fase 320% UI crítica9 meses

15. DEPLOYMENT Y DEVOPS#

15.1 Estado Actual#

Información limitada disponible, pero se infiere:
Servidor: Windows Server con IIS
Base de datos: SQL Server en sql.prod
Deployment: Manual (probablemente FTP o copia de archivos)
Versión: 3.0.12

15.2 Recomendaciones#

CI/CD Pipeline#

Herramienta recomendada: Azure DevOps Pipelines
Flujo propuesto:
Git Push → Build → Unit Tests → Deploy a Staging →
Smoke Tests → Aprobación Manual → Deploy a Producción
Configuración Azure DevOps Pipeline (azure-pipelines.yml):

Ambientes#

AmbientePropósitoURL Ejemplo
DevelopmentDesarrollo localhttp://localhost:XXXX
StagingTesting pre-producciónhttps://olympus-staging.ejemplo.com
ProductionProducciónhttps://olympus.ejemplo.com

Versionamiento#

Estrategia recomendada: Semantic Versioning (SemVer)
Formato: MAJOR.MINOR.PATCH
MAJOR: Cambios incompatibles
MINOR: Nuevas funcionalidades compatibles
PATCH: Bug fixes
Ejemplo: 3.0.12 → 3.1.0 (nueva funcionalidad) → 4.0.0 (migración .NET 4.8.1)

16. PUNTOS FUERTES DEL PROYECTO#

A pesar de la deuda técnica, el proyecto tiene fortalezas importantes:

✅ Sistema Funcional y Probado#

15+ años de operación continua sin interrupciones mayores
Cubre todas las necesidades del negocio de seguros
Usuarios satisfechos (inferido por longevidad del sistema)

✅ Arquitectura Clara#

Separación en 3 capas bien definida
Organización modular por funcionalidad
Nomenclatura consistente de archivos y carpetas

✅ Cobertura Funcional Completa#

416 páginas cubren todo el ciclo de vida del negocio
88 reportes Crystal Reports para todas las necesidades
Sistema de reporteador dinámico (queries guardados)
15 DataSets proporcionan acceso estructurado a datos

✅ Seguridad Implementada#

Sistema de autenticación y autorización basado en roles
Privilegios granulares por funcionalidad
HTTPS forzado mediante redirección
Aunque requiere mejoras, la estructura de seguridad existe

✅ Trazabilidad Completa#

Estados detallados de solicitudes/pólizas
Auditoría del flujo completo
Panel de control ejecutivo (PanelControl.aspx)

✅ Flexibilidad de Configuración#

33 catálogos configurables
Esquemas de comisión personalizables
Reporteador con queries SQL guardados
Excepciones configurables por agente/plan

17. RIESGOS DEL PROYECTO#

🔴 Riesgos Críticos#

1.
Framework sin soporte
Riesgo: Vulnerabilidades de seguridad sin parchear
Probabilidad: Alta
Impacto: Crítico
Mitigación: Actualizar a .NET 4.8.1 INMEDIATAMENTE
2.
Contraseñas en texto claro
Riesgo: Exposición total si BD es comprometida
Probabilidad: Media
Impacto: Crítico
Mitigación: Implementar bcrypt URGENTE
3.
Dependencia de un solo lenguaje/tecnología
Riesgo: Dificultad para encontrar desarrolladores VB.NET
Probabilidad: Alta
Impacto: Alto
Mitigación: Documentar y considerar migración a C# a largo plazo

🟠 Riesgos Altos#

1.
Tecnología legacy (Web Forms)
Riesgo: No puede migrar a .NET Core (cloud-native)
Probabilidad: Alta
Impacto: Alto
Mitigación: Evaluar migración a ASP.NET Core en 2-3 años
2.
Ausencia de tests automatizados
Riesgo: Regresiones en cada cambio
Probabilidad: Alta
Impacto: Medio
Mitigación: Implementar tests gradualmente
3.
Conocimiento concentrado
Riesgo: Dependencia de desarrolladores clave
Probabilidad: Media
Impacto: Alto
Mitigación: Documentación exhaustiva y pair programming

🟡 Riesgos Medios#

1.
Librerías desactualizadas
Riesgo: Vulnerabilidades conocidas
Probabilidad: Media
Impacto: Medio
Mitigación: Plan de actualización gradual
2.
Escalabilidad limitada
Riesgo: Dificultad para escalar horizontalmente
Probabilidad: Baja
Impacto: Medio
Mitigación: Optimización de BD y caching

18. CONCLUSIONES Y PRÓXIMOS PASOS#

Resumen Ejecutivo#

Olympus es un sistema robusto y completo que ha servido eficientemente durante 15+ años. Sin embargo, está construido sobre tecnología obsoleta y riesgosa que requiere atención URGENTE.

Decisión Estratégica Recomendada#

ACTUALIZACIÓN INCREMENTAL con evaluación de migración futura:
[2025 Q1-Q2] Estabilización Crítica
    ↓
[2025 Q3-Q4] Modernización Parcial
    ↓
[2026 Q1-Q2] Evaluación Migración .NET Core
    ↓
[2026-2027] Decisión: Mantener o Migrar

Acciones Inmediatas (Próximas 2 semanas)#

1.
✅ Auditoría de seguridad completa con OWASP ZAP
2.
✅ Backup completo de código y BD
3.
✅ Actualizar Web.config (habilitar protecciones)
4.
✅ Planificar migración a .NET 4.8.1
5.
✅ Establecer ambiente de staging

Acciones a 3 meses#

1.
✅ Migrar a .NET Framework 4.8.1
2.
✅ Actualizar jQuery, log4net
3.
✅ Implementar hashing de contraseñas
4.
✅ Testing extenso de regresión
5.
✅ Desplegar a producción

Acciones a 6-12 meses#

1.
✅ Refactorizar código duplicado
2.
✅ Implementar Unit Tests (50% cobertura)
3.
✅ Documentación técnica completa
4.
✅ Establecer CI/CD
5.
✅ Evaluar migración a ASP.NET Core

Métricas de Éxito#

MétricaBaseline ActualObjetivo 6 mesesObjetivo 12 meses
Framework Version.NET 4.5 ❌.NET 4.8.1 ✅.NET 4.8.1 ✅
Vulnerabilidades Críticas5+ ❌0 ✅0 ✅
Cobertura de Tests0% ❌30% ⚠️50% ✅
Librerías Actualizadas20% ❌80% ✅100% ✅
Deployment TimeManual ❌Automatizado ✅Automatizado ✅

NOTAS ADICIONALES#

Consideraciones de Licenciamiento#

Crystal Reports: Verificar licencias actuales y costo de actualización
Microsoft Office Interop: Considerar alternativas sin licencia (NPOI, EPPlus)
.NET Framework: Gratuito, incluido en Windows Server

Contacto y Soporte#

Para preguntas sobre esta documentación o el proyecto:
Repositorio Git: https://grupokc-sistemas.visualstudio.com/sistemas_kc/_git/Olympus_2024
Branch principal: main
Versión documentada: 3.0.12

Referencias#

.NET Framework Support Policy
ASP.NET Web Forms Documentation
OWASP Top 10
Migrating to ASP.NET Core

Documentación generada: 2025-12-13
Generada por: Claude AI (Sonnet 4.5)
Versión del documento: 1.0
Proyecto: Olympus v3.0.12
Empresa: Grupo KC Agente de Seguros, S.A.P.I. de C.V.

ANEXO A: Archivos Clave del Proyecto#

Rutas Absolutas de Archivos Principales#

📍 CONFIGURACIÓN
G:\Prod\Olympus\Web\Web.config
G:\Prod\Olympus\Web\Web.sitemap
G:\Prod\Olympus\Web\Global.asax
G:\Prod\Olympus\olympus.sln

📍 LOGIN Y HOME
G:\Prod\Olympus\Web\Default.aspx
G:\Prod\Olympus\Web\general\Home.aspx
G:\Prod\Olympus\Web\general\MasterPage.master

📍 CLASES DE NEGOCIO CRÍTICAS
G:\Prod\Olympus\Web\App_Code\UI\Business\UserData.vb
G:\Prod\Olympus\Web\App_Code\UI\Business\CustomMembership.vb
G:\Prod\Olympus\Web\App_Code\UI\Business\Solicitud.vb
G:\Prod\Olympus\Web\App_Code\UI\Business\Poliza.vb
G:\Prod\Olympus\Web\App_Code\UI\Business\Comisiones.vb

📍 DATASETS PRINCIPALES
G:\Prod\Olympus\Web\App_Code\Data\olympus.xsd
G:\Prod\Olympus\Web\App_Code\Data\Solicitudes.xsd
G:\Prod\Olympus\Web\App_Code\Data\Polizas.xsd
G:\Prod\Olympus\Web\App_Code\Data\Comisiones.xsd

📍 PÁGINAS CRÍTICAS
G:\Prod\Olympus\Web\solicitudes\CapturarSolicitud.aspx
G:\Prod\Olympus\Web\solicitudes\PanelControl.aspx
G:\Prod\Olympus\Web\comisiones\CalcularComisiones.aspx
G:\Prod\Olympus\Web\agentes\BuscarAgentes.aspx

ANEXO B: Comandos Útiles#

Git#

Build#

IIS#

# Listar sitios
Get-Website

# Reciclar AppPool
Restart-WebAppPool -Name "Olympus"

# Ver logs
Get-EventLog -LogName Application -Source "ASP.NET*" -Newest 50

FIN DEL DOCUMENTO
Modificado en 2025-12-13 12:21:50
Anterior
Pegasus
Siguiente
Andromeda
Built with