1. Home
  2. Docs
  3. ASP.NET Core
  4. Interview Questions
  5. ASP.NET Core Technical Test Revision Guide

ASP.NET Core Technical Test Revision Guide

A comprehensive ASP.NET Core technical prep guide covering:

  • C# fundamentals (loops, logic, LINQ, async, OOP)
  • ASP.NET Core MVC
  • Web API
  • Dependency Injection
  • Entity Framework Core
  • Middleware
  • Authentication & Authorization
  • Logging
  • Configuration
  • Error handling
  • Model validation
  • Unit testing
  • Clean architecture concepts

This will be extensive and practical, but structured so you can revise efficiently rather than just read 5000 words of random code.

If this is a technical test, they often start from fundamentals before moving into ASP.NET Core. I’ll build this properly and sequentially:

  1. Basic Program Structure
  2. Variables and Data Types
  3. Conditional Statements
  4. Loops (for, while, foreach)
  5. Then ASP.NET Core context

This will feel like a structured revision guide rather than random snippets.


1. Basic Program Structure in C#

Understanding structure shows you understand how .NET works under the hood.

1.1 Minimal Console Application Structure

using System;

namespace MyApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World");
        }
    }
}

Explanation

  • using System; → Imports namespace
  • namespace → Logical grouping of classes
  • class Program → Blueprint
  • static void Main → Entry point of application

1.2 Modern .NET (Top-Level Statements)

In .NET 6+:

Console.WriteLine("Hello World");

This is syntactic sugar — the compiler generates the Program class automatically.

1.3 Basic ASP.NET Core Program Structure

In ASP.NET Core (minimal API style):

var builder = WebApplication.CreateBuilder(args);

var app = builder.Build();

app.MapGet("/", () => "Hello World");

app.Run();

What Happens Here?

  1. Builder configures services.
  2. App builds middleware pipeline.
  3. Routes are mapped.
  4. Server starts.

This is very commonly discussed in interviews.

2. Variables and Data Types

This is extremely common in technical tests.

2.1 Value Types

Stored on stack (generally).

Integer

int age = 30;

Double

double price = 19.99;

Decimal (for money — important)

decimal salary = 50000.50m;

Boolean

bool isActive = true;

Char

char grade = 'A';

2.2 Reference Types

Stored on heap.

String

string name = "John";

Object

object data = "Hello";

2.3 Type Inference (var)

var count = 10;      // int
var message = "Hi";  // string

var still has a strong type — it’s just inferred.

2.4 Nullable Types

Very important in modern C#.

int? age = null;

Check:

if (age.HasValue)
{
    Console.WriteLine(age.Value);
}

Or modern:

Console.WriteLine(age ?? 0);

2.5 Constants

const double Pi = 3.14159;

2.6 Implicit vs Explicit Casting

Implicit

int num = 10;
double result = num;  // safe

Explicit

double price = 9.99;
int whole = (int)price;

3. Conditional Statements

Technical tests often evaluate logic thinking here.

3.1 Basic If Statement

int age = 18;

if (age >= 18)
{
    Console.WriteLine("Adult");
}

3.2 If-Else

if (age >= 18)
{
    Console.WriteLine("Adult");
}
else
{
    Console.WriteLine("Minor");
}

3.3 If-Else If Ladder

int score = 75;

if (score >= 90)
{
    Console.WriteLine("Grade A");
}
else if (score >= 75)
{
    Console.WriteLine("Grade B");
}
else
{
    Console.WriteLine("Grade C");
}

3.4 Logical Operators

AND

if (age >= 18 && age <= 65)
{
    Console.WriteLine("Working Age");
}

OR

if (age < 18 || age > 65)
{
    Console.WriteLine("Dependent");
}

NOT

if (!isActive)
{
    Console.WriteLine("Inactive");
}

3.5 Ternary Operator

string result = age >= 18 ? "Adult" : "Minor";

3.6 Switch Statement (Classic)

int day = 2;

switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    default:
        Console.WriteLine("Unknown");
        break;
}

3.7 Modern Switch Expression (C# 8+)

string dayName = day switch
{
    1 => "Monday",
    2 => "Tuesday",
    _ => "Unknown"
};

Interviewers love modern C# features.

Now We Move to Loops (After Conditions)

4.1 For Loop

for (int i = 0; i < 5; i++)
{
    Console.WriteLine(i);
}

Structure:

for (initialization; condition; increment)

4.2 Nested For Loop

for (int i = 0; i < 5; i++)
{
    Console.WriteLine(i);
}

Common in algorithm questions.

4.3 While Loop

int count = 0;

while (count < 5)
{
    Console.WriteLine(count);
    count++;
}

4.4 Do-While

int number = 0;

do
{
    Console.WriteLine(number);
    number++;
}
while (number < 5);

4.5 Foreach Loop

List<string> names = new List<string> { "Alice", "Bob" };

foreach (var name in names)
{
    Console.WriteLine(name);
}

4.6 Break and Continue

Break

for (int i = 0; i < 10; i++)
{
    if (i == 5)
        break;

    Console.WriteLine(i);
}

Continue

for (int i = 0; i < 5; i++)
{
    if (i == 2)
        continue;

    Console.WriteLine(i);
}

5. Logic Problems You May Be Asked

5.1 Check if Number is Even

public bool IsEven(int number)
{
    return number % 2 == 0;
}

5.2 Factorial

public int Factorial(int number)
{
    int result = 1;

    for (int i = 1; i <= number; i++)
    {
        result *= i;
    }

    return result;
}

5.3 Reverse a String

public string Reverse(string input)
{
    char[] chars = input.ToCharArray();
    Array.Reverse(chars);
    return new string(chars);
}

5.4 Palindrome Check

public bool IsPalindrome(string input)
{
    string reversed = Reverse(input);
    return input.Equals(reversed, StringComparison.OrdinalIgnoreCase);
}

6. Bringing It Into ASP.NET Core Context

If the technical test is ASP.NET-based, they may ask you to combine logic with API.

Example:

6.1 API That Returns Even Numbers

[ApiController]
[Route("api/[controller]")]
public class NumbersController : ControllerBase
{
    [HttpGet("even")]
    public IActionResult GetEvenNumbers()
    {
        List<int> numbers = Enumerable.Range(1, 20).ToList();

        var evenNumbers = numbers.Where(n => n % 2 == 0);

        return Ok(evenNumbers);
    }
}

6.2 API With Conditional Logic

[HttpGet("grade/{score}")]
public IActionResult GetGrade(int score)
{
    string grade = score switch
    {
        >= 90 => "A",
        >= 75 => "B",
        >= 60 => "C",
        _ => "Fail"
    };

    return Ok(grade);
}

What Interviewers Are Really Looking For

From experience, they check:

  • Do you understand types?
  • Can you write clean logic?
  • Can you structure code properly?
  • Do you understand ASP.NET pipeline?
  • Do you use async correctly?
  • Do you understand DI?

How can we help?