수색…


비고

이 섹션에서는 asp.net-core-mvc가 무엇인지, 그리고 왜 개발자가 그것을 사용하고 싶어하는지에 대한 개요를 제공합니다.

또한 asp.net-core-mvc 내의 큰 주제를 언급하고 관련 주제에 링크해야합니다. asp.net-core-mvc의 문서는 새로운 것이므로 관련 주제의 초기 버전을 만들어야 할 수도 있습니다.

설치 또는 설정

Visual Studio 설치

Visual Studio가 설치되어 있지 않은 경우 여기에서 무료 Visual Studio Community Edition을 다운로드 할 수 있습니다 . 이미 설치 한 경우 다음 단계로 진행할 수 있습니다.

ASP.NET 핵심 MVC 응용 프로그램 만들기.

  1. Visual Studio를 엽니 다.
  2. 파일> 새 프로젝트를 선택하십시오.
  3. 왼쪽의 템플릿 섹션에서 원하는 언어로 웹을 선택하십시오 .
  4. 대화 상자에서 원하는 프로젝트 유형을 선택하십시오 .
  5. 선택 사항 : 대상으로 삼을 .NET Framework를 선택하십시오.
  6. 프로젝트의 이름을 지정 하고 프로젝트에 대한 솔루션을 만들지를 나타냅니다.
  7. 확인클릭 하여 프로젝트를 만듭니다.

여기에 이미지 설명을 입력하십시오.

프로젝트에 사용할 템플릿을 선택하는 또 다른 대화 상자가 나타납니다.

여기에 이미지 설명을 입력하십시오.

각 설명은 자명하다. 이 첫 번째 프로젝트의 경우, 모든 기본 구성, 인증 및 기존 컨텐츠가 포함될 웹 어플리케이션을 선택하십시오 .

이것은 소개 응용 프로그램이므로 보안이나 인증이 필요하지 않으므로 대화 상자의 오른쪽 에서 인증 옵션을 인증 없음으로 변경하고 확인을 클릭하여 프로젝트를 만들 수 있습니다 .

그런 다음 솔루션 탐색기에서 새 프로젝트를 확인해야합니다.

여기에 이미지 설명을 입력하십시오.

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:ConnectionStringappsettings.json 파일의 설정 경로입니다.

{
  ...
  },
  "Data": {
    "ConnectionString": "some connection string"
  }
}

평생 관리

와 함께 주입 된 개체의 수명을 관리하려면 AddTransient 다른 두 가지 옵션이 존재합니다 AddSingletonAddScoped . 마지막 하나는 객체의 수명이 HTTP 요청에 적용됨을 의미합니다.

버전

공식 로드맵 @ Github

번역 공지 사항 출시일
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)에 대한 참조는 달력 기반입니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow