"In my current project, we use several Azure services:
- Azure App Service – to host ASP.NET Core Web APIs.
- Azure Functions – for event-driven and background processing.
- Azure Blob Storage – to store files, documents, and images.
- Azure SQL Database – as the primary relational database.
- Azure Key Vault – to securely store secrets, connection strings, and certificates.
- Azure Service Bus – for asynchronous communication between microservices.
- Azure DevOps – for source control, CI/CD pipelines, work item tracking, and releases.
- Application Insights – to monitor application performance, logs, exceptions, and telemetry.
- Azure Monitor – for health monitoring and alerts."
If they ask which services you worked on directly, you can say:
"I have hands-on experience with Azure App Service, Azure Functions, Azure DevOps, Azure Blob Storage, Key Vault, and Application Insights. I also work with Azure SQL Database and integrate with Azure Service Bus in our microservices environment."
".NET Framework is the older Microsoft framework that primarily runs on Windows and is mainly used for maintaining legacy applications like ASP.NET Web Forms, WCF, and Windows desktop applications.
.NET Core (now unified as .NET 5/6/7/8+) is a modern, cross-platform framework that runs on Windows, Linux, and macOS. It's designed for high performance, cloud-native applications, microservices, REST APIs, and containerized deployments."
Key advantages of .NET Core over .NET Framework
- Cross-platform – Runs on Windows, Linux, and macOS.
- Better performance – Faster runtime and improved memory management.
- Built-in Dependency Injection – No need for third-party DI frameworks.
- High scalability – Ideal for cloud and microservices.
-
Cross-platform CLI – Easy to build and deploy using the
dotnetCLI. - Side-by-side versioning – Multiple .NET versions can coexist on the same machine.
- Container support – Excellent support for Docker and Kubernetes.
- Lightweight and modular – Only required packages are included.
- Active development – Microsoft continues to enhance modern .NET, while .NET Framework receives mainly maintenance updates.
Explain each middleware
- Exception Handling – Catches unhandled exceptions.
- HTTPS Redirection – Redirects HTTP requests to HTTPS.
- Static Files – Serves CSS, JavaScript, and images.
- Routing – Matches the incoming URL to an endpoint.
- Authentication – Verifies the user's identity (e.g., JWT).
- Authorization – Checks whether the authenticated user has permission.
- MapControllers – Invokes the appropriate controller action.
| Code First | Database First |
|---|---|
| Start with C# classes | Start with an existing database |
| Database created from code | Code generated from the database |
| Uses EF Migrations | Regenerate models when the database changes |
| Best for new projects | Best for legacy/existing databases |
How do you improve entity framework performance? Entity framework performance.
In my current project, we mainly improve EF Core performance by using AsNoTracking() for read-only operations, selecting only required fields, adding proper indexes, using async queries, avoiding the N+1 problem, and implementing pagination for large datasets.
How do you take care of web API?
In my current project, we secure our APIs using JWT authentication, validate all incoming requests, use global exception handling and logging, optimize database queries with EF Core, document APIs using Swagger, deploy over HTTPS, and monitor performance with Application Insights. These practices help us build secure, reliable, and scalable Web APIs
What is Domain-Driven Design (DDD)?
Domain-Driven Design (DDD) is a software design approach where the application is modeled around the business domain rather than the database or technical implementation. The main goal is to keep business rules and domain logic at the center of the application
Core concepts of DDD
- Domain – The business problem being solved (e.g., Banking, E-commerce).
- Entity – An object with a unique identity (e.g., Customer, Order).
- Value Object – An object without identity, defined by its values (e.g., Address, Money).
- Aggregate – A group of related entities treated as a single unit.
- Aggregate Root – The main entity through which the aggregate is accessed (e.g., Order).
- Repository – Handles data access for aggregates.
- Domain Service – Contains business logic that doesn't belong to a single entity.
Example
"In an e-commerce application, an
Orderis the Aggregate Root. It contains multipleOrderItems. Instead of allowing direct changes toOrderItems, all updates go through theOrderentity. This ensures business rules, such as validating stock or calculating the total amount, are always enforced."
Benefits
- Keeps business logic separate from infrastructure.
- Easier to maintain and test.
- Better suited for large, complex business applications.
- Works well with microservices and clean architecture.