October 15, 2026
Building an Enterprise Booking System with ASP.NET Core 10 and SQL Server
Managing reservations for institutional properties—such as recreational vacation centers, country houses, and seasonal apartments for university faculty—presents unique business constraints. High-demand holiday seasons create race conditions where multiple users attempt to reserve the same unit simultaneously, and identity management must cater to verified institutional members with low-friction authentication.
I engineered fondo-xyz-booking-system to handle this end-to-end for the Fondo de Docentes de la Universidad Nacional de Colombia (FODUN). Built with .NET 10, ASP.NET Core MVC, Entity Framework Core 10, and SQL Server 2022, the system enforces strict booking rules, automated date conflict resolution, and transactional email confirmations.
4-Tier Clean Architecture
Enterprise systems demand clean separation of concerns to allow easy maintenance, automated testing, and future API exposure without polluting domain models:
1. Concurrency Control and Double-Booking Prevention
The most critical requirement of any reservation platform is that no two members can ever successfully book the same facility for overlapping dates.
To guarantee database integrity under concurrent web requests, the business layer enforces strict overlapping validation before dispatching SQL transactions:
// FODUN.Business/Services/BookingService.cs snippet
public async Task<bool> IsDateRangeAvailableAsync(int propertyId, DateTime checkIn, DateTime checkOut)
{
return !await _context.Bookings
.Where(b => b.PropertyId == propertyId && b.Status != BookingStatus.Cancelled)
.AnyAsync(b => checkIn < b.CheckOutDate && checkOut > b.CheckInDate);
}
When coupled with SQL Server transaction isolation and database unique constraints on active booking intervals, race conditions are safely rejected, displaying clear user guidance instead of corrupting calendar availability.
2. Institutional Authentication with 4-Digit Security PINs
Unlike generic public SaaS platforms where users sign up with passwords and social logins, university faculty funds require identity verification matched against pre-approved member directories.
The application configures ASP.NET Core Identity to authenticate faculty members using their institutional employee ID combined with a secure 4-digit numeric PIN, hashed using PBKDF2:
- Minimizes login friction for senior faculty members.
- Protects accounts with brute-force lockout policies after 5 failed attempts.
- Enforces role-based authorization dividing regular faculty members from administrative managers who oversee maintenance schedules and audit logs.
3. Automated Transactional Receipts via MailKit
Upon reservation confirmation, members receive rich HTML booking vouchers including reservation codes, check-in instructions, pricing breakdowns, and cancellation policies.
Using MailKit and MimeKit over authenticated SMTP ensures reliable delivery, comprehensive DKIM compatibility, and structured error handling if institutional mail servers encounter temporary downtime.
Local Development with Docker
To make testing and onboarding instantaneous for engineering evaluators, the entire SQL Server 2022 database is containerized via Docker:
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=FondoXYZ@2025" \
-p 1433:1433 --name fondoxyz-sqlserver \
-d mcr.microsoft.com/mssql/server:2022-latest
Running dotnet ef database update automatically applies migrations and seeds test recreational properties, sample apartments, and administrative test accounts.
Conclusion
By applying domain-driven clean architecture to ASP.NET Core 10, fondo-xyz-booking-system delivers a resilient, high-performance platform capable of handling complex institutional workflows with bulletproof database integrity.