• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/Web]] [[:t/実装]]

#contents

*やること [#z16bf006]
***フレームワーク/Webアプリケーション [#g07f7a78]

*これから考えること [#x4181b9e]
[[フレームワーク]]の役割を[[フレームワーク/Webアプリケーション]]と[[フレームワーク/WikiEngine]]で分担。

**MVC [#j92a77be]
***ユースケーススコープ [#tf96b817]
Controller = Usecase
その中だけで有効なデータ。
***ビュー [#d5902bbd]
RIGHT:[[:t/レイアウト]] [[:t/ビュー]]

***選べるビュー [#tad36558]
リクエストとレスポンスの分離。

***変形MVC [#y6c63ec3]
#ref(:Image/MVC.svg,100%)
[[docs.google.com>https://docs.google.com/file/d/0B9sAsjPbXxUHdmJPc3hTR05SM0E/edit?usp=sharing]]

RIGHT:[[:t/MVC]] [[:t/Web]]

**設定方法を用意 [#q315f963]
***Webアプリの設定はWikiページに書けない [#h8f9f582]
RIGHT:[[:t/Web]] [[:t/設定]]

**エラー対処 [#r1a046f9]
***フレームワーク/エラーメッセージにクラス名 [#wfca3d21]
***フレームワーク/エラーページにクエリーを [#m55bafda]
HTTPのGETメソッドのときは…URLをデコードして表示するなら意味がある。
RIGHT:[[:t/UI]] [[:t/レスポンス]]


**セッションの用意 [#y9fd0b6b]
[[ページ/セッション]]の基礎。ページ/要素が扱うのはページでできたセッション領域のほう。


**最適化 [#v7bfbe43]
***フレームワーク/メモ化 [#x0e2ee71]
多段メモ化。


***リクエストとレスポンス [#t55ccd07]
-クライアントからのリクエストをフレームワーク/WikiEngineに渡す
→ [[全てURIで]]
-フレームワーク/WikiEngineからの出力待ち
それをレスポンスにしてクライアントへ。
レスポンスにはクライアントアプリのコードも含む。データ付きのクライアントアプリを送信。
数種類の出力バッファーを用意。グローバル変数に追加していく。HTMLヘッダー・bodyの冒頭・bodyの末尾・ページ内の記述された箇所(これが基本)など。ページ/要素でも(どこに書かれていても)HTMLヘッダー出力などができる。

RIGHT:[[:t/Web]] [[:t/Wiki]] [[:t/実装]]

**認証 [#qb08d8ea]
-ログイン/ログアウト?
オープン認証なんかはWikiEngineよりもこちらで。→WikiEngineは外からユーザーオブジェクトを受け入れることになる。
-ユーザー情報の用意?
認証済みユーザーオブジェクトをフレームワーク/WikiEngineに与える。内容は空。認証に必要な情報しかない。WikiEngine側で情報補完してもらう。ユーザー情報/権限はページに記述するので。


**その他、実装上の細かいこと [#oc22926f]

***フレームワーク/WikiEngineの実装案より [#z7ff3a7d]
WikiEngineではなくこちらで。

-ユースケースクラス
別記。
-ログイン→HTTP_REFERERにリダイレクト
-アクセスログはページに残す
→フレームワーク/Webアプリケーションのログファイルと、フレームワーク/WikiEngineのページに残すログは別。

RIGHT:[[:t/Web]] [[:t/実装]]

***フレームワーク/疑似言語コード・Perlコード [#zc781962]
***フレームワーク/出力の統合はどうやるか? [#ef44a1d2]
***[[:t/実装]] [#a574aa2f]