Visual Studio 2022 Preview 3을 지금 사용할 수 있습니다!

5개의 좋아요

지금 사용할 수 없습니다; CDN 관련 이슈가 있는 듯 합니다. 조만간 곧 해결 될 것으로 보입니다.

4개의 좋아요

CDN관련 문제가 해결되어 다시 다운로드 받을 수 있다고 합니다.

3개의 좋아요

Visual Studio 2022 Preview 3을 설치하면, 프로젝트 유형 중 Console 템플릿을 선택하고 타겟 Framework을 .NET 6을 선택했을 때 다음과 같이 최상위 문 및 Global using이 적용된 Program.cs 파일을 생성합니다.

Program.cs

// See https://aka.ms/new-console-template for more information

Console.WriteLine("Hello, World!");

어, 그런데 global using이 안보이네요? 위의 링크를 보시면, 컴파일러가 프로젝트 형식에 따라 using 지시문 세트를 가져온다는 것을 알 수 있습니다.

그런데 해외에서는 기본 템플릿이 이렇게 바뀌는 것에 대해 탐탁지 않게 생각하는 몇몇 분들의 글을 볼 수 있었습니다.

image

콘솔 템플릿의 Program.cs의 이전 구조도 매우 단순하므로 이렇게 불편할 일은 아닌것 같고, Main() 메소드의 args 등도 여전히 잘 사용할 수 있기 때문에 단순히 익숙하지 않아서 생기는 불만 정도로 이해가 됩니다.

저의 개인적인 의견은 가까운 미래에 언어를 새로 배워야 하는 시점의 학생들에게 C#을 쉽게 접근할 수 있도록 하는 훌륭한 장치가 최상위문이라고 생각해서 이번 템플릿의 변경이 긍정적이였습니다.

image

3개의 좋아요

@dimohy 정말 신기합니다. 저도 학생들이 C# 접근을 쉽게 하는 것이 최상위문이라고 생각합니다. :+1:

3개의 좋아요

Visual Studio 2022 Preview 3.1

비주얼 스튜디오 2022 미리보기 릴리스 노트 | 마이크로 소프트 문서 (microsoft.com)

3개의 좋아요

image

이제 Visual studio 2022 Preview로 ASP.NET Core Empty 템플릿으로 프로젝트를 생성하면 다음의 Program.cs 파일이 생성됩니다!

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}

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

app.Run();

3개의 좋아요

Visual Studio Preview 2022 처음 나왔을 때부터 계속 업데이트 설치 하셨다면 한글로 메뉴명 등이 안나올 수 있는데요, 삭제 후 재설치하면 한글이 잘 나오게 됩니다;

image

3개의 좋아요

.NET 6 Preview 7 부터 모든 템플릿에서 생성하는 Program.cs에 최상위문이 적용된 듯 합니다.

Blazor Webassembly로 프로젝트를 생성하면,

Client/Program.cs

using BlazorApp3.Client;

using Microsoft.AspNetCore.Components.WebAssembly.Hosting;

var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");

builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });

await builder.Build().RunAsync();

그리고 Server/Program.cs

using Microsoft.AspNetCore.ResponseCompression;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllersWithViews();
builder.Services.AddRazorPages();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
    app.UseWebAssemblyDebugging();
}
else
{
    app.UseExceptionHandler("/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();

app.UseBlazorFrameworkFiles();
app.UseStaticFiles();

app.UseRouting();


app.MapRazorPages();
app.MapControllers();
app.MapFallbackToFile("index.html");

app.Run();

이렇게 최상위문이 적용되어 있습니다. 나름의 놀라운 변화군요!

3개의 좋아요

.csproj에,

...
<Nullable>enable</Nullable>
...

Nullable이 기본 enable 되어 있는것도 인상깊어요. 이게 개발자들이 적응할 때까지 약간의 혼란은 있겠지만!

3개의 좋아요

처음 접근하는데 간단하고 편리하다는 데에는 정말 격렬히 공감합니다…
그런데 저 상황에서 한 개 이상의 소스 파일이 되는 순간 엄청 헷갈리지 않을까 하는 걱정도 되네요.
초기 템플릿 부분을 환경 설정 등으로 토글이 가능하면 좋지 않을까 하는 생각도 들었습니다.
물론 정말정말 괜한 걱정이었으면 좋겠습니다. ( 그 쯤 되면 다들 어련히 알아서??? 하하;;; )
nullable은 마음의 준비를 단단히 해야겠네요.

3개의 좋아요