Configure vs ConfigureServices in .NET Core – What’s the Difference?

ConfigureServices vs Configure in ASP.NET Core

ConfigureServices vs Configure in ASP.NET Core

When you're building an application with ASP.NET Core, you’ve likely seen two key methods in the Startup.cs file: ConfigureServices and Configure. Both are crucial for setting up your application — but they serve very different purposes.

In this post, we’ll break down what each method does, how they work together, and when to use which.

🧩 What is ConfigureServices?

Purpose:
ConfigureServices(IServiceCollection services) is used to register application services and dependencies that will be injected wherever needed using Dependency Injection (DI).

Common Use Cases:

  • Registering controllers and MVC
  • Setting up Entity Framework Core (DbContext)
  • Adding Identity and Authentication
  • Registering custom services, repositories
  • Enabling Swagger, CORS, etc.

Example:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers(); // Enables attribute routing

    services.AddDbContext<MyDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

    services.AddScoped<IUserService, UserService>();
}

⚙️ What is Configure?

Purpose:
Configure(IApplicationBuilder app, IWebHostEnvironment env) sets up the middleware pipeline – the sequence of components that handle each HTTP request.

Common Use Cases:

  • Error handling (UseDeveloperExceptionPage)
  • Serving static files
  • Routing and endpoints
  • Authentication & Authorization
  • HTTPS redirection

Example:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
        app.UseDeveloperExceptionPage();
    else
        app.UseExceptionHandler("/Home/Error");

    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();

    app.UseAuthentication();
    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

πŸ“Š Summary Table

Method Purpose Registers Services Configures Middleware
ConfigureServices Register application services for DI ✅ Yes ❌ No
Configure Set up the middleware request pipeline ❌ No ✅ Yes

πŸ’‘ Final Thoughts

Think of your ASP.NET Core application setup as preparing a stage:

  • ConfigureServices is where you gather your actors (services, tools, data sources).
  • Configure is where you direct the scene (how and in what order those actors perform).

Understanding the difference and the role of each method helps you better structure your app and avoid common mistakes.

Comments

Popular posts from this blog

Promises in Angular

Return Types in .NET Core Web API

Mastering Your Angular Workflow: Essential CLI Commands for Efficient Development