CodeBehind 4.5 출시; 고급 비동기 기능

발행: (2026년 2월 7일 오전 07:03 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

Overview

Version 4.5는 .NET 7 기반의 CodeBehind 프레임워크 최신 릴리스입니다. 다가오는 4.6 버전은 .NET 10을 목표로 하며 Elanat 팀이 개발 중입니다. 이번 릴리스는 프레임워크 핵심을 완전 비동기로 재작성하여 응답 시간을 단축하고 보다 반응성이 뛰어난 경험을 제공합니다.

Elanat의 CodeBehind Framework는 2023년에 도입된 ASP.NET Core용 풀‑스택, 오픈‑소스(MIT‑licensed) 프레임워크입니다. .aspx 파일과 Code‑Behind 패턴을 사용하는 Web Forms의 단순함과 ASP.NET Core의 현대적인 아키텍처를 결합합니다. 무상태 “WebForms Core” 접근 방식을 제공함으로써 직접 서버‑사이드 UI 관리, 재컴파일 없이 동적 기능 추가, 라우팅 복잡도 감소 등을 가능하게 하여 기본 ASP.NET 프레임워크에 대한 고성능 대안으로 자리매김합니다.

Async Controller Configuration

1. Route‑Based Configuration

라우트 기반 컨트롤러를 사용할 때는 액션을 async Task 메서드로 정의합니다:

public partial class Home : CodeBehindController
{
    public async Task PageLoad(HttpContext context)
    {
        // async logic here
    }
}

Program.cs에 미들웨어를 추가합니다:

app.UseCodeBehindRouteAsync();

2. Default (ASPX‑Based) Configuration

.aspx 페이지 기반 기본 MVC 뷰 모델의 경우, 비동기 처리를 활성화하려면:

  1. 컨트롤러 참조에서 await 키워드 사용.
  2. 적절한 미들웨어 구성.

Razor Syntax Example

@page
@controller await MyController

    ...

Standard ASPX Syntax Example

    ...

Program.cs에 미들웨어를 추가합니다:

app.UseCodeBehindAsync();

Sample View (Razor)

@page
@controller await MyController

## Test Async

@controller await MyController 지시어는 프레임워크에 MyController를 비동기로 실행하도록 알려줍니다.

Sample Controller

using CodeBehind;

public partial class MyController : CodeBehindController
{
    public async Task PageLoad(HttpContext context)
    {
        string result = await DoSomethingAsync();
        Write(result);
    }

    private async Task DoSomethingAsync()
    {
        await Task.Delay(2000); // Simulate async work
        return "Hello CodeBehind! (after async work)";
    }
}
  • MyControllerCodeBehindController를 상속합니다.
  • PageLoad은 이제 async이며 Task를 반환합니다.
  • DoSomethingAsync는 2초 지연을 통해 비동기 작업을 시뮬레이션하고 문자열을 반환하며, 해당 문자열은 뷰에 출력됩니다.

Program.cs

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddCodeBehind();

var app = builder.Build();

app.UseCodeBehindAsync();   // Enables async handling for controllers

app.Run();
  • AddCodeBehind()를 통해 CodeBehind 서비스가 등록됩니다.
  • UseCodeBehindAsync()가 비동기 컨트롤러 처리를 활성화합니다.
  • app.Run()으로 애플리케이션이 시작됩니다.

Benefits

CodeBehind 4.5는 라우트 기반 및 ASPX 기반 MVC 컨트롤러 모두에 대한 완전한 비동기 지원을 도입하여 반응성을 향상하고 전반적인 성능을 개선합니다. 개발자는 이제 await를 사용해 비동기 작업을 구현할 수 있으며, 추가적인 복잡성을 크게 늘리지 않습니다.

Resources

  • GitHub Repository:
  • NuGet Package:
  • Official CodeBehind Page:
Back to Blog

관련 글

더 보기 »