Estructura del proyecto:
B. Crear Clases en el Proyecto BackEnd
Para un aeropuerto, podríamos tener clases como Aeropuerto, Vuelo,
Pasajero, Embarque, Piloto, etc. Aquí un ejemplo de clases básicas:
csharp
// Clase Base
public abstract class Persona
public int Id { get; set; }
public string Nombre { get; set; }
public string Apellido { get; set; }
public string Nacionalidad { get; set; }
public DateTime FechaNacimiento { get; set; }
public string DocumentoIdentidad { get; set; }
public abstract void MostrarInformacion();
// Clase Derivada
public class Pasajero : Persona
public string NumeroTicket { get; set; }
public string Clase { get; set; }
public string Destino { get; set; }
public string Asiento { get; set; }
public override void MostrarInformacion()
{
[Link]($"Pasajero: {Nombre} {Apellido}, Ticket:
{NumeroTicket}, Destino: {Destino}");
// Otra Clase Derivada
public class Piloto : Persona
public string NumeroLicencia { get; set; }
public int AniosExperiencia { get; set; }
public string Aerolinea { get; set; }
public override void MostrarInformacion()
[Link]($"Piloto: {Nombre} {Apellido}, Licencia:
{NumeroLicencia}, Aerolinea: {Aerolinea}");
3. Guardar Clases en Archivo JSON
C. Serializar Clases a JSON
Utiliza [Link] para serializar y deserializar objetos:
csharp
using [Link];
// Serializar
public void GuardarPersona(Persona persona)
var json = [Link](persona);
[Link]($"{[Link]}.json", json);
// Deserializar
public Persona CargarPersona(int id)
var json = [Link]($"{id}.json");
return [Link]<Persona>(json);
4. Implementación de la GUI
D. Diseño de la GUI
Crea formularios en el proyecto FrontEnd con buenos diseños, íconos
en botones y menús. Por ejemplo, un formulario para gestionar
pasajeros:
Añade un Form para gestionar pasajeros.
Añade controles como TextBox, Button, DataGridView y MenuStrip.
Utiliza íconos en los botones para mejorar la experiencia del usuario.
csharp
// Ejemplo de manejo de eventos en el FrontEnd
private void btnGuardar_Click(object sender, EventArgs e)
var pasajero = new Pasajero
Id = [Link]([Link]),
Nombre = [Link],
Apellido = [Link],
Nacionalidad = [Link],
FechaNacimiento = [Link]([Link]),
DocumentoIdentidad = [Link],
NumeroTicket = [Link],
Clase = [Link],
Destino = [Link],
Asiento = [Link]
};
// Llamar método del BackEnd para guardar pasajero
[Link](pasajero);
[Link]("Pasajero guardado exitosamente.");
5. Validaciones y Métodos
E. Validaciones
Añade validaciones a las entradas de datos:
csharp
public class Validaciones
public static bool ValidarPersona(Persona persona)
if ([Link]([Link]))
throw new ArgumentException("El nombre es obligatorio.");
if ([Link]([Link]))
throw new ArgumentException("El apellido es obligatorio.");
// Otras validaciones
return true;
}
}
6. Integración y Ejecución
F. Integrar BackEnd con FrontEnd
Asegúrate de que el FrontEnd instancie y utilice las clases del
BackEnd:
csharp
private Backend backend = new Backend();
SEGUNDA OPCION DE ESTRUCTURA: 2. Clases del Backend
Vamos a definir algunas clases básicas:
Clase Aeropuerto
csharp
public class Aeropuerto
public string Nombre { get; set; }
public string Ubicacion { get; set; }
public int Capacidad { get; set; }
public List<Vuelo> Vuelos { get; set; }
public string CodigoIATA { get; set; }
public string Pais { get; set; }
public List<Pasajero> Pasajeros { get; set; }
public Aeropuerto()
Vuelos = new List<Vuelo>();
Pasajeros = new List<Pasajero>();
Clase Vuelo
csharp
public class Vuelo
public string NumeroVuelo { get; set; }
public string Aerolinea { get; set; }
public string Origen { get; set; }
public string Destino { get; set; }
public DateTime HoraSalida { get; set; }
public DateTime HoraLlegada { get; set; }
public List<Pasajero> Pasajeros { get; set; }
public Vuelo()
{
Pasajeros = new List<Pasajero>();
Clase Pasajero
csharp
public class Pasajero
public string Nombre { get; set; }
public string DocumentoIdentidad { get; set; }
public string Telefono { get; set; }
public string Email { get; set; }
public DateTime FechaNacimiento { get; set; }
// Método para validar el email
public bool EsEmailValido()
return [Link]("@");
3. Archivo JSON
Para almacenar la información de las clases, puedes
usar [Link] para serializar y deserializar a JSON. Aquí tienes
un ejemplo básico de cómo guardar y cargar datos:
csharp
using [Link];
using [Link];
public class JsonHandler
{
private const string filePath = "[Link]";
public void GuardarDatos(Aeropuerto aeropuerto)
var jsonData = [Link](aeropuerto,
[Link]);
[Link](filePath, jsonData);
public Aeropuerto CargarDatos()
if ()
return new Aeropuerto();
var jsonData = [Link](filePath);
return [Link]<Aeropuerto>(jsonData);
4. Interfaz de Usuario (GUI)
Usando WinForms o WPF para construir la GUI. Aquí hay un ejemplo
simple de cómo podrías crear un formulario para agregar un nuevo
vuelo.
csharp
public partial class Form1 : Form
private Aeropuerto aeropuerto;
private JsonHandler jsonHandler;
public Form1()
{
InitializeComponent();
jsonHandler = new JsonHandler();
aeropuerto = [Link]();
private void btnAgregarVuelo_Click(object sender, EventArgs e)
Vuelo vuelo = new Vuelo
NumeroVuelo = [Link],
Aerolinea = [Link],
Origen = [Link],
Destino = [Link],
HoraSalida = [Link],
HoraLlegada = [Link]
};
[Link](vuelo);
[Link](aeropuerto);
[Link]("Vuelo agregado correctamente.");
5. Buen Diseño de la GUI
Para asegurar una buena experiencia de usuario:
Diseño de la interfaz: Usa un diseño claro y coherente, con
botones representativos y alineación adecuada.
Uso de íconos: Estiliza los botones y utiliza íconos fácilmente
identificables.
Menús: Agrega un menú principal para navegar entre las
funcionalidades del sistema (ej. Agregar Vuelo, Ver Vuelos, etc.).
Validaciones: Implementa validaciones en los campos del
formulario antes de procesar la entrada del usuario (puedes
usar mensajes de error para notificar al usuario).
6. Validaciones
Asegúrate de aplicar validaciones en la entrada de datos. Por
ejemplo, verifica que todos los campos sean completados antes de
crear un nuevo vuelo.
csharp
if ([Link]([Link]) || !
[Link]([Link]))
[Link]("Por favor, ingrese un número de vuelo válido.");
return;
Ejemplo de [Link]:
csharp
public abstract class Persona
public int Id { get; set; }
public string Nombre { get; set; }
public string Apellido { get; set; }
public string Nacionalidad { get; set; }
public DateTime FechaNacimiento { get; set; }
public string DocumentoIdentidad { get; set; }
public abstract void MostrarInformacion();
Ejemplo de [Link]:
csharp
public class Pasajero : Persona
public string NumeroTicket { get; set; }
public string Clase { get; set; }
public string Destino { get; set; }
public string Asiento { get; set; }
public override void MostrarInformacion()
[Link]($"Pasajero: {Nombre} {Apellido}, Ticket:
{NumeroTicket}, Destino: {Destino}");
C. Crear el Proyecto FrontEnd
1. Agregar un proyecto de aplicación de Windows Forms:
o Haz clic derecho en la solución en el Explorador de
Soluciones.
o Selecciona Agregar > Nuevo Proyecto.
o Busca Windows Forms App (.NET) y selecciónalo.
o Dale un nombre al proyecto, por ejemplo, Frontend, y haz
clic en Crear.
2. Configurar el proyecto FrontEnd para usar el proyecto
BackEnd:
o Haz clic derecho en el proyecto Frontend.
o Selecciona Agregar > Referencia de Proyecto.
o Marca la casilla de Backend y haz clic en Aceptar.
2. Diseñar la Interfaz de Usuario (GUI)
D. Crear el Formulario Principal
1. Agregar un formulario para gestionar pasajeros:
o En el proyecto Frontend, abre [Link] o el formulario
principal.
o Añade controles como TextBox, Button, DataGridView y
MenuStrip desde la Caja de Herramientas.
o Coloca y configura los controles para mejorar la
experiencia del usuario (añade íconos, alineación, etc.).
E. Código del Formulario
Ejemplo de código para [Link]:
csharp
using System;
using [Link];
using Backend; // Referencia al proyecto BackEnd
public partial class Form1 : Form
private GestorDeArchivos gestor = new GestorDeArchivos();
public Form1()
InitializeComponent();
}
private void btnGuardar_Click(object sender, EventArgs e)
try
var pasajero = new Pasajero
Id = [Link]([Link]),
Nombre = [Link],
Apellido = [Link],
Nacionalidad = [Link],
FechaNacimiento =
[Link]([Link]),
DocumentoIdentidad = [Link],
NumeroTicket = [Link],
Clase = [Link],
Destino = [Link],
Asiento = [Link]
};
[Link](pasajero);
[Link](pasajero);
[Link]("Pasajero guardado exitosamente.");
catch (Exception ex)
[Link]($"Error: {[Link]}");
}
3. Serializar Clases a JSON en el Proyecto BackEnd
F. Implementar Métodos de Serialización
Ejemplo de [Link]:
csharp
using [Link];
using [Link];
public class GestorDeArchivos
public void GuardarPersona(Persona persona)
var json = [Link](persona);
[Link]($"{[Link]}.json", json);
public Persona CargarPersona(string fileName)
var json = [Link]($"{fileName}.json");
return [Link]<Persona>(json);
4. Validaciones y Métodos
G. Implementar Validaciones
Ejemplo de [Link]:
csharp
public class Validaciones
public static bool ValidarPersona(Persona persona)
{
if ([Link]([Link]))
throw new ArgumentException("El nombre es obligatorio.");
if ([Link]([Link]))
throw new ArgumentException("El apellido es obligatorio.");
if ([Link] > [Link])
throw new ArgumentException("La fecha de nacimiento no
puede ser en el futuro.");
// Otras validaciones
return true;