Top 50
Top 50
26 Feb 2025
Question
76.6K Views
53 min read
Are you a .NET enthusiast? Do you want to take a step further in the .NET developer roadmap? If yes,
you have come to the right place. In this .NET Core tutorial on .NET Core Interview Questions, we have
tried our best to provide you with some of the top .NET Core Interview Questions and Answers. After
going through these questions, you can check your knowledge through our .NET Core Certification
Training.
.NET Core is a cross-platform, open-source framework that is the successor of .NET for building
various types of applications, including web, desktop, and console applications.
It provides runtime, libraries, and development tools for building and running .NET applications
on different platforms.
.NET Core supports multiple programming languages, including C#, F#, and Visual Basic.
Modular Architecture: .NET Core follows a modular architecture, where features are organized
into separate packages (NuGet packages).
High Performance: .NET Core is optimized for performance, with features such as just-in-time
(JIT) compilation, runtime optimizations, and support for asynchronous programming patterns.
Side-by-Side Versioning: .NET Core supports side-by-side versioning, allowing multiple versions
of the runtime and framework to be installed on the same machine.
Cloud-Native Support: .NET Core is well-suited for cloud-native development, with support for
microservices architecture, containerization (e.g., Docker), and cloud platforms such as Microsoft
Azure.
Modern Language Features: .NET Core supports modern language features and programming
paradigms, including asynchronous programming with async/await, functional programming
concepts, language enhancements (e.g., pattern matching, nullable reference types in C# 8.0),
and more.
Tooling and Ecosystem: .NET Core comes with a rich set of development tools, including the
cross-platform .NET CLI (Command-Line Interface), Visual Studio IDE (Integrated Development
Environment), Visual Studio Code, and various third-party tools and extensions.
Looking for a 50% Salary Hike? Enroll in Our ASP.Net Core Certification Training and Make Your Job Change
Count!
Deployment The updated version of the .NET Core gets initiated When the updated version is
Model on one machine at a time, which means it gets released, it is deployed only on the
updated in new folders/directories in the existing Internet Information Server at first.
application without affecting it. Thus, we can say
that .NET Core has a very good flexible deployment
model.
4. What is CoreCLR?
The CLR is the execution/ run-time engine in .NET Core, that is, it is responsible for the execution and
running of programs in different programming languages. It consists of the following major components:
Garbage collector
JIT compiler
Low-level classes
The Common Language Runtime (CLR) performs the garbage collection and code compilation functions
etc.
5. What is Kestrel?
Kestrel supports both HTTP/1.x and HTTP/2 protocols, providing flexibility and performance
improvements for modern web applications.
1. Common Language Runtime (CLR): It is the runtime environment that manages the execution
of .NET Core applications. It provides features such as memory management, exception
handling, garbage collection, and type safety.
2. Base Class Library (BCL): It is a collection of reusable classes, types, and APIs that provide
fundamental functionality for building .NET Core applications.
3. CoreFX: CoreFX is a foundational set of libraries that complement the Base Class Library and
provide additional functionality for building .NET Core applications.
4. ASP.NET Core: It is a cross-platform web framework for building modern web applications and
services. It includes features for building web APIs, MVC web applications, real-time web
applications using SignalR, and more.
5. Entity Framework Core: It is an object-relational mapping (ORM) framework that enables
developers to work with databases using .NET objects. It provides a powerful set of APIs for
querying, updating, and managing database data using .NET Core applications.
6. CLI (Command-Line Interface): The .NET Core CLI provides a command-line interface for
creating, building, running, and managing .NET Core applications.
7. .NET Standard: .NET Standard is a formal specification that defines a set of APIs that must be
available on all .NET implementations, including .NET Core, .NET Framework, and Xamarin.
8. Tooling: .NET Core includes a set of development tools, including Visual Studio, Visual Studio
Code, and various command-line tools, that help developers build, debug, and deploy .NET Core
applications efficiently.
NuGet packages are parts of the package management system for .NET which are essential to carry on
any development on the platform. These packages contain libraries and other descriptive metadata and
are managed by NuGet.
In other words, a NuGet package is a single zip file with a .nupkg extension. The file contains compiled
codes, files related to the code, and descriptions. Developers can create and share these packages by
publishing them to either private or public hosts. They can also use the packages available and add to
projects on an as-needed basis.
Yes, garbage collection (GC) is an ongoing process in managed memory environments like those provided
by .NET. It occurs automatically in the background to reclaim memory occupied by objects no longer
used by the application, thus freeing up memory for future allocations.
1. During memory allocation: When an application requests memory allocation and the system
detects insufficient memory, it may trigger a garbage collection cycle to free up memory before
allocating more.
2. When a certain threshold is reached: The garbage collector monitors memory usage and
triggers a collection when certain thresholds, such as generation sizes or memory pressure, are
met or exceeded.
3. Explicitly: Developers can request garbage collection explicitly by calling GC.Collect() method.
However, this is typically not recommended in most scenarios because the garbage collector is
usually efficient at managing memory automatically.
4. During idle periods or low system activity: The garbage collector may take advantage of idle
periods or low system activity to perform more intensive garbage collection cycles without
impacting application performance.
A part of .NET framework which is specially It is also part of .NET family frameworks, but this
Definition optimized for designing modern apps and framework is optimized for iOS, macOS, Android,
supporting developer workflows and Windows devices by the Xamarin platform
UWP (Universal Windows Platform), Xamarin iOS, Xamarin Android, Xamarin Forms,
App Models
ASP.NET Core Xamarin Mac
In .NET Core, service lifetimes define how long instances of services managed by the built-in dependency
injection container (DI container) should live within the application. The choice of service lifetime affects
how instances are created, reused, and disposed of by the DI container.
To specify the service lifetime when registering services with the DI container in .NET Core, you use the
appropriate extension methods:
services.AddTransient<imytransientservice, mytransientservice="">();
services.AddScoped<imyscopedservice, myscopedservice="">();
services.AddSingleton<imysingletonservice, mysingletonservice="">();
11. What is meant by Razor Pages?
Razor Pages is a comparatively newer and more simplified web app development/ programming model.
The Razor Pages follow a file-based routing approach thus simplifying the "Model-View-Controller"
architectural model of ASP.NET. The code and the HTML are both in a single file which eliminates the
need for separate view models, controllers, action methods, etc.
Example
Suppose you have a Razor Page named Index.cshtml located in the Pages directory of your ASP.NET Core
project. This page will display a greeting message to the user.
@page
@model IndexModel
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<p>@Model.GreetingMessage</p>
</body>
</html>
using Microsoft.AspNetCore.Mvc.RazorPages;
The Index.cshtml file represents the Razor Page itself. It contains HTML markup along with Razor
syntax, such as @page and @model, to define the page and its associated model.
The Index.cshtml.cs file is the code-behind file for the Razor Page. It contains the C# code that
defines the behavior and logic for the page. In this case, it's a PageModel class with a property
GreetingMessage and a method OnGet() that sets the greeting message.
When you want to add migrations without making any changes in the model it might lead to the creation
of code files with empty classes. These can be customized to perform operations not related to the core
Entity Framework (EF) model.
A middleware is a component of an application pipeline that handles requests and responses. That is,
the middleware component chooses whether or not to pass an incoming request to the next component
of the pipeline. It is also responsible for giving responses or processing the request before and after it
passes the pipeline.
The below diagram shows a middleware request pipeline consisting of many delegates called one after
another. Where black arrows mark the direction of execution. Each delegate in the diagram performs
some operations before or after the next delegate.
Developers can use multiple programming languages including C++, C#, F#, Visual Basic, etc to work in
the framework and develop .NET Core applications. The Microsoft Intermediate Language (MSIL) and
Common Language Infrastructure (CLI) make it possible to transform any programming language into
CPU-independent instructions.
Yes, ASP.NET Core works with both the .NET framework and the .NET Core framework and is managed by
Microsoft.
16. Explain the concept of dependency injection in .NET Core. How does it differ from other dependency
injection frameworks you have used?
Dependency injection (DI) in .NET Core is a technique for achieving Inversion of Control (IoC) between
classes and their dependencies. It promotes loose coupling, testability, and maintainability by allowing
the runtime to provide required dependencies instead of hardcoding them within classes.
.NET Core’s built-in DI container differs from other frameworks like Autofac or Ninject in its simplicity and
lightweight nature. While it provides basic features such as constructor, property, and method injection,
it lacks advanced capabilities like interception or auto-registration. However, it can be easily replaced
with third-party containers if needed.
In .NET Core, services are registered in the ConfigureServices method of the Startup class using
IServiceCollection extension methods like AddTransient, AddScoped, and AddSingleton. These methods
define the lifetime of the service instances.
services.AddTransient();
_myService = myService;
.NET Core library is used if there is a requirement to increase the surface area of the .NET API which your
library will access, and permit only applications of .NET Core to be compatible with your library if you are
okay with it.
.NET Standard library will be used in case you need to increase the count of applications that are
compatible with your library and reduce the surface area(a piece of code that a user can interact with) of
the .NET API which your library can access if you are okay with it.
Transfer-encoding is used for transferring the payload body(information part of the data sent in the HTTP
message body) to the user. It is a hop-by-hop header, that is applied not to a resource itself, but to a
message between two nodes. Each multi-node connection segment can make use of various Transfer-
encoding values.
Most modern web servers and clients support Transfer-Encoding and can handle chunked transfer
encoding transparently. It's defined in the HTTP/1.1 specification (RFC 7230) and is widely used in
practice.
20. What is the use of generating SQL scripts in the .NET core?
1. Database Schema Management: Generating SQL scripts allows developers to manage database
schema changes efficiently. By using tools like Entity Framework Core Migrations or other ORM
(Object-Relational Mapping) frameworks, developers can generate SQL scripts to create, update,
or rollback database schema changes based on changes made to the application's data model.
2. Database Deployment: SQL scripts can be used to deploy database schema changes across
different environments, such as development, testing, staging, and production.
3. Database Versioning and Source Control: Generating SQL scripts allows developers to version
control database schema changes along with application code.
4. Database Backup and Recovery: By generating SQL scripts that include backup commands or
data migration statements, developers can automate backup and recovery processes, ensuring
data integrity and disaster recovery preparedness.
5. Database Migration and Integration: By generating SQL scripts that contain data migration logic
or integration routines, developers can automate data transfer tasks and ensure data consistency
across different systems.
6. Database Maintenance and Optimization: SQL scripts can be used to perform database
maintenance tasks, such as indexing, data cleaning, or performance tuning.
1. Prepare the Application for Publishing: This includes building the application and verifying that
it runs correctly on your development machine.
2. Determine the Target Runtime: Determine the target runtime and operating system for which
you want to publish the self-contained application.
3. Choose the Publishing Command: In the .NET Core CLI (Command-Line Interface), you have
several options for publishing a self-contained application:
o dotnet publish: This command publishes the application for a specified target runtime
and configuration.
o dotnet publish -r: Use this command to specify the target runtime identifier explicitly.
o dotnet publish -c Release: Specify the configuration (e.g., Release) for publishing the
application.
4. Publish the Application: Run the appropriate dotnet publish command from the terminal or
command prompt.
Example
5. Verify the Published Output: After completing the publishing process, verify that the application
has been published successfully. Navigate to the publish directory specified in the output of the
dotnet publish command.
6. Run the Published Application: Test the published application on the target system to ensure
that it runs correctly. You can execute the application directly from the publish directory or
distribute it to other systems.
7. Deploy and Distribute the Application: Once you have verified that the self-contained
application runs correctly, you can deploy and distribute it to users or deploy it to production
environments as necessary.
2. How can you utilize the .NET Core CLI for developing, building, and deploying applications?
The .NET Core CLI is a powerful tool for developing, building, and deploying applications. To utilize it
effectively:
2. Use “dotnet new” to create a project template (e.g., console app, web app).
3. Navigate to the project directory and use “dotnet restore” to install dependencies.
5. Build the application with “dotnet build”, which compiles source code into executable files.
3. Explain CoreRT.
In .NET Core, CoreRT has been used as a native toolchain that performs compilation to translation. In
other words, it compiles CIL byte code to machine code. The CoreRT uses ahead-of-complier, RyuJIT for
compilation. You can also use it with other compilers to perform native compilation for UWP apps.
The type system of the CoreRT is designed in such a way that metadata for reflection is not at all
required. This feature enables to have an AOT toolchain that can link away unused metadata and identify
unused application code.
4. How do you secure your .NET Core applications? Discuss the different authentication and
authorization mechanisms available.
1. Cookie-based: Use ASP.NET Core Identity for storing user information and managing
authentication via cookies.
2. Token-based: Utilize JSON Web Tokens (JWT) to authenticate users without server-side sessions.
3. OAuth 2.0/OpenID Connect: Integrate with external providers like Google or Facebook using
these protocols.
4. Windows Authentication: Employ this mechanism in intranet scenarios where Active Directory
is available.
5. Certificate Authentication: Authenticate clients based on X.509 certificates, suitable for mutual
TLS scenarios.
For authorization:
3. Policy-based: Define custom policies with specific requirements, evaluated by the Authorization
Middleware.
5. How do you implement exception handling and logging in .NET Core applications?
In .NET Core applications, exception handling and logging are implemented using middleware
components. Middleware is a chain of components that handle requests and responses in the
application pipeline.
For exception handling, use the built-in “UseExceptionHandler” middleware to catch exceptions and
provide custom error pages or responses. Configure it in the “Startup.cs” file within the “Configure”
method:
app.UseExceptionHandler(options =>
});
});
For logging, utilize the ILogger interface provided by Microsoft.Extensions.Logging namespace. Inject
ILogger into classes via dependency injection:
_logger = logger;
Log messages with different severity levels: Trace, Debug, Information, Warning, Error, Critical:
The hosting environment contains application-specific details such as application functions, where it is
stored, services for app management, etc. A HostingEnvironment is created in the application domain,
before the ASP's creation. In other words, a hosting environment is responsible for application
management and app-specific functions.
This feature of .NET Core makes it possible for the developer to work with multiple environments,
without creating any friction.
Response caching is when the .NET Core MVC's HTTP responses are pre-specified in cache-related
headers. These headers describe how intermediate or client machines should cache responses to
requests. This hence reduces the volume of requests the client or proxy machine makes to the web
server.
services.AddResponseCaching();
app.UseResponseCaching();
app.UseMiddleware();
[ResponseCache(Duration = 60)]
In this example, response caching middleware is added to the request pipeline, and the Index action in
the controller is decorated with the ResponseCache attribute, specifying a cache duration of 60 seconds.
9. What is Docker?
Docker is an open-source platform for the development of applications, and also for shipping
and running them. It allows for separating the application from the infrastructure using
containers so that software can be delivered quickly. With Docker, you will be able to manage
the infrastructure in the same ways you used to manage your applications.
It supports shipping, testing, and deploying application code quickly, thus reducing the delay
between code writing and running it in production.
The Docker platform provides the ability to package and application execution in a loosely
isolated environment namely a container. The isolation and security permit you to run multiple
containers at the same time on a given host. Containers are lightweight and they include every
necessary thing required for running an application, so you need not depend on what is
currently installed within the host.
Roslyn is a .NET Core compiler that compiles VB or C# code to the intermediate language (IL). Whereas,
RyuJIT as the name suggests is a Just-In-Time compiler that works the other way around i.e. compiles the
IL to native code.
The MEF(Managed Extensibility Framework) is a library that is useful for developing extensible and
lightweight applications. It permits application developers to use extensions without the need for
configuration. It also allows extension developers for easier code encapsulation thus avoiding fragile
hard dependencies. MEF will let you reuse the extensions within applications, as well as across the
applications. It is an integral part of the .NET Framework 4. It improves the maintainability, flexibility, and
testability of large applications.
12. What are the benefits of using SignalR in .NET Core applications, and how does it differ from
traditional AJAX-based communication?
SignalR in .NET Core offers real-time communication, enabling server-side code to push content updates
instantly to connected clients. This contrasts with traditional AJAX-based communication, which relies on
client-initiated requests and periodic polling for updates.
Real-time functionality: Instantly update clients without requiring user interaction or page
refreshes.
Broad compatibility: Supports various platforms (web, mobile, desktop) and fallback
mechanisms for older browsers.
High-level abstraction: Simplifies complex tasks like managing connections, groups, and message
handling.
SignalR’s main difference from AJAX is its push-based approach, using WebSockets when available and
falling back to other techniques (e.g., Server-Sent Events, Long Polling) if necessary. AJAX, conversely,
employs a pull-based model where the client must request data explicitly.
In .NET Core, the hosting environment represents the context in which the application is running. It
provides information about the environment, such as whether the application is running in
development, staging, or production mode.
1. Environment Name: .NET Core applications define an environment name that indicates the
current deployment environment. Common environment names include Development, Staging,
Production, and others.
6. Development vs. Production Mode: In Development mode, the application may have features
enabled that aid in debugging and development, such as detailed error messages, developer
exception pages, and automatic browser refresh (in client-side development).
7. Integration with Dependency Injection: The hosting environment is often used in conjunction
with dependency injection to configure services and components based on the current
environment.
14. What are the various ways to manage errors in .NET Core for web APIs?
There are mainly four ways to manage errors in .NET Core for web APIs.
4. UseStatusCodePages
If you compare these four methods, the best way is "Developer Exception Page" as it provides detailed
information (stacks, query string parameters, headers, cookies) about unhandled request exceptions.
You can easily enable this page by running your applications in the development environment. This page
runs early in the middleware pipeline, so you can easily catch the exception in middleware.
15. How to figure out when to use .NET Core and .NET Standard Class Library project types?
o Use .NET Core class library projects when you need to create reusable components or
libraries specifically targeting the .NET Core runtime.
o .NET Core class libraries are typically used to build components that will be used
within .NET Core applications, ASP.NET Core web applications, or other .NET Core
projects.
o .NET Core class libraries can take advantage of the features, performance optimizations,
and APIs provided by the .NET Core runtime.
o Use .NET Standard class library projects when you want to create reusable components
or libraries that can be shared across different .NET implementations and runtimes.
o .NET Standard class libraries are designed to provide a common API surface across
multiple .NET platforms, including .NET Core, .NET Framework, Xamarin, and others.
o .NET Standard class libraries are suitable for building libraries that need to target
multiple .NET platforms or runtimes, ensuring compatibility and portability across
different environments.
1. Describe the role of the IConfiguration interface in .NET Core and provide examples of how to read
configuration values from different sources.
In .NET Core, the IConfiguration interface plays a central role in managing application configuration
settings. It provides a unified way to access configuration values from various configuration sources, such
as appsettings.json files, environment variables, command-line arguments, user secrets, Azure Key Vault,
and custom configuration providers.
To read configuration values, first install the required NuGet packages for the desired configuration
providers (e.g., Microsoft.Extensions.Configuration.Json). Then, create a ConfigurationBuilder instance,
add the necessary providers, and build the configuration object.
1. appsettings.json Files
2.
4. .SetBasePath(Directory.GetCurrentDirectory())
5. .AddJsonFile("appsettings.json");
7. Environment Variables
8.
13.
2. Differentiate between Blazor Server and Blazor WebAssembly. How do you decide which one to use
for a particular project?
Web app with client-side execution loaded from web Every interaction handled on server prerendered
server can work offline via a service worker. HTML
The Main() method determines the basic components of The Main() method calls the CreateHostBuilder
the application the components are in the App.razor file method which sets the ASP.Net Core hosts.
It's run in the browser using WebAssembly It's run on the server
3. Client resources: If targeting less powerful devices or slow networks, Blazor Server may be
preferable.
4. Server load: Blazor Server increases server load; if minimizing this is important, select Blazor
WebAssembly.
5. Compatibility: Blazor WebAssembly requires modern browsers; for broader compatibility, use
Blazor Server.
6. Code sharing: Both models allow code sharing between client and server, but Blazor
WebAssembly enables greater flexibility.
In .NET Core, the Generic Host is a new hosting model for building lightweight and cross-platform
console applications, background services, and microservices. It provides a simplified and consistent way
to configure, start, and run .NET Core applications outside of the ASP.NET Core framework.
The Generic Host is built on top of the HostBuilder API, which is part of Microsoft.Extensions.Hosting
namespace. It allows developers to configure application services, logging, configuration, and other
components using a fluent and builder-style syntax.
Let's see how to create and configure a Generic Host in a .NET Core console application:
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System;
using System.Threading;
using System.Threading.Tasks;
class Program
services.AddHostedService();
})
.ConfigureLogging(logging =>
logging.AddConsole();
})
.RunConsoleAsync();
}
public class MyBackgroundService : BackgroundService
_logger = logger;
while (!stoppingToken.IsCancellationRequested)
MVC (Model-View-Controller) is a popular architectural pattern for building web applications, and it's
also a key component of ASP.NET Core. MVC in ASP.NET Core follows the same principles as traditional
MVC frameworks but with some enhancements and features tailored for modern web development.
Routing: ASP.NET Core MVC includes a flexible routing system that maps incoming HTTP requests
to controller actions based on URL patterns.
Model Binding: Model binding automatically maps incoming request data (e.g., form values,
query string parameters) to action method parameters or model properties.
Views and Razor Syntax: Views in ASP.NET Core MVC use the Razor view engine, which allows
developers to write HTML with embedded C# code to generate dynamic content.
Tag Helpers: Tag Helpers are a feature in ASP.NET Core MVC that enables developers to create
and use HTML-friendly syntax to generate and work with HTML elements and attributes within
Razor views.
Filters: Filters are used to add pre-action or post-action behavior to controller actions. Examples
include authorization filters, exception filters, action filters, and result filters.
Middleware Pipeline Integration: ASP.NET Core MVC integrates seamlessly with the ASP.NET
Core middleware pipeline, allowing you to combine MVC with other middleware components for
features such as authentication, authorization, logging, and error handling.
Dependency Injection: ASP.NET Core MVC fully embraces dependency injection, making it easy
to inject services and dependencies into controllers, views, filters, and other components.
Testing Support: ASP.NET Core MVC provides support for unit testing controllers and actions
using testing frameworks like xUnit or NUnit.
The Startup class is the entry point for configuring services and middleware in an ASP.NET Core
application. In the ConfigureServices method, you can register services with the dependency injection
container, including MVC services.
.NET Core applications can be deployed in various ways, depending on factors such as application
complexity, infrastructure requirements, and deployment preferences. Two common types of
deployment for .NET Core applications are:
o In this, the .NET Core runtime and all application dependencies are included with the
application package.
o The application is bundled with the specific version of the .NET Core runtime required to
run it, ensuring that the application can run on systems where the runtime is not
installed.
o Self-contained deployments are useful when targeting platforms where the .NET Core
runtime may not be available or when you want to isolate the application's runtime
environment from other applications on the system.
o You can create self-contained deployments using the dotnet publish command with the
appropriate runtime identifier (RID) specified.
o Here, the .NET Core runtime is installed separately on the target system, and the
application relies on the installed runtime to execute.
o The application package contains only the application binaries and dependencies,
without including the .NET Core runtime.
o Framework-dependent deployments are suitable for environments where the .NET Core
runtime is already installed, such as development machines, build servers, or
containerized environments.
o You can create framework-dependent deployments using the dotnet publish command
without specifying a runtime identifier (RID), which defaults to the host system's
platform.
In .NET Core, there isn't a direct replacement for Windows Communication Foundation (WCF) as a single,
unified communication framework. Instead, .NET Core offers several alternatives and technologies.
ASP.NET Core Web API: It is a lightweight and modern framework for building HTTP-based APIs
using RESTful principles. ASP.NET Core Web API supports various features such as model binding,
routing, middleware, content negotiation, and JSON serialization.
gRPC: A high-performance RPC (Remote Procedure Call) framework developed by Google. It uses
protocol buffers (protobuf) as the interface definition language and provides features such as bi-
directional streaming, authentication, and cancellation.
ASP.NET Core gRPC: It includes built-in support for creating gRPC services using ASP.NET Core
middleware. ASP.NET Core gRPC allows you to define and implement gRPC services using C# and
integrates seamlessly with ASP.NET Core features such as middleware, dependency injection,
and routing.
ASP.NET Core SignalR: It enables bi-directional communication between clients and servers over
a single, persistent connection. It is suitable for scenarios requiring real-time updates, such as
chat applications, live dashboards, and multiplayer games.
In .NET Core, the implicit compilation process refers to the automatic compilation of C# source code files
into executable code without the need for explicit compilation commands. This process is facilitated by
the .NET Core SDK and the underlying build system.
Here's an overview of the working of the implicit compilation process in .NET Core:
1. Project Structure: In a typical .NET Core project, C# source code files (*.cs) are organized within
a project directory structure. The project also contains a project file (usually with a .csproj
extension) that defines project metadata, dependencies, and build configurations.
2. dotnet CLI: The .NET Core command-line interface (CLI) provides commands for managing .NET
Core projects, including building, running, testing, and publishing applications. The dotnet CLI is
used to perform various development and build tasks from the command line.
3. Project File: The project file (e.g., MyProject.csproj) contains XML-based configurations that
specify project settings, dependencies, target frameworks, and build instructions. It defines the
structure and behavior of the project and provides instructions to the build system on how to
compile the project.
4. Dependency Resolution: Before compilation, the .NET Core SDK resolves project dependencies
and ensures that all required packages and libraries are available. It downloads missing packages
from package repositories such as NuGet.org and restores dependencies as necessary.
5. Build Process: When you build a .NET Core project using the dotnet CLI (e.g., dotnet build
command), the SDK invokes the build system to compile the project's source code files into
executable code. The build system uses MSBuild, the Microsoft Build Engine, to orchestrate the
compilation process.
6. Compilation Tasks: During the compilation process, the build system performs various tasks,
including parsing C# source code files, resolving references, compiling source code into
Intermediate Language (IL) bytecode, and generating executable binaries (e.g., DLLs, EXEs).
7. Incremental Builds: The .NET Core build system supports incremental builds, which means that
only modified source code files and their dependencies are recompiled during subsequent
builds. This improves build performance by avoiding unnecessary recompilation of unchanged
files.
8. Output Artifacts: After successful compilation, the build system produces output artifacts such
as DLLs, EXEs, and other files specified in the project configuration. These artifacts represent the
compiled application or library and can be executed, tested, or published for distribution.
Scaffolding in ASP.NET MVC is a code generation technique used to quickly create basic CRUD (Create,
Read, Update, Delete) functionality for database entities. It automates the process of generating
controller, views, and data access code based on the model classes representing the database entities.
Additionally, the framework includes multiple templates, including page templates, field templates,
entity page templates, and filter templates. You can call them Scaffold templates. These templates
permit you to design and build a fully functional website.
ASP.NET Core doesn't serve static files like images, HTML, or CSS by default. Instead, it relies on
the UseStaticFiles middleware to handle this task.
You configure this middleware to point to your static file folder, typically wwwroot.
Then, the middleware intercepts requests for these files and delivers them directly to the client,
bypassing the entire ASP.NET Core pipeline.
This keeps things fast and efficient. Additionally, you can control caching and authorization for
static files to further optimize your application.
Universal Windows Platform(UWP) is one of the methods used to create client applications for Windows.
UWP apps will make use of WinRT APIs for providing powerful UI as well as features of advanced
asynchronous that are ideal for devices with internet connections.
Cross-Device Compatibility: UWP apps are designed to run on a variety of Windows 10 devices,
including PCs, tablets, smartphones, Xbox consoles, Surface Hub, and HoloLens devices.
Responsive Design: UWP apps support responsive design principles, allowing developers to
create adaptive user interfaces that scale and adjust layout dynamically based on screen size,
orientation, and resolution.
Modern UI Controls: UWP provides a rich set of modern UI controls and components that
enable developers to create visually appealing and interactive user interfaces.
Live Tiles and Notifications: UWP apps can utilize Live Tiles on the Start menu to display
dynamic content, updates, and notifications to users.
Background Tasks and Services: UWP apps support background tasks and services that allow
applications to perform tasks and process data even when they're not in the foreground.
App Services and APIs: UWP apps can leverage platform APIs and app services to access system
features, device hardware, and platform capabilities. This includes accessing sensors, cameras,
location services, contacts, calendars, and other device-specific functionality through secure and
sandboxed APIs.
Security and App Containerization: UWP apps run in a secure and isolated app container
environment that protects against malicious code, unauthorized access to system resources, and
data breaches.
App Distribution and Store Integration: UWP apps can be distributed and installed through the
Microsoft Store, providing a centralized marketplace for users to discover, download, and install
applications.
Single Codebase and Deployment: UWP apps can be built using a single codebase and deployed
to multiple device types without requiring separate versions or modifications.
Integration with Windows Features: UWP apps seamlessly integrate with various Windows
features and services, including Cortana, Windows Ink, etc.
11. What is MSBuild in the .NET Core?
MSBuild is a free and open-source development platform for Visual Studio and Microsoft. It is a build
tool that helps automate the software product creation process, along with source code compilation,
packaging, testing, deployment, and documentation creation. Using MSBuild, we can build Visual Studio
projects and solutions without the need to install the Visual Studio IDE.
Xamarin is an open-source platform useful in developing a modern and efficient application for
iOS, Android, and Windows with .NET. It is an abstraction layer used to manage the
communication of shared code with fundamental platform code.
Xamarin runs in a managed environment that gives benefits like garbage collection and memory
allocation.
Developers can share about 90% of their applications over platforms using Xamarin. This pattern
permits developers to write entire business logic in a single language (or reuse existing app code)
but accomplishes native performance, look, and feel on each platform. The Xamarin applications
can be written on Mac or PC and then they will be compiled into native application packages, like
a .ipa file on iOS, or .apk file on Android.
The Startup is a critical class in the application. The following points make it imperative:
Reading and checking thousands of lines in different environments is tough, but you can use
various startup classes to resolve it.
In .NET Core, CTS stands for Common Type System. The Common Type System is a fundamental
component of the .NET runtime environment that defines how types are declared, used, and managed
across different programming languages supported by the .NET platform.
CTS is a single-rooted object hierarchy where the System object is the base type for the derivation of all
other types. Two major kinds of types it supports are:
1. Value Types: These types are either allocated within the structure inline or are stored directly in
the stack. This includes built-in value types (standard primitive types), types defined in source
code, user-defined value types, enumerations, etc.
2. Reference Types: These store value memory address references and are allocated on the heap.
They may be any of the interface types, pointer types, or self-describing types. For example-
class types and arrays like boxed value types, delegates, user-defined classes, etc.
15. How is .NET Core SDK different from .NET Core Runtime?
.NET Core SDK builds applications, whereas .NET Core Runtime runs the application. Consider SDK is a
collection of all tools and libraries you need to develop .NET Core applications quickly like a compiler,
and CLI. Consider Runtime as a virtual machine consisting of runtimes libraries that help you run those
applications.