Basics of .NET Core:
What is .NET Core?
- Answer: .NET Core is an open-source, cross-platform framework for building modern, cloud-based, and high-performance applications. It supports multiple operating systems, including Windows, Linux, and macOS.
How does .NET Core differ from the traditional .NET Framework?
- Answer: .NET Core is cross-platform, modular, and open-source, while the traditional .NET Framework is primarily Windows-based and not open source. .NET Core is also a subset of .NET 5/6, the unified successor to both .NET Core and .NET Framework.
Explain the key advantages of .NET Core.
- Answer: Advantages include cross-platform support, performance improvements, modularity, and the ability to deploy applications in a self-contained manner.
What is Kestrel, and how does it relate to .NET Core?
- Answer: Kestrel is a cross-platform, open-source web server built for hosting .NET Core applications. It is the default web server for .NET Core applications.
How is .NET Core different from ASP.NET Core?
- Answer: .NET Core is the runtime and libraries, while ASP.NET Core is a framework for building web applications and services on top of .NET Core.
Dependency Injection in .NET Core:
What is Dependency Injection (DI), and why is it important in .NET Core?
- Answer: Dependency Injection is a design pattern that promotes loose coupling by injecting dependencies into classes rather than creating them within the class. It is essential in .NET Core for modularity and testability.
Explain the role of the IServiceCollection interface in .NET Core DI.
- Answer:
IServiceCollection
is used to define a contract for a collection of service descriptors. It is part of the .NET Core dependency injection system and is used to register and configure services.
- Answer:
How can you register services in .NET Core DI?
- Answer: Services are registered in the
ConfigureServices
method of theStartup
class usingIServiceCollection
methods likeAddTransient
,AddScoped
, andAddSingleton
.
- Answer: Services are registered in the
Middleware in .NET Core:
What is middleware in .NET Core?
- Answer: Middleware in .NET Core is software components that form the request processing pipeline. Each middleware component processes the request and can modify the response.
Explain the role of the
Use
method in .NET Core middleware.- Answer: The
Use
method is used to add middleware components to the pipeline. It specifies the delegate that represents the middleware's behavior.
- Answer: The
.NET Core MVC:
What is ASP.NET Core MVC, and how does it differ from ASP.NET MVC?
- Answer: ASP.NET Core MVC is a web application framework for building modern, cloud-based, and cross-platform applications. It is a redesign of ASP.NET MVC with improved performance and cross-platform support.
Explain the purpose of the
Startup
class in ASP.NET Core.- Answer: The
Startup
class is used to configure services and the application's request processing pipeline. It contains methods such asConfigureServices
andConfigure
.
- Answer: The
What is Razor Pages in ASP.NET Core?
- Answer: Razor Pages is a lightweight web framework in ASP.NET Core that makes page-focused scenarios more productive. It simplifies the coding model for pages and is suitable for scenarios with simpler requirements.
What is Tag Helper in ASP.NET Core?
- Answer: Tag Helpers in ASP.NET Core are a way to enable server-side code to participate in creating and rendering HTML elements in Razor views. They provide a more natural syntax for working with HTML.
.NET Core Logging:
What is logging, and how is it implemented in .NET Core?
- Answer: Logging is the process of recording events and messages during the execution of an application. In .NET Core, logging is achieved using the built-in
ILogger
interface and various logging providers.
- Answer: Logging is the process of recording events and messages during the execution of an application. In .NET Core, logging is achieved using the built-in
Explain the significance of logging levels in .NET Core.
- Answer: Logging levels, such as Information, Warning, and Error, allow developers to categorize log messages based on their importance. They help in filtering and identifying issues during development and troubleshooting.
.NET Core Configuration:
What is configuration in .NET Core, and how is it managed?
- Answer: Configuration in .NET Core refers to the settings and parameters used by an application. It is managed through the
IConfiguration
interface, which allows developers to access configuration values from various sources.
- Answer: Configuration in .NET Core refers to the settings and parameters used by an application. It is managed through the
How can you read configuration values from different sources in .NET Core?
- Answer: Configuration values can be read from sources like appsettings.json, environment variables, and command-line arguments using the
IConfiguration
interface and its extensions.
- Answer: Configuration values can be read from sources like appsettings.json, environment variables, and command-line arguments using the
.NET Core Globalization and Localization:
- How can you implement globalization and localization in .NET Core?
- Answer: Globalization and localization in .NET Core involve providing resources for different languages and cultures. It can be implemented using resource files, the
IStringLocalizer
interface, and the use of theRequestLocalization
middleware.
- Answer: Globalization and localization in .NET Core involve providing resources for different languages and cultures. It can be implemented using resource files, the
.NET Core Identity:
- What is .NET Core Identity, and how does it handle user authentication and authorization?
- Answer: .NET Core Identity is a membership system that adds login functionality to .NET Core applications. It provides APIs for user registration, login, and role-based authorization.
.NET Core and Docker:
- How can you containerize a .NET Core application using Docker?
- Answer: Containerizing a .NET Core application involves creating a Dockerfile, specifying the application, dependencies, and configuration. You then build a Docker image and run containers based on that image.
Unit Testing in .NET Core:
What is unit testing, and how is it implemented in .NET Core?
- Answer: Unit testing involves testing individual units or components of a software application in isolation. In .NET Core, unit testing is often done using frameworks like NUnit, xUnit, or MSTest.
Explain the concept of mocking in unit testing.
- Answer: Mocking involves creating objects that simulate the behavior of real objects. It is useful in unit testing to isolate the unit being tested and control its dependencies.
Web Services and APIs:
What is ASP.NET Core Web API, and how does it differ from MVC?
- Answer: ASP.NET Core Web API is a framework for building HTTP services that can be consumed by a variety of clients. It is designed specifically for building RESTful APIs, while MVC is more focused on building web applications.
How can you handle cross-origin requests (CORS) in ASP.NET Core Web API?
- Answer: CORS can be configured in ASP.NET Core Web API using the
EnableCors
attribute, allowing or denying cross-origin requests based on specified policies.
- Answer: CORS can be configured in ASP.NET Core Web API using the
Explain the difference between SOAP and RESTful services.
- Answer: SOAP is a protocol for exchanging structured information in web services, while REST is an architectural style that uses standard HTTP methods for communication. RESTful services are often simpler and more scalable.
- What is Swagger, and how is it used in ASP.NET Core Web API?
- Answer: Swagger is a tool for documenting and testing APIs. In ASP.NET Core Web API, Swagger can generate an interactive API documentation page, making it easier for developers to understand and test the API.
Entity Framework Core:
What is Entity Framework Core, and how does it relate to databases?
- Answer: Entity Framework Core is an Object-Relational Mapping (ORM) framework for .NET Core. It enables developers to work with databases using object-oriented techniques, mapping database entities to .NET objects.
Explain the Code First approach in Entity Framework Core.
- Answer: Code First is an approach in Entity Framework Core where the database is created based on the code (C# classes) rather than the other way around. Developers define classes, and EF Core generates the database schema.
What is the purpose of DbSet in Entity Framework Core?
- Answer:
DbSet
is a property in aDbContext
class that represents a collection of entities of a particular type. It provides methods for querying, adding, updating, and deleting entities.
- Answer:
Security in .NET Core:
How can you secure sensitive information in .NET Core applications?
- Answer: Sensitive information in .NET Core applications can be secured using techniques such as encryption, secure storage mechanisms, and protecting sensitive data in transit.
Explain the concept of Cross-Site Scripting (XSS) and how to prevent it in .NET Core.
- Answer: XSS is a security vulnerability that allows attackers to inject malicious scripts into web pages viewed by other users. In .NET Core, preventing XSS involves proper input validation, encoding, and using AntiXSS libraries.
.NET Core and SignalR:
What is SignalR, and how is it used in .NET Core?
- Answer: SignalR is a library for adding real-time functionality to applications. In .NET Core, it can be used to enable real-time communication between clients and the server.
Explain the use of hubs in SignalR.
- Answer: Hubs in SignalR are communication endpoints that allow clients to call methods on the server and vice versa.
.NET Core and GraphQL:
What is GraphQL, and how does it differ from RESTful APIs?
- Answer: GraphQL is a query language for APIs that allows clients to request only the data they need. It differs from RESTful APIs in that clients can specify the structure of the response.
How can you implement GraphQL in .NET Core?
- Answer: GraphQL can be implemented in .NET Core using libraries such as GraphQL.NET. You define a GraphQL schema and handle queries and mutations in the API.
.NET Core Middleware:
- Explain the concept of middleware in .NET Core.
- Answer: Middleware in .NET Core is a pipeline of components that handle requests and responses. Each middleware component processes the request and can modify the response.
.NET Core Background Services:
- What are background services in .NET Core, and how can you implement them?
- Answer: Background services in .NET Core are long-running tasks that run independently of the request processing pipeline. They can be implemented using the
IHostedService
interface.
- Answer: Background services in .NET Core are long-running tasks that run independently of the request processing pipeline. They can be implemented using the
.NET Core Health Checks:
- What are health checks in .NET Core, and why are they useful?
- Answer: Health checks in .NET Core provide a way to monitor the health of an application by checking the status of its components. They are useful for identifying and resolving issues proactively.
.NET Core and Docker:
- How can you use Docker Compose with .NET Core applications?
- Answer: Docker Compose is used to define and run multi-container Docker applications. For .NET Core applications, it allows you to define services, networks, and volumes in a
docker-compose.yml
file.
- Answer: Docker Compose is used to define and run multi-container Docker applications. For .NET Core applications, it allows you to define services, networks, and volumes in a
.NET Core Design Patterns:
Explain the Repository Pattern and its use in .NET Core.
- Answer: The Repository Pattern involves separating the logic that retrieves data from the underlying storage. It is commonly used in .NET Core to decouple data access code.
What is the role of the Unit of Work pattern in .NET Core?
- Answer: The Unit of Work pattern manages the transactional boundaries and ensures that a set of operations is treated as a single unit. It is often used in conjunction with the Repository Pattern.
.NET Core Hosting:
- Explain the hosting models in .NET Core.
- Answer: .NET Core supports two hosting models: In-process hosting and Out-of-process hosting. In-process hosting runs the app in the same process as the IIS worker process, while Out-of-process hosting runs the app in a separate process.
.NET Core and Authentication:
- How can you implement authentication in .NET Core?
- Answer: Authentication in .NET Core can be implemented using ASP.NET Core Identity, external providers (OAuth, OpenID Connect), or custom authentication middleware.
.NET Core and Authorization:
- What is role-based authorization in .NET Core, and how is it implemented?
- Answer: Role-based authorization in .NET Core allows you to restrict access to certain parts of an application based on the roles assigned to a user. It is implemented using attributes like
[Authorize(Roles = "Admin")]
.
- Answer: Role-based authorization in .NET Core allows you to restrict access to certain parts of an application based on the roles assigned to a user. It is implemented using attributes like
.NET Core and Configuration:
- How does configuration work in .NET Core, and what are its sources?
- Answer: Configuration in .NET Core is based on the key-value pair model. Configuration values can be sourced from various providers, including JSON files, environment variables, and command-line arguments.
.NET Core and Logging:
- Explain the logging levels in .NET Core and their significance.
- Answer: Logging levels, such as Information, Warning, and Error, allow developers to categorize log messages based on their importance. They help in filtering and identifying issues during development and troubleshooting.
.NET Core and Deployment:
- What are the different deployment strategies for .NET Core applications?
- Answer: .NET Core applications can be deployed using strategies like self-contained deployments, Docker containers, and Azure App Service deployments.
.NET Core and Entity Framework Core:
- How can you optimize performance when using Entity Framework Core in a .NET Core application?
- Answer: Performance optimization techniques include using proper indexing, eager loading, using raw SQL for complex queries, and monitoring and optimizing database queries.
.NET Core and Testing:
- What are the common testing frameworks used in .NET Core, and how do they differ?
- Answer: Common testing frameworks include xUnit, NUnit, and MSTest. They differ in terms of features, syntax, and extensibility. Choose a framework based on project requirements and team preferences.