asp.net-core-mvc 튜토리얼
asp.net-core-mvc 시작하기
수색…
비고
이 섹션에서는 asp.net-core-mvc가 무엇인지, 그리고 왜 개발자가 그것을 사용하고 싶어하는지에 대한 개요를 제공합니다.
또한 asp.net-core-mvc 내의 큰 주제를 언급하고 관련 주제에 링크해야합니다. asp.net-core-mvc의 문서는 새로운 것이므로 관련 주제의 초기 버전을 만들어야 할 수도 있습니다.
설치 또는 설정
Visual Studio 설치
Visual Studio가 설치되어 있지 않은 경우 여기에서 무료 Visual Studio Community Edition을 다운로드 할 수 있습니다 . 이미 설치 한 경우 다음 단계로 진행할 수 있습니다.
ASP.NET 핵심 MVC 응용 프로그램 만들기.
- Visual Studio를 엽니 다.
- 파일> 새 프로젝트를 선택하십시오.
- 왼쪽의 템플릿 섹션에서 원하는 언어로 웹을 선택하십시오 .
- 대화 상자에서 원하는 프로젝트 유형을 선택하십시오 .
- 선택 사항 : 대상으로 삼을 .NET Framework를 선택하십시오.
- 프로젝트의 이름을 지정 하고 프로젝트에 대한 솔루션을 만들지를 나타냅니다.
- 확인 을 클릭 하여 프로젝트를 만듭니다.
프로젝트에 사용할 템플릿을 선택하는 또 다른 대화 상자가 나타납니다.
각 설명은 자명하다. 이 첫 번째 프로젝트의 경우, 모든 기본 구성, 인증 및 기존 컨텐츠가 포함될 웹 어플리케이션을 선택하십시오 .
이것은 소개 응용 프로그램이므로 보안이나 인증이 필요하지 않으므로 대화 상자의 오른쪽 에서 인증 옵션을 인증 없음으로 변경하고 확인을 클릭하여 프로젝트를 만들 수 있습니다 .
그런 다음 솔루션 탐색기에서 새 프로젝트를 확인해야합니다.
F5 키를 눌러 응용 프로그램을 실행하고 디버깅 세션을 시작하면 기본 브라우저에서 응용 프로그램이 시작됩니다.
이제 프로젝트가 로컬로 실행되어 실행중인 것을 볼 수 있으며 응용 프로그램을 빌드 할 수있는 출발점이 될 준비가되었습니다.
추신 : 사용 asp.net 핵심 설명서에서 asp.net 핵심 항목 시작하기 .
MVC 미들웨어 추가
빈 프로젝트를 만들었거나 여전히 응용 프로그램에 mvc가 구성되어 있지 않으면 종속성을 추가 할 수 있습니다.
"Microsoft.AspNetCore.Mvc": "1.0.1"
"dependencies"
아래의 project.json
파일.
Startup 클래스에 MVC 미들웨어를 등록하십시오.
public void ConfigureServices(IServiceCollection services)
{
...
services.AddMvc();
}
Service.AddMvc services.AddMvc()
및 services.AddMvcCore()
있습니다. asp.net core
로 시작하는 경우 또는 원하는대로 원하는 경우 services.AddMvc()
유지해야합니다. 그러나 고급 경험을 원한다면 최소한의 MVC 파이프 라인으로 시작하고 services.AddMvcCore()
사용하여 사용자 정의 된 프레임 워크를 얻는 기능을 추가 할 수 있습니다. AddMvcCore
대한 자세한 내용은 이 토론 을 참조하십시오.
public void ConfigureServices(IServiceCollection services)
{
services
.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters(j => j.Formatting = Formatting.Indented);
}
이제 응용 프로그램 빌더에게 mvc :
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.UseMvc();
}
또는 기본 라우팅 사용 :
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
의존성 주입 기본 사항
거의 모든 컨트롤러가 작동하려면 외부 종속성이 필요합니다. 의존성 객체 (또는 그 팩토리)를 설정하고 그것을 컨트롤러에 전달하는 방법이있다. 이렇게하면 염려를 분리 하고 코드를 명확하고 시험 적으로 유지하는 데 도움이됩니다.
말하자면, 우리는 생성자에서 config의 값을 필요로하는 인터페이스와 구현이 있습니다.
public interface ISomeDependency
{
async Task<IEnumerable<string>> GetItemsAsync(string key);
}
public class SomeDependency : ISomeDependency
{
public SomeDependency(string connectionString)
{
...
}
...
}
일부 컨트롤러 클래스에서 사용됩니다.
public class SomeController : Controller
{
private reanonly ISomeDependency dependency;
public SomeController(ISomeDependency dependency)
{
...
this.dependency = dependency;
}
...
public async Task<IEnumerable<string>> Get(string key) =>
await dependency.GetItemsAsync(key);
}
하나는 컨트롤러 생성자에서 services.AddTransient
호출하는이 종속성을 Startup.ConfigureServices
메소드에 삽입 할 수 있습니다.
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder().
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
...
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
...
services.AddTransient(serviceProvider =>
new MyDependency(Configuration["Data:ConnectionString"]));
}
...
}
여기 Data:ConnectionString
은 appsettings.json
파일의 설정 경로입니다.
{
...
},
"Data": {
"ConnectionString": "some connection string"
}
}
평생 관리
와 함께 주입 된 개체의 수명을 관리하려면 AddTransient
다른 두 가지 옵션이 존재합니다 AddSingleton
및 AddScoped
. 마지막 하나는 객체의 수명이 HTTP 요청에 적용됨을 의미합니다.
버전
번역 | 공지 사항 | 출시일 |
---|---|---|
RC1 * | 1.0.0-rc1 | 2015-11-01 |
RC2 * | 1.0.0-rc2 | 2016-05-16 |
1.0.0 | 1.0.0 | 2016-06-27 |
1.0.1 | 1.0.1 | 2016-09-13 |
1.0.1 | 1.0.1 | 2016-09-13 |
1.1 | 1.1.0 | Q4 2016 / Q1 2017 |
1.2 | 1.2.0 | 2017 년 1 분기 / 2 분기 2017 |
* 연간 분기 (Q1, Q2, Q3, Q4)에 대한 참조는 달력 기반입니다.