Weitere ähnliche Inhalte
Ähnlich wie 何が変わった? VisualWorks 8.0 (20)
Mehr von Masashi Umezawa (20)
何が変わった? VisualWorks 8.0
- 6. Text2 とは
従来のTextを置き換えるもの
よりリッチなテキスト表現が可能に
○ イメージ埋め込み、ワードラップ、アクション
○ 行頭文字、アラインメント、アノテーション
○ Unicodeを意識した検索、検索ダイアログ、diffなど
実例:
システムブラウザのコードペインもText2で実装
- 8. Text2 の構成要素 (1)
Document
Text2の主要モデル
DocumentSegmentを集約
Zeroインデックス! (文字と文字の間を指すため)
DocumentSegment
テキストの特定部分(ボールド、イメージ埋め込みなど)
DocumentAction
Segmentの一種
○ リンクのクリックなど動作のある部分
- 9. Text2 の構成要素 (2)
Flow
2次元領域にテキストをレイアウトするためのモデル
FlowSegmentを集約
カーソル移動をサポート(何文字目、何行目)
FlowSegment
テキストの特定箇所をレンダリングするためのモデル
○ 改行部、行頭文字部、パスワード部など
- 10. Text2 の構成要素 (3)
DocumentView
Documentのビュー
選択範囲、編集範囲、編集履歴などを管理
DocumentEditor
編集可能なDocumentのビュー
InputEditor
行が1行に限定されたDocumentEditor
- 12. SiouX
新たに実装されたWebサーバ
軽量
Xtreamsベース
○ オンデマンドに必要部分のみをパースする
HTTPS, WebSocket, Servletもサポート
SeasideやAppeXのHTTPサーバとして動作
文字コードはデフォルトでUTF8
- 15. SiouXの例 (2)
サーバの起動
○ Responderにpathを指定して追加
server := Server id: 'HelloServer'.
responder := HelloResponder new.
responder path: '/hello'.
server addResponder: responder.
server listenOn: 8000 for: SiouX.HttpConnection.
server start.
- 16. AppeX
Webアプリフレームワーク
HTTP5の機能を活用
○ Server side events (SSE)
○ Session Storage
アノテーション活用でコード量削減
クライアントをJSで記述可能
○ JSとSmalltalkがWebSocketで通信
○ JS部分の開発もSmalltalkのIDEで書く
○ 既存JSのライブラリ取り込みが自由にできる
- 18. AppeXのサンプル(2)
サーバ側: Appex.Applicationを継承
Smalltalkで記述
applicationClientClassを実装し、Clientクラスと関連付け
クライアント側: Applec.ApplicationClientを継承
JSで記述
SimpleApp, SimpleAppClientはサーバ側のみの例
Chat, ChatClient の例が概観をつかむには良い
- 19. AppeXのサンプル(3)
Chat
クラスメソッド側
○ 静的コンテンツ
○ 各セッションで共通のサービスの実装
インスタンスメソッド側
○ セッション固有の処理を実装
ChatClient
インスタンスメソッドを見ると、JSが書いてある!
this.asyncMessageToServer('メソッド名') で非同期通信