ASP.NET 5 베타 요약

최신 순으로 요약하겠다. 새로운 베타 내역이 생길 경우 이 글이 업데이트 된다.
http://blogs.msdn.com/b/webdev/default.aspx?CR_CC=200674120

ASP.NET Beta 8

(2015-10-15)

  • IIS 호스팅 기능개선

이제 더이상 기존 AppPool이 없어도 윈도우 서버에서 구동 가능.
자체 호스팅을 원할 경우 app.config 지원
IIS는 여전히 web.config가 필요함. 아래와 같이 구성하면 됨.

<configuration>
  <system.webServer>
    <handlers>
      <add
        name="httpPlatformHandler"
        path="*"
        verb="*"
        modules="httpPlatformHandler"
        resourceType="Unspecified"/>
    </handlers>
    <httpPlatform
      processPath="%DNX_PATH%"
      arguments="%DNX_ARGS%"
      stdoutLogEnabled="false"
      startupTimeLimit="3600"/>
  </system.webServer>
</configuration>
  • 다국어 기능

이제 다국어 기능은 자체 지원으로 변경.
Startup.cs 에 midleware 추가
app.UseRequestLocalization(options)
서비스 추가
services.AddLocalization(options => options.ResourcesPath = "resources");
MVC와 함께 사용

services
    .AddMvc()
    .AddViewLocalization(options => options.ResourcesPath = "Resources");

컨트롤러별 다국어를 정의할 클래스 예제

private IHtmlLocalizer<HomeController> SR;

public HomeController(IHtmlLocalizer<HomeController> localizer)
{
    _localizer = localizer;
}

public ActionResult Index()
{
    ViewData.Message = SR["Localize me!"];
    return View();
}

뷰에서 다국어 정의 사용

@inject IViewLocalizer SR

<h1> @SR["Localized header"]</h1>

유효성 검사 오류 메시지를 위한 middleware 사용

services
    .AddMvc()
    .AddViewLocalization(options => options.ResourcesPath = "Resources")
    .AddDataAnnotationsLocalization();

이후 유효성 오류 메시지에 대한 다국어 기능 지원

  • DNX 감시 명령

DNX Watch 명령어는 프로젝트 파일의 변경 사항을 모니터링하여 변경 사항 발생 시 상황에 따라 서버를 재시작 하여 별도의 사용자의 터치 없이 바로 반영된 결과물을 볼 수 있는 편리한 개발 기능
설치법
dnu commands install Microsoft.Dnx.Watcher

이후 project.json이 있는 경로로 들어가서 dns-watch 실행하면 됨.

C:\Users\danroth27\Documents\WatchTest\src\WatchTest>dnx-watch web
[DnxWatcher] info: Running dnx with the following arguments: --project "C:\Users\daroth\Documents\WatchTest\src\WatchTest\project.json" web
[DnxWatcher] info: dnx process id: 8348
Hosting environment: Production
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.

기본 About 페이지
before

코드 변경만 한 후,

public IActionResult About()
{
    ViewData["Message"] = "Watch this!";

    return View();
}

브라우저 새로고침만 하면 반영 결과를 볼 수 있음.
After

  • 프레임워크 버전 지정

게시할 때 프레임워크 버전을 명시적으로 지정 가능
dnu publish –framework dnx451
이를 통해 해당 버전에 맞는 필요한 프레임워크와 같이 패키징 후 게시됨.

  • 패키지 복구 시 HTTP 캐시 초기화

실행핼 때마다 캐시가 쌓이는 게 일상이기 때문에 패키지 복구 시 아래 명령어로 캐시 초기화가 가능
dnu clear-http-cache

  • **닷넷 버전을 2.0이나 3.5로 변경 가능

미친 기능… project.json 에서 targetFrameworknet20net35 으로 지정하면 됨.

  • 빌드 상황에 따른 전처리/후처리 지원

DEBUGRELEASE 등에서 각 상황에 맞는 전처리/후처리를 project.json 에서 정의 가능.
전/후처리 스크립트에 %build.Configuration%%build.TargetFramework% 변수 가용.

  • 추가 포함 파일 정의

project.json 에서 사용자가 지정 가능한 추가 파일을 지정할 수 있음 주로 프로젝트 외 경로 참조에 쓸 수 있음.

"packInclude": {
    "destination1/": "source1/**",
    "destination2/": "source2/**",
    "destination2/some_additional_file.txt": "source2a/somefile.txt",
    "destination3/": ["source3/a.txt", "source3/b.txt", "source4/c/**/*.ps1"]
}
  • 패키지나 프로젝트 버전 지정 가능

project.json에 클래스 라이브러리 버전 지정 예제

"dependencies": {
    "ClassLibrary1": { "version": "1.0.0-*", "target": "project" },
    "ClassLibrary2": { "version": "1.0.0-*", "target": "package" }
}
  • DNVM Uninstall

이제 DNX 확장 삭제 가능. 경로는 ~/.dnx/runtimes (사용자 폴더/.dnx/…)

  • Visual Studio 2015 도구 개선사항
    • 프로젝트/솔루션 내 파일 제외 기능을 이제 사용 가능.
    • Nuget package 복구 시 info 바 생성
      info bar
    • 상속 패키지 오류를 이제 package.json이나 솔루션 탐색기에서 볼 수 있음
      1
      2
      3
    • 패키지 상속 구조 개선
      4
      아이콘부터 각 패키지 및 클래스 라이브러리에 필요한 패키지나 라이브러리 구조를 볼 수 있음.

ASP.NET Beta 7

()

  • a

ASP.NET Beta 6

()

  • a

ASP.NET Beta 5

(2015-06-30)

  • DNX
    • Nuget 3.x 패키지 목록 나열 지원
    • DNX에서 포터블 닷넷 실행환경을 제시하고 빌드하는 새로운 닷넷 Target Framework Moniker (TFM) 지원
    • project.json에 Nuget 패키지 정보를 포함할 수 있음
    • JSON.NET 버전 고정 제거
    • 새로운 IRuntimeEnvironment
      즉, 신규 OS에 대한 실행 환경을 정의하는 인터페이스.
  • ASP.NET 5
    • HttpContextConnection 속성을 추가하여 추가적인 접속 정보 수집 가능
    • 다국어 추상 정의 예제
    • ASP.NET 호스팅 시 아무 키를 누르거나 통상적인 Ctrl+C 키로 서버를 종료할 수 있음
  • MVC 6
    • Razor 템플릿 엔진에 C# 6.0 표준 사용 가능
    • MVC 전역 설정 구성 및 단순화 (특히 전역 HTML Helpers)
    • JSON Helper 추가. 사용법 : @Json.Serialize(Model)
    • 라우팅 토큰 기본값을 간편하게 지원
  [Route("Products/[action]", Name = "[actions]Products")]
  public class ProductsController
  {
      public void Add() { }
      public void Buy() { }
  }
  • 이미지 태그 헬퍼에서 캐싱 기능 추가
<img asp-file-version="true" src="~/images/my_cool_image.png" />
  • 태그 헬퍼에서 Dictionary 속성 바인딩 지원
<a asp-action="Edit" asp-route-id="@index">Edit</a>
  • 서버 개발 상황에 맞는 태그 헬퍼 바인딩 지원

여기까지.
베타 5부터 기재하는 이유는 ASP.NET 개발 블로그에서 개별로 집필하는 부분이 Beta 5부터이기 때문이며,
이때부터 크로스 플랫폼에 초점을 맞추기 시작했기 때문이다.

composite / 2015년 10월 16일 / Piss Development

답글 남기기

Your email address will not be published / Required fields are marked *