아직 ASP.NET Windows 플랫폼에서만 실행된다고 생각하는 사람들이 많겠지만 MS의 친 오픈소스, Linux 정책에 따라서 이제 Linux, Mac 에서도 실행된다.

 

사실 이전에도 Mono를 통해서 ASP.NETWindows 이외의 플랫폼에서 실행할 수 있었다. 그러나 이것은 Windows에 비해서 성능이 좋지 않았다. 이에 비해 현재 MS가 직접 만들고 있는 ASP.NET 5는 성능을 중요시 여기고 있다.

 

 

ASP.NET 5을 호스팅 하는 방법은 2가지 있다.

1. Microsoft.AspNet.Loader.IIS (Helios)

: IIS에서 호스팅. 기존처럼 IIS 모듈을 사용.

2. Microsoft.AspNet.Server.WebListener

: IIS에 의존하지 않고 http.sys 위에서 직접 동작하는 경량 서버.

3. Microsoft.AspNet.Server.Kestrel (Kestrel)

: libuv 라는 라이브러리 베이스의 크로스 플랫폼 서버

(현재 1번은 제외 되었다. IIS 8 이후의 HttpPlatformHandler와 ASP.NET 5 Kestrel server만 사용한다. 이것은 현재 Azure의 WEB.App에서 node.js 나 python 응용 프로그램을 호스팅하는 방식과 동일하다.)

 

이 중 3번이 설명처럼 linux, mac 에서 ASP.NET을 실행할 때 사용하는 서버이고, 이것은 Node.js에서 비동기I/O 부분을 담당하고 있는 libuv으로 만든 것이다.

MSNode.js 개발에 직접 참여하고 있어서 libuv에 대해서 잘 알고 있고, 성능에 대해서 인정하고 있기 때문에 크로스플랫폼용 네트워크 엔진으로 사용하고 있는 것 같다.

 

libuv의 성능에 대한 검증은 이미 node.js를 통해서 검증 받았으므로 ASP.NET 5 linux에서 사용할 때 성능에 대한 걱정은 하지 않아도 될 듯하다.

 

 

ps: 현재 ASP.NET 5 정식 버전은 20161분기를 목표 중이다. 지금은 완성은 되지 않았지만 linuxmac에서 실행되는 버전은 만져 볼 수 있다.

얼마 전에 본 ASP.NET 팀의 근황에서는 커뮤니티와 협력으로 성능 최적화에 공을 들이고 있었다.



저작자 표시
신고
by 흥배 2015.10.21 08:00

libuv Non-Blocking I/O를 추상화한 wrapper 라이브러리로 멀티 플랫폼, 멀티 프로그래밍 언어(Rubym Lua, PHP, C# )에서 사용하는 것을 목표로 하고 있습니다.

현재 libuv를 사용하는 대표적인 것으로는 Node.js가 있습니다.

Node.js는 원래 libev libeio를 사용하고 있었으나 Windows 플랫폼을 지원하게 되면서 이 두 라이브러리를 대신하여 libuv를 사용합니다.

 

Node.jslibuv 덕분에 현재 보다 더 다양한 플랫폼을 지원할 수 있고, Node.rb Node.cs 같은 것들이 나올 수도 있게 되었습니다.

 

libuv에 대한 더 자세한 것은 http://blog.nodejs.org/2011/09/23/libuv-status-report/ 에서 참고 하기 바랍니다.

libuv C#에서 사용하는 프로젝트는 https://github.com/kersny/libuv-csharp

웹서버에 사용하는 프로젝트는 https://gist.github.com/1195428

 

libuvhttps://github.com/joyent/libuv 에서 소스 코드를 받아 볼 수 있습니다.

 

libuv를 VC++로 빌드하기 위해서는 먼저 svn과 파이썬 2.7이 설치 되어 있어야 합니다.

svn은 커맨드 라인으로 실행해야 하기 때문에 커맨드 라인으로 svn 명령어를 실행하지 못한다면 silk-subversion을 설치해야 합니다.

 

Visual Studio 용 솔루션 파일 만들기

libuv 소스 코드의 압축을 푼 후 (제가 압축을 푼 곳 E:\Dev\CommonLib\joyent-libuv-9f6024a)

1. vcbuild.bat를 실행한다.

2. build\gyp\tools 디렉토리에 있는 petty_sln.py를 실행한다.

3. 압축을 푼 폴더에(E:\Dev\CommonLib\joyent-libuv-9f6024a) uv.sln 파일이 만들어져 있다

 

저작자 표시
신고
by 흥배 2011.10.17 09:00
| 1 |