LightNode - Micro RPC/REST Framework

13
LightNode - Micro RPC/REST Framework 2014/01/18 Yoshifumi Kawai - @neuecc

description

Metobeya Tokyo #3 http://neuecc.github.io/LightNode/

Transcript of LightNode - Micro RPC/REST Framework

Page 1: LightNode - Micro RPC/REST Framework

LightNode - Micro RPC/REST Framework

2014/01/18Yoshifumi Kawai - @neuecc

Page 2: LightNode - Micro RPC/REST Framework

Self Introduction

@仕事

株式会社グラニ取締役CTO

C# 5.0 + .NET Framework 4.5 + ASP.NET MVC 5

最先端C#によるハイパフォーマンスWebアプリケーション

@個人活動

Microsoft MVP for Visual C#

Web http://neue.cc/

Twitter @neuecc

linq.js - http://linqjs.codeplex.com/とか作ってます

Page 3: LightNode - Micro RPC/REST Framework

OWINOpen Web Interface for .NET

Page 4: LightNode - Micro RPC/REST Framework

HttpApplication PipelineBeginRequestイベントを発生します。AuthenticateRequestイベントを発生します。PostAuthenticateRequestイベントを発生します。AuthorizeRequestイベントを発生します。PostAuthorizeRequestイベントを発生します。ResolveRequestCacheイベントを発生します。PostResolveRequestCacheイベントを発生します。MapRequestHandlerイベントを発生します。PostMapRequestHandlerイベントを発生します。AcquireRequestStateイベントを発生します。PostAcquireRequestStateイベントを発生します。PreRequestHandlerExecuteイベントを発生します。要求に対応する IHttpHandlerクラスの ProcessRequestメソッド (または非同期バージョンの IHttpAsyncHandler.BeginProcessRequest) を呼び出します。PostRequestHandlerExecuteイベントを発生します。ReleaseRequestStateイベントを発生します。PostReleaseRequestStateイベントを発生します。UpdateRequestCacheイベントを発生します。PostUpdateRequestCacheイベントを発生します。LogRequestイベントを発生します。PostLogRequestイベントを発生します。

Page 5: LightNode - Micro RPC/REST Framework

Owin Pipeline

Request

Response

Framework

OWIN Middleware

Page 6: LightNode - Micro RPC/REST Framework

Middleware

Framework

OWIN Middleware

// Middleware = AppFunc のコードイメージ

try{

// 実行前アクション(外側から円の中央へ向かう)

// AppFunc = Func<IDictionary<string, object>, Task>;

await next(env); // 一つ円の内側へ

// 実行後アクション(円の中央から外側へ向かう)

}catch{

// 例外時アクション

}finally{

// Middleware終了時アクション

}

Page 7: LightNode - Micro RPC/REST Framework

Middleware

Framework

OWIN Middleware

// Middleware = AppFunc のコードイメージ

try{

// 実行前アクション(外側から円の中央へ向かう)

// AppFunc = Func<IDictionary<string, object>, Task>;

await next(env); // 一つ円の内側へ

// 実行後アクション(円の中央から外側へ向かう)

}catch{

// 例外時アクション

}finally{

// Middleware終了時アクション

}

FramworkとMiddlewareの間に特に違いはない、処理内容が大きなものや、後続にチェーンしないものを、便宜的にフレームワークと呼んでいる(私は)

Page 8: LightNode - Micro RPC/REST Framework

LightNode.NET’s Fastest REST Framework

Page 9: LightNode - Micro RPC/REST Framework

LightNodeとは

Micro RPC/REST Framework

http://neuecc.github.io/LightNode/

ASP.NET Web APIとかと同種の代物

超絶Lightweight、超簡単にサーバーAPIが作れる

パフォーマンスも超絶凄い、.NET最速

クライアントサイドのコード自動生成機能付き

OWIN上で構築されている

最先端!

開発した理由は主にここサーバーとクライアント、両方開発する時

最大のネックとなるから(自動生成でもSOAP/WCFは嫌だお)

Page 10: LightNode - Micro RPC/REST Framework

Demo...Create API Server and Upload to Azure Web Sites in 5 Minutes

Page 11: LightNode - Micro RPC/REST Framework

Fastest!

フレームワークでは最速!これより速いのは生ハンドラのみ

Page 12: LightNode - Micro RPC/REST Framework

Conclusion

Page 13: LightNode - Micro RPC/REST Framework

まとめ

未だかつてない簡単さ、しかも超高速

http://neuecc.github.io/LightNode/

Give Me Star!

簡単なの超大事、ASP.NET Web APIイラね

Azure Web Sitesイイね

超絶スピードで公開可能

勿論、ふつーのWindows Serverにもデプロイできますよ