In this project, I developed a banking system with three distinct personas. The project involved several key technologies and architectural patterns to ensure efficiency and scalability.
- C#: The primary programming language used to build the system.
- SQL Server: The database system used to store and manage data.
- Swagger: Utilized for API documentation and testing.
I organized the project into separate layers to enhance maintainability and scalability:
- Core Data Layer: Handles all data-related operations and database interactions.
- Service Layer: Contains the business logic and services used by the application.
- Asynchronous Operations: Implemented asynchronous methods to improve performance and responsiveness.
- Dependency Injection: Used
AddDbContextto configure the database context andAddScopedto manage the lifetime of services. - Database Migrations: Connected to SQL Server and created migrations for every schema change, ensuring that the database schema evolves with the application.
- AddDbContext: Configured the database context to enable Entity Framework Core to interact with SQL Server.
- AddScoped: Registered services with a scoped lifetime to ensure they are created once per request.
- Swagger: Integrated Swagger for comprehensive API documentation, making it easier to test and debug the API endpoints.
By leveraging these technologies and best practices, I developed a robust and scalable banking system that efficiently manages operations across multiple personas. The use of asynchronous operations and structured project layers ensures the system is responsive and easy to maintain.