# Plataforma de Desarrolladores Agua de Hermosillo Aplicación ASP.NET WebForms para administrar desarrolladores, clientes, fraccionamientos, trámites, pagos y su futura integración contable. ## Tecnología - ASP.NET WebForms con C#. - .NET Framework 4.8.1. - SQL Server y procedimientos almacenados. - Metronic como base visual. - AjaxControlToolkit y `UpdatePanel` para actualizaciones parciales. - Visual Studio 2022. ## Estructura principal ```text SIG.Web/ AppCode/ Contracts/ Models/ Repositories/ Services/ Security/ Utilities/ Pages/ Security/ Tramites/ Polizas/ Metronic/ Scripts/ Styles/ Site.master Login.aspx Inicio.aspx Web.config ``` Las páginas y la página maestra consumen contratos y servicios. El acceso a SQL se mantiene en repositorios y ejecutores de base de datos. ```text ASPX / Site.master -> Contracts -> Services -> Repositories / SQL helpers -> SQL Server ``` ## Requisitos 1. Windows con IIS Express. 2. Visual Studio 2022 con la carga de trabajo **Desarrollo de ASP.NET y web**. 3. .NET Framework 4.8.1 Developer Pack. 4. SQL Server accesible desde el equipo local. ## Configuración local 1. Abrir `SIG.WebForms.Starter.sln` en Visual Studio 2022. 2. Restaurar los paquetes NuGet. 3. Revisar la cadena `Conexion` de `SIG.Web/Web.config`. 4. Crear o actualizar la base de datos con `Esquema_BD_AguaHillo_Idempotente.sql`. 5. Para instalar solamente usuarios, clientes y verificación de correo, utilizar `Usuarios_Clientes_Registro.sql`. 6. Compilar la solución en `Debug` y ejecutarla con IIS Express. La ruta raíz utiliza `Inicio.aspx` como documento predeterminado. Los usuarios sin sesión son enviados a `Login.aspx`, conservando la ruta solicitada en `retornoURL`. ## Correo de verificación El autorregistro requiere configurar estos valores en `SIG.Web/Web.config`: ```xml ``` No deben confirmarse credenciales reales en el repositorio. Para cada ambiente, coloque los valores mediante una transformación segura o durante el despliegue. ## Módulo de usuarios - `Pages/Security/Usuarios.aspx`: administración autenticada de usuarios y clientes relacionados. - `Pages/Security/RegistroCliente.aspx`: autorregistro público en dos pasos. - `Pages/Security/RegistroPendiente.aspx`: aviso para revisar el correo. - `Pages/Security/VerificarCorreo.aspx`: validación de la liga y activación de la cuenta. El registro conserva temporalmente los datos de ambos pasos en `ViewState` cifrado. Usuario, cliente, relación y token se guardan juntos únicamente después de concluir las validaciones. ## Reglas de base de datos - Las operaciones desde C# utilizan procedimientos almacenados. - Los procedimientos incluyen `TRY/CATCH`, `@ErrorMostrar`, `@ErrorTipo` y `@Return`. - Las entradas se envían como parámetros; no se concatena información del usuario en SQL. - El borrado funcional es lógico mediante `Borrado` y `FechaBorrado`. - Los errores registran el procedimiento y parámetros de diagnóstico, ocultando valores sensibles. ## Archivos que no se versionan El `.gitignore` excluye compilados, paquetes restaurables, configuración personal de Visual Studio, logs, bases locales, temporales, publicaciones y carpetas de trabajo local. Las carpetas visuales `Metronic`, `Styles` y `Scripts` sí forman parte del proyecto.