created monday 11 april 2011
現在的sns 都還是重新整理 頁面。一個一個 的頁面重新整理。跳轉到不同用的頁面。這樣對于程式設計是很友善維護成本也很低。
但是,考慮的技術是不斷的更新的。用現在的技術已經可以構造一個web2.0 的sns了。
wave 現在已經開源了。代碼裡面有很漂亮的ui界面。可以用這個做為一個sns的皮膚。
wave的設計還是有點像一個 郵件系統。有些東西不琢磨就不知道怎麼用。
但是漂亮無疑是很重要的。有了gwt一個 富用戶端的程式建構就可以很複雜了。
而且速度會很快。雖然現在的網絡是越來越快。但誰不希望再快點呢。
如果 把現在的 sns 再 套上一個 wave的皮膚。用gwt 完全實作 一個 全站的 ajax 應用。
應該會吸引更多人的使用。也比原先的 sns 設計使用上 友善很多。還可以做的更複雜。
1),日志,新聞,讨論等資訊可以直接在目前頁面彈出div 彈出視窗顯示。
2)圖檔照片的預覽 可以使用 幻燈效果。
3)可以無縫的 和 google的 map 搜尋結合。(有google map 的gwt lib)
4) 在一個 頁面可以做跟多的事情。就像是 3d 一樣。頁面有層次感。
檢視了下 wave 的代碼。還是非常的複雜的。而且下載下傳了并不能一次編譯通過。還有jar包的問題。
在包 org/waveprotocol/wave/client/widget 下是一些基本的元件
org.waveprotocol.wave.client.widget.button
org.waveprotocol.wave.client.widget.common
org.waveprotocol.wave.client.widget.generic
org.waveprotocol.wave.client.widget.menu
org.waveprotocol.wave.client.widget.popup
org.waveprotocol.wave.client.widget.progress
org.waveprotocol.wave.client.widget.toolbar
剛開始看popup 視窗。
// 桌面視窗
desktoppopupchrome desktoppopupchrome = new desktoppopupchrome();
// 顯示标題欄
desktoppopupchrome.enabletitlebar();
dropdownpopuppositioner dropdownpopuppositioner = new dropdownpopuppositioner();
centerpopuppositioner centerpopuppositioner = new centerpopuppositioner();
desktopuniversalpopup desktopuniversalpopup = new desktopuniversalpopup(
rootpanel.get().getelement(), centerpopuppositioner,
desktoppopupchrome, false);
// 顯示
desktopuniversalpopup.show();
// 設定标題
desktopuniversalpopup.gettitlebar().settitletext("1234");
// 添加彈出視窗内容
desktopuniversalpopup.add(new html("普通html元件"));
// 設定大小
desktopuniversalpopup.setpixelsize(200, 200);
如果繼續下去應該可以将這些元件都研究透徹。
2,如果用gwt 了在用spring hibernate 就顯得有些複雜了。
其實可以用簡單的架構 guice3 其中 guice3 還對 jpa 進行了事物的封裝。
持久層 更簡單速度快。
public class guicelistener extends guiceservletcontextlistener {
public injector getinjector() {
return guice.createinjector(
new jpapersistmodule("jpa_unit"), new servletmodule() {
protected void configureservlets() {
bind(basedao.class).to(jpabasedao.class).in(
singleton.class);
bind(userinfoservice.class)
.to(userinfoserviceimp.class).in(
singleton.class);
}
});
}
@transactional 标記下就可以實作事物,也不用考慮開關閉 連接配接的問題了。
guice 比起 spring 更加的輕量速度 也快點。記憶體也要節省。
3,作web的 sns 不比做 管理系統 ,做應用。隻要實作業務邏輯就行了。ssh 做項目 ,做管理系統
實踐證明是非常的不錯的。 至于做 sns 沒有說不行。隻是想 提出一個不同的設想。
一個不同的解決方案。
當然這個隻是一個初級的設想離整個 sns的完成還差很遠呢。。
如果有興趣的可以繼續關注。
最後提供 剛研究的 wave 的代碼(不是wave的全部,隻是挑揀出可以運作的部分,可以到waveprotocol項目去下載下傳全部代碼)。
guice的代碼 暫時還沒有添加進來。