인프런 커뮤니티 질문&답변

carlos님의 프로필 이미지
carlos

작성한 질문수

14일만에 배우는 ASP.NET CORE

04. 의존성주입 패턴

두번째 강의 의존성주입에서 startup 클래스가 없습니다.

해결된 질문

작성

·

525

0

마지막 startup.cs파일에 IUser에 service를 주입 해줘야되는 부분에서 vs2022에서는 해당 파일이 없는데요.

확인부탁드리고 중간중간에 버전차이로 흐름이 끊기는 부분이 있는데요. 신규 버전으로 재업로드가 안될까요?

답변 2

0

저는 얼마전 강의 시작해서 멘붕오다가...(MVC를 처음 접하는 상황이라서..) 다른 기초 강의를 찾다가 그만두고 결재를 했으니 일단은 따라 해보자 했답니다.
이 강의는 MVC 처음 하시는 분들에게 무척 난감해 할 수 있을것 같습니다.

제가 답글 쓴 이유는 저는 이 강의를 VisualStudio 2022에서 따라고 하고 있답니다. 그러다 보니 Startup.cs 파일이 없어 프로젝트에서 클래스 추가하고(Startup.cs) Startup.cs 필요한 내용을 정리후 Program.cs 파일을 수정했습니다. Program.cs 구동될때 Startup.cs가 작동하도록 수정하는 내용 입니다. 아래의 소스 내용을 첨부합니다. 참고가 될지 모르겠네요.

[Startup.cs 소스]

using NetCore.Services.Interfaces;

using NetCore.Services.Svcs;

using NetCore.Data.ViewModels;

namespace NetCore.Web

{

public class Startup

{

public IConfiguration configRoot

{

get;

}

public Startup(IConfiguration configuration)

{

configRoot = configuration;

}

public void ConfigureServices(IServiceCollection services)

{

services.AddScoped<IUser, UserService>();

services.AddRazorPages();

}

public void Configure(WebApplication app, IWebHostEnvironment env)

{

if (!app.Environment.IsDevelopment())

{

app.UseExceptionHandler("/Home/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.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapControllerRoute(

name: "default",

pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

}

}

}

 

 

[Program.cs 소스]

using NetCore.Web;

var builder = WebApplication.CreateBuilder(args);

var startup = new Startup(builder.Configuration);

startup.ConfigureServices(builder.Services);

var app = builder.Build();

startup.Configure(app, builder.Environment);

 

 

위와같이 정의하시면 될듯합니다.

 

 

0

김정수님의 프로필 이미지
김정수
지식공유자

carlos님, 반갑습니다.

일단, 첫번째 질문하신 내용 간단히 답변드리겠습니다.

.net 6 버전부터 Startup.cs 파일이 프로젝트내에 존재하지 않습니다.

Program.cs 내용 또한 바뀌었구요.

제 강의에서 현재 .net 5 버전까지 업데이트할 수 있도록 동영상으로 안내하고 있고, .net 6 버전은 동영상없이 리소스에만 추가해 놓은 상태입니다.

"프로젝트 리소스에 .NET 6 web project 추가 안내" 섹션을 참고하시기 바랍니다.

두번째 질문하신 버전 차이로 인한 흐름 끊김 문제에 대해 말씀드리면,

.net core 버전이 3.1 => 5까지 업그레이드되면서 많은 부분이 바뀌어 보너스 섹션들을 통해 영상을 추가하였습니다.

이 외에 6버전에서 또 변경되었는데 전체적인 구조가 바뀐 것은 (거의) 없고, 첫번째 질문하신 내용 관련해서 Program 클래스에서 Startup 클래스없이 동작하도록 바뀌었습니다. 그래서 6버전용 리소스를 추가해 놓았던 것입니다.

제 마음 같아서는 carlos님 생각대로 강의 내용전체를 6버전을 넘어 최신버전 7을 기반으로 리뉴얼 하고 싶습니다만, 현재 리뉴얼을 진행하기는 어려운 점이 있어서 양해 부탁드립니다. (차기 강의를 계획 및 준비하고 있어서 입니다.)

김정수님의 프로필 이미지
김정수
지식공유자

리소스에 3.1, 5, 6 각각의 버전에 따른 웹 프로젝트가 포함되어 있으니 참고 바랍니다.

저도 이부분 동감입니다. 이제 배우기 시작하는대 버전차이에 startup.cs가 없고 있고해서 혼동 되어 학습에 차질이 생깁니다. 가격부분이 10만원~20만원대가 넘어가도 최신버전 asp.net 강의가 있다면 충분히 수강할 의향이 있습니다. 부디 최신버전 강의가 나오기를 기대합니다.

김정수님의 프로필 이미지
김정수
지식공유자

JoJo Corporation님, 고민해 보겠습니다. 의견 감사드립니다.

carlos님의 프로필 이미지
carlos

작성한 질문수

질문하기