This project provides technical interviewers with a concise overview of core concepts in a CRUD-based C# ASP.NET Core RESTful Web API, built around a basic ticketing system and extended according to defined user stories. It demonstrates practical application of software engineering best practices.
Key features of the project:
- Dependency Injection: Implements Dependency Injection to promote loose coupling and improve testability.
- API Documentation: Utilizes Swagger to generate clear, concise documentation and improve the developer experience.
- Adherence to C# Best Practices: Follows industry-standard C# coding conventions to ensure readability, maintainability, and scalability.
- Clean Architecture Principles: The project is structured according to Clean Architecture to ensure separation of concerns and maintainable, scalable code.
- Error Handling: Implements a structured exception hierarchy to enhance fault tolerance and streamline error management.
- Extension Methods: Implements extension methods in C# to enhance existing types, promoting code flexibility and scalability.
- Unit Testing: Uses MS Unit Test and Moq, with flexibility to integrate other C# testing frameworks, to facilitate TDD and promote comprehensive test coverage.
- Azure Deployment: Follows Microsoft’s step-by-step guidance for deploying the project to Azure App Services.
If discussed during an interview, I will be available to explain any of these approaches in detail, discussing the rationale behind the design choices and their benefits in real-world application development.
- Development Environment: Visual Studio 2022 Community Edition version 17.12.3
- Framework: C# 12 with .NET 8 (Long-Term Support)
- Database: Uses InMemoryDatabase for portability and demonstration purposes, with the option to replace it with a real database engine
This document is divided into four sections:
-
Details: Project goals, model definition, and technical requirements.
-
User Stories: Elaboration of the project's expectations and functional requirements.
-
Running the Project Locally: Step-by-step guide on executing the project code.
-
Deploying to Azure App Service: Provides information how to deploy this project to Azure App Services.
Thank you.