ASP.NET 5 RC1 요약

Visual Studio 2015 (Update 1) 개선점

설치 방법 (공통, 윈도우 기준)

새 프로젝트로 ASP.NET 프로젝트를 선택하고 만들면, 아래 그림과 같이 Get ASP.NET 5 RC가 생긴다.

Before

클릭하면 설치된다고 한다.

(역자 주 : 댓글 보고에 따르면, 0x80091007 - The hash value is incorrect 이런 식의 메시지로 만약 설치가 안되는 사용자가 있다고 한다. 이 경우, 베타 버전의 DNVM 및 Visual Studio Tools 를 모두 제거한 다음 최신 ASP.NET 5 설치 방법 페이지에 가서 Download 라고 써있는 필요한 것들을 다시 받거나 Command line 방법으로 다시 설치하면 된다.)

설치 후, ASP.NET 5 Template에 3가지 템플릿이 뜨면 성공이다.

After

맥과 리눅스는 Command line tool로 설치하면 되며, 설치가 안될 경우 또한 지우고 다시 설치하면 된다.

Bootstrap Snippet

Visual Studio도 이제 IntelliJ IDEA 처럼 확장 추천 기능이 생긴 모양이다. 페이지를 만들어 bootstrap을 쓰게 된다면
아래 화면처럼 추천 확장하는 노란 탭이 뜨면서 클릭하면, Bootstrap snippets 확장을 설치할 수 있다.

Extenstion

그럼 도구 상자에 Bootstrap 도구가 생길 것이다.

Tools

New Bower Package Manager UI

여태까지는 제이쿼리 같은 자바스크립트 프레임웤 등을 Nuget으로 설치할 수 있었다. 근데 관리가 너무 비효율적이라 원성도 잦았다. 흐음.. 아무래도 자바진영의 WebJar도 좀 그럴텐데…
어쨌든, ASP.NET 5 프로젝트에서 아예 프론트엔드 패키지 관리를 Bower로 사용하기 시작했다.

Bower

오른쪽 마우스 클릭으로 백엔드는 기존처럼 Nuget, 프론트엔드를 Bower로 패키지 관리를 할 수 있게 된다.
크로스 플랫폼 및 다환경간 접근 차원에서는 괜찮은 정책이다.

UI

그것도 모자라 Visual Studio 에서는 프론트엔드 패키지에 대해서 이제는 Nuget으로 설치했다면 Bower로 설치하라고 안내까지 뜬다.

nuget

MVC 스캐폴딩

이제 ASP.NET 5 에서도 ASP.NET MVC 5 처럼 스캐폴딩 항목 추가 기능이 생겼다.

Scaffold

근데 필자는 ASP.NET MVC보다는 NancyFX를 더 많이 써온 터라 이 부분에 대해서는 지식이 부족한 점 양해 바란다.
이 기능으로 컨트롤러와 뷰 또는 API 컨트롤러를 한번에 생성 가능하다는 이점이 있다고 한다.

솔루션 탐색기 정리작업

Explorer

이제 project.json 같은 고급 설정 파일을 가렸다. 솔루션 탐색기에서 안보일 뿐 실제로는 당연히 존재한다. 프로젝트 관리를 용이하게 하기 위해서인 듯 하다.
그리고 hosting.ini 파일 대신 hosting.json 으로 교체했다. 내용은 hosting.ini와 비슷하며, 없어도 돌아가는데 지장 없다. 이 경우 자체 웹 서버 가동 시 포트는 5000번이 할당될 것이다.

프레임워크 및 런타임 개선사항

Static Void Main

콘솔 프로그램 실행하는 메인 메소드를 아래와 같이 바꿨다.

public static void Main(string[] args) => WebApplication.Run(args);

C# 6.0 문법으로. 대부분 할 게 없으니까. 물론 내용이 좀 들어가야 한다면 그땐 종전 방식대로 사용하면 되지만.

Cross-platform SQL Client

이제 MSSQL 클라이언트 라이브러리를 크로스 플랫폼으로 밟고 있다.
아직 여러 건의 레코드셋 기능을 지원하지 않는다는 단점이 있지만, 이는 곧 해결될 것이라고 한다.
이제 윈도우를 비롯해 맥과 리눅스까지 LocalDB가 지원된다는 것이다.

SQLClient

아직 베타이지만, 아래 연결 문자열을 등록하면 된다.

"ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=aspnet5-MyCoolWebsite;Trusted_Connection=True;MultipleActiveResultSets=false"

몇몇 플랫폼에서 System.Net.Security 패키지가 정상적으로 설치되지 않는 문제점이 있을 수 있다고 한다. 이 경우 명시적으로 System.Net.Security 패키지를 추가하면 해결은 가능하다.

Default webroot folder

베타 버전까지는 project.json 에서 명시적으로 webroot 폴더를 지정했고, 없으면 더이상 돌아갈 이유가 없었다.
하지만, 이제부터 굳이 지정을 안해도 기본값으로 프로젝트 내 webroot 폴더를 가리키도록 하였으며, 이 폴더 조차 없을 경우 프로젝트 폴더를 가리키되, 정적 파일로 제공하는 방식으로 바뀌었다.

Strong Named Framework Libraries

윈도우는 파일명에 대소문자 구분을 안하지만, 유닉스 기반은 대부분 파일명 등에 대소문자를 구분한다. 그래서 닷넷 환경에서 크로스 플랫폼을 위해서 대소문자를 구분할 수 있는 강력한 이름 정책이 당연히 필요했고, 이를 적용했다. 패키지 명도 당연히. 윈도우 GAC 내 어셈블리도 모조리 대소문자 구분하도록 강력한 이름으로 지정하도록 하며, 만약 커스텀 GAC이 있다면 강력한 이름으로 적용해야 한다.

새로운 .NET 플랫폼 표준 소개

새로운 크로스 플랫폼 닷넷 환경이 ASP.NET 5만 맞춰져 섭섭해 보였던 개발자들도 있을 것이다. 하지만 이미 뒤에서 닷넷 개발환경 표준을 만들고 적용하고 있다.
여태까지 닷넷 개발환경은 Visual Studio 기준에서 만들여졌다고 봐도 무방할 정도로 닷넷 개발 환경이 툴에 너무 의존적이었다.
오해입니다. 오해! 닷넷 개발환경 표준을 참고하라.
각 플랫폼 및 닷넷 버전별로 버전을 표시하고 이를 관리하는 표준을 지원하여, Visual Studio 뿐만 아니라 다른 텍스트 에디터나 IDE 등의 개발 환경에서도 닷넷 개발이 편리해지도록 꾀하고 있다.

이 표준은 ASP.NET 5 RTM이 나오면 그 때 확정이 된다고 한다.

현재 ASP.NET 5 프로젝트를 만들면 dotnet5.4 라는 프로파일이 정의되는데, 이는 .NET 4.6, .NET Core 5,Mono 에 호환되는 프로파일이라 보면 된다.

기타 변경사항

Github Issues를 통해 여태까지 바뀌거나 수정, 개선한 사항들을 확인할 수 있다.

(필자는 NancyFX를 써와 Glimplise를 안써와서 이 부분은 따로 다루고 여기서는 다루지 않는다.)

요약정리

이제 RC를 통해 닷넷에 대해 크로스 플랫폼 개발환경을 적용하며, MS에서 지원하는 정식 개발환경으로 거듭고 있다.

  • live.asp.net 에서 커뮤니티 질문과 업데이트 소식 등을 실시간 또는 이전에 방송했던 소식을 받아볼 수 있다. 라즈베리에 닷넷도 돌렸다.
  • get.asp.net 항상 최신을 유지하라. 안되는 환경 붙들어 매는것보단 낫다.
  • docs.asp.net 에서 ASP.NET 문서 작성에 누구나 참여할 수 있다. 당연히 번역도 가능하다. 페북에 어느분이 번역해주신다는데 당연 환영!

이제 거의 완료되었다. 내년 봄까지 긴 시간이 남았다고 하지만 금방 지나갈 것이다. 이제 당신이 더 다양해진 ASP.NET 환경으로 개발할 앱은 무엇이 있을까?

composite / 2015년 11월 19일 / 미분류
태그:, , , , , ,

Comments

  1. itist - 2015년 11월 23일 @ 6:05 오후

    좋은 내용 잘 읽었습니다. 감사합니다!

    Reply

답글 남기기

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