주간닷넷 2016년 1월 19일
여러분의 관심 덕분에 주간닷넷은 이제 매주 10,000명 이상이 살펴보시는 소식지로 자리매김 하였습니다. 다시 한번 감사의 말씀을 드립니다. 앞으로도 지속적인 관심 부탁드리며 알찬 소식 전할 수 있도록 노력하겠습니다. 지난 호를 살펴보시려면 주간닷넷 페이지를 방문해 보시기 바랍니다. 여러분들의 적극적인 참여를 기다리고 있습니다. 혼자 알고 있기에는 너무나 아까운 글, 소스 코드, 라이브러리를 발견하셨거나 혹은 직접 작성하셨다면 Gist나 주간닷넷 페이지를 통해 알려주세요. .NET 관련 동호회 소식도 알려주시면 주간닷넷을 통해 많은 분과 공유하도록 하겠습니다.
On.NET 소식
지난번 On.NET 유튜브 동영상 인터뷰에는 Jonathan Chambers 를 모시고 Unity 에 관해 이야기 나누는 시간을 가졌습니다. 이번 On.NET 유튜브 동영상 인터뷰는 F# 언어의 설계자이자 아키텍트인 마이크로소프트 연구소의 Don Syme 과 함께 F# 에 대해서 이야기를 나누었습니다.
금주의 패키지 #1 – NATS client
마이크로서비스와 IoT를 위해서는 고속의 안정적인 통신이 가능한 분산환경이 필요합니다. NATS 는 이러한 요구사항을 수용하기 위한 고성능의 클라우드 기반 메시징 시스템으로 유명한데요. NATS 의 닷넷용 클라이언트 라이브러리는 초당 3 백만 개의 메시지를 처리할 수 있습니다.
다음 코드는 “foo” 라는 이름으로 Company 객체를 메시지 버스로 보내는 방법을 보여줍니다.
이 메시지를 처리하는 쪽에서는 “foo” 라는 이름의 메시지들을 비동기적으로 수신하여 처리합니다.
NATS 의 닷넷 클라이언트에 관한 자세한 정보는 NATS In Microsoft .NET 에서 확인하시기 바랍니다.
금주의 패키지 #2 – VerbalExpressions
정규 표현식을 읽고, 쓰고, 디버깅하는 작업은 쉽지 않습니다. 정규 표현식은 사용하기 어렵지만, 매우 강력한 도메인 특화 언어(DSL: Domain Specific Language)라는 장점이 있습니다. VerbalExpressions 라이브러리는 정규 표현식을 사용하기 쉬운 구문으로 표현 해 줄 수 있도록 도와줍니다.
정규 표현식 문법을 사용하셔도 되지만, VerbalExpressions 을 이용하시면 좀 더 가독성이 뛰어난 코드를 만드실 수 있습니다.
금주의 비주얼 스튜디오 플러그인 - Alive
Alive 플러그인 은 타이핑 시 변경되는 코드를 시각화해주는 멋진 도구입니다. 1분 가량의 아래 동영상을 보는 것 만으로도로 Alive 플러그인의 강점을 한눈에 살펴보실 수 있습니다.
.NET 소식
- Introducing ASP.NET Core 1.0 and .NET Core 1.0 : ASP.NET 5, .NET Core 5 의 이름이 각각 ASP.NET Core 1.0, .NET Core 1.0 으로 바뀌었습니다. Scott Hanselman 이 이를 소개합니다.
- Learn Roslyn now: the Emit API : Josh Varty 가 Roslyn 의 컴파일 결과물을 디스크나 메모리에 출력할 때 사용할 수 있는 Emit API 를 설명합니다.
- NBench performance testing code throughput : Andrea Angella 가 2주 전에 Petabridge 에서 소개한 NBench 를 자신만의 방식으로 설명합니다.
- 비주얼 스튜디오 플러그인 - VS Constructor Field Refactoring : Sébastien Ros 가 생성자 기반의 의존성 주입 플러그인을 제작해 소스코드와 함께 공개했습니다.
- How to optimize JSON.NET serialization performance : Tom DuPont 는 리플렉션이 아닌, 사용자 정의 JsonConverter 를 이용해 Json.NET 의 성능을 개선하는 팁을 공유했습니다.
- .NET method inlining and loops : 릴리즈 로 코드를 빌드하면 일부 코드를 인라인화 하여 성능을 향상 시킵니다. Dmitry Orzhevsky 가 코드를 작성하고 테스트 하는 과정에서 발견한 루프 문 내의 인라인화 규칙을 설명합니다.
ASP.NET 소식
- What’s New with ASP.NET MVC 6 : Ugo Lattanzi 가 ASP.NET MVC 6 의 변화를 소개합니다.
- Using an ASP.NET module to debug async calls : Xing (Shin) Mao 는 TPLEventListenerModule 을 이용해 비동기 호출을 디버깅하는 방법을 설명합니다.
- Setting up ASP.NET v5 (vNext) to use JWT tokens (using OpenIddict) : Capesean은 ASP.NET v5 에서 JWT 토큰을 사용하는 방법을 설명합니다. (참고로 JWT 토큰은 인증 당사자 간 클레임의 표현을 안전하게 만드는 방법에 관한 공개된 업계 표준으로 현재 RFC 7519 에 명세되어 있습니다.)
- Configuring SQL Server for session state in MVC 6 : Mike Brind 는 SQL 서버를 이용해 MVC 6 환경에서 세션 상태를 공유하는 방법을 소개합니다.
- Develop ReactJS + ASP.NET Web API apps in Visual Studio 2015 : Martijn Boland 는 비주얼 스튜디오 2015 에서 ReactJS 와 ASP.NET Web API 응용 프로그램을 개발한 경험담을 소개합니다.
- ASP.NET Core 1.0 MVC 6 file upload with Sql Server FileTable : Damien Bod 는 ASP.NET Core 1.0 MVC 6 기반의 환경에서 SQL 서버의 파일 테이블에 직접 파일을 올리는 방법을 설명합니다.
- Running the KestrelHttpServer on Linux with CoreCLR : Mike Hadlow 는 리눅스 운영체제상에서 CoreCLR 로 KestrelHttpServer 웹 서버를 구동하는 방법을 설명합니다.
F# 소식
- Build proto-compiler using coreclr based LKG : .NET Core 용 F# 컴파일러가 오픈 소스 F# 컴파일러를 고려하기 시작했습니다.
- preliminary support for F# in the new dotnet CLI. : Erico Sada 는 새로운 dotnet CLI 에 F# 지원 기능을 제한적으로 시작했습니다.
- merging part of the F# Compiler Service : Don Syme 이 현재 F# 컴파일러 서비스 기능을 Visual F# 컴파일러 오픈소스 프로젝트에 추가하고 있습니다.
- Suave v1.0.0 : Suave 가 개발 중인 경량의 F# 웹 개발 라이브러리 버전이 드디어 1.0이 되었습니다.
- Riccardo Terrell의 Building Concurrent, Fault-tolerant, Scalable Applications in F# with Akka.NET
- Reid Evans의 A Developer’s Journey from OO to Functional
- Scott Wlaschin의 Designing with Capabilities
- Isaac Abraham의 Freeing Your Azure Data with F# Type Providers