ラベル Web の投稿を表示しています。 すべての投稿を表示
ラベル Web の投稿を表示しています。 すべての投稿を表示

2010年3月19日金曜日

[Squeak] Seaside 3.0 セッションの設定

Seaside 3.0のセッションをCookieベースにする方法や,セッションの有効時間の方法についてメモします.
セッションの有効時間の方法は本当にこれでいいのか微妙です.

2.8系
initialize
"self initialize"
| app |
app := self registerAsApplication:'sas'.
app preferenceAt: #useSessionCookie put:true.
app preferenceAt: #sessionExpirySeconds put: 3600.
^application


3.0系
initialize
"SASFComponent initialize" 
|app|
app := WAAdmin register: (self asApplicationAt: 'sas').
app preferenceAt: #useCookies put: true.
app cache expiryPolicy configuration at: #cacheTimeout put: 3600.


一時変数appに格納されるのは,WARegistryクラスを継承したWAApplicationのインスタンスです.

3.0系でも,WAComponent>>(class)registerAsApplication: があるので,アプリケーションの登録方法は従来通りできますが,別の方法もあるようなので,メモしておきました.

2010年3月17日水曜日

Seaside 3.0 レスポンス

Seaside 3.0のレスポンスに関するメモ.
SVGのXML情報を返すための方法.
(さらにattachmentWithFileName: を使ってファイルとして返すのもいいと思う)
慣れないとな.

2.8系
renderContentOn:html
self session returnResponse: (WAResponse new
contentType: 'text/xml';
nextPutAll: self makeSVG;
yourself)


3.0系
renderContentOn: html
self requestContext respond: [:response |
response
initializeOn: self makeSVG ;
contentType: 'text/xml']


Seaside 3.0を使ってみた感想

12月にSmalltalkの勉強会でSeaside 3.0の紹介を聞きましたが,ようやく自分でもSeaside 3.0を使うことに.

学内のWeb APを作るのにSeaside 3.0で作っています.
SeasideでWeb APを作る理由としては,ポータブルな開発環境で,バックアップが楽であり,そしてイメージを起動すれば,すぐにWeb APが起動できるところ.
(でも,一番の理由は作りやすいから! デバックが楽ですからね)

基本的なところは,今までと同じですが,変更点が多いと思った.
その中でも,Ajaxのフレームワークが充実したので,うれしい.

今回から
self requestContext

というのが導入されたみたい?
そのため,レスポンス周辺のコードを変更しないといけなかったので,ちょっと大変です.

self session returnResponse: 

で返す方法は好きだったのに.


Seasideでは,何故iframeしかコンポーネントの埋め込みができないんだろう.
objectタグでコンポーネントの埋め込みも有効にしたほうがいいと思う(するべきだと思う).
XHTMLではiframeタグは禁止されているのに,何故なんでしょうね.
そのため,自分は使うときは,WAIframeTagを参考にWAObjectTagを改良してしまう.

それにしてもSeasideに慣れていると他のWeb Frameworkでの開発方法を忘れてしまいそうになるので,怖い.