10
Nitrogen Erlang ののののののののののの のの ののの のの 2009/4/15

Nitrogen Web Framework

Embed Size (px)

DESCRIPTION

Introduction about Nitrogen Web Framework

Citation preview

Page 1: Nitrogen Web Framework

Nitrogen

Erlangのウェブフレームワーク

ダオ ゴック タン2009/4/15

Page 2: Nitrogen Web Framework

特徴

• 規約のかげで設定が少ない• サーバー側 : イベント( Ajaxまたは Cometによる ViewとControllerとの間の通信)のサポートが強い

• ブラウザ側 :jQuery、 jQuery UI、 LiveValidateデータバインディング

• Viewテンプレート:作りやすい、使いやすい• Inets、Mochiweb、 Yaws上で実行可

Page 3: Nitrogen Web Framework

ソースコード

http://github.com/rklophaus/nitrogen/graphs/languages

Shell:少ないJavaScript:〜 Erlang

Page 4: Nitrogen Web Framework

イベント・モデル

Button1Button1

Button2Button2

( JavaScriptのイベント)通信: Ajax/Cometデータ: JSON

(リスポンス、 Cometのイベント)

通信: Ajax/Cometデータ: JSONコード: JavaScript

ブラウザ側

サーバー側

Button3Button3

データ検証データバインディングUIアップデートUIアニメーション効果ドラグ&ドロップ…

http://voodootikigod.com/2008/10/02/ajax-head-design-pattern/

View Controller

Page 5: Nitrogen Web Framework

流れ

ウェブサーバー (Inets/Mochiweb/Yaws)ウェブサーバー (Inets/Mochiweb/Yaws)

wf_inets:do/wf_mochiweb:loop/wf_yaws:outwf_inets:do/wf_mochiweb:loop/wf_yaws:out

PageModule = wf_platform:route(URL)URLが /web/blogs → PageModuleが web_blogsにな

PageModule = wf_platform:route(URL)URLが /web/blogs → PageModuleが web_blogsにな

リクエストを処理するプロセスの dictionaryをリセット

(1リクエスト → 1処理プロセス )

リクエストを処理するプロセスの dictionaryをリセット

(1リクエスト → 1処理プロセス )

PageModule:mainPageModule:main

PageModule:event(EventTag)PageModule:event(EventTag)

wf_platform:build_responsedictionaryにあるものからリスポンスを生成

wf_platform:build_responsedictionaryにあるものからリスポンスを生成

フレームワーク

Postbackリクエスト(Ajax/Comet)

普通リクエスト

アプリケーション:wf: xxx関数を呼び出す

wf: xxx関数が dictionaryにコンテンツや headerなどをセットする

リクエスト

リスポンス

Page 6: Nitrogen Web Framework

wfモジュル

wf_utils文字列のフォマット

wf_utils文字列のフォマット

wf_platformサーバータイプに依存するもの: cookie

など

wf_platformサーバータイプに依存するもの: cookie

など

wf_sessionセッションの管理

wf_sessionセッションの管理

wf_bindデータバインディン

wf_bindデータバインディン

wf_pathHTMLエレメントの id

の生成

wf_pathHTMLエレメントの id

の生成wf_convert

HTMLエンコードなどwf_convert

HTMLエンコードなど

wf_renderHTML、 JavaScriptの生

wf_renderHTML、 JavaScriptの生

wf_cometwf_comet

wf他のモジュルに

delegateする

wf他のモジュルに

delegateする

……

Page 7: Nitrogen Web Framework

活動

• 2008〜• HP: http://nitrogenproject.com/• メーリング・リスト :

http://groups.google.com/group/nitrogenweb142メンバー〜 8通 /ー日

Page 8: Nitrogen Web Framework

ソースコードのコミット

Page 9: Nitrogen Web Framework

http://github.com/rklophaus/nitrogen/graphs/impact

Page 10: Nitrogen Web Framework

問題点

(普通ウェブ開発者にとっての順番 )• DB layerなし• RESTなし• i18nなし• HTMLコンテンツ・キャッシュ(ページ・キャッシュ、フラグメント・キャッシュ)なし

• SOAPなし