一个基于Wave GWT Guice 的Sns 设想

一个基于Wave GWT Guice 的Sns 设想

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);

                }
            });
}

}

由guice 创建 一个 JpaPersistModule 然后就可以直接在service里面使用
@Transactional 标记下就可以实现事物,也不用考虑开关闭 连接的问题了。

guice 比起 spring 更加的轻量速度 也快点。内存也要节省。

3,作web的 sns 不比做 管理系统 ,做应用。只要实现业务逻辑就行了。ssh 做项目 ,做管理系统
实践证明是非常的不错的。 至于做 sns 没有说不行。只是想 提出一个不同的设想。
一个不同的解决方案。

当然这个只是一个初级的设想离整个 sns的完成还差很远呢。。
如果有兴趣的可以继续关注。
最后提供 刚研究的 wave 的代码(不是wave的全部,只是挑拣出可以运行的部分,可以到waveprotocol项目去下载全部代码)。
guice的代码 暂时还没有添加进来。

时间: 2024-11-05 03:13:17

一个基于Wave GWT Guice 的Sns 设想的相关文章

Mozilla 正在打造一个基于情境的 Web 推荐系统

Mozilla于今日宣布了一个名叫"Context Graph"的新项目,以打造一个能够更好地理解主题.发现可替代的问题解决方案.让浏览器不要求输入就能够提供实用信息的"更好的前进按钮"."情境图"是web推荐系统的一个设想,有助于该公司开发一个能够规模化理解浏览器活动的解决方案.它可以尝试理解人们的输入和浏览操作,解锁下一代互联网web内容发现的功能.情境图的另一个示例,是搞掂新鲜的事儿,比如修理自行车.Context Graph应该能够深入链

格式-如何写一个基于RFID的安全门系统功能

问题描述 如何写一个基于RFID的安全门系统功能 要写一个关于RFID方面的安全门系统,就是图书馆那种,借书时没有登记就把书带出去时就会报警,怎么写,有一定的格式么?主要写什么,系统有哪些功能??

怎么更好地完成一个基于TOP的APP设计?

文章描述:不要让你的产品停留在实验室 抓?昂诵男枨蟆? "赢在淘宝"的应用持续飙升,在距离截止日期还剩两天的时候,已经突破250个了,这个数量还真有些出乎我们的意料.在试用这些应用的时候,发现很多让人眼前一亮的创意,但是当进一步将这个应用和市场结合的时候,就会发现出现"实用断层",也许是因为过于聚焦在"创意"本身,所以在这些应用的设计中往往忽略了用户的核心需求,或者说是对用户核心需求的关注度还不够.产品设计没有通用的理论可以参照,只是从一个终端用

一个基于ASP的标题广告管理系统(转)(一)

广告 标题广告是Web上最常见的广告形式.本文介绍了一个基于IIS和ASP的标题广告管理系统,该系统支持广告客户和广告的管理,能够随机选择广告并生成显示广告的HTML代码(但参考广告的等级.显示次数限制.点击次数限制),并能够记录广告显示.点击的历史纪录. 一.数据库表结构 标题广告也就是Banner Ad,是Web上最常见的广告形式.本文介绍的标题广告管理系统利用Access数据库db.mdb来保存数据.db.mdb包含三个表:Advertisement保存有关广告的信息,Advertiser

一个基于ASP的标题广告管理系统(一)

广告 标题广告是Web上最常见的广告形式.本文介绍了一个基于IIS和ASP的标题广告管理系统,该系统支持广告客户和广告的管理,能够随机选择广告并生成显示广告的HTML代码(但参考广告的等级.显示次数限制.点击次数限制),并能够记录广告显示.点击的历史纪录. 一.数据库表结构 标题广告也就是Banner Ad,是Web上最常见的广告形式.本文介绍的标题广告管理系统利用Access数据库db.mdb来保存数据.db.mdb包含三个表:Advertisement保存有关广告的信息,Advertiser

用Python编写一个基于终端的实现翻译的脚本

  用Python编写一个基于终端的实现翻译的脚本        为什么写这个程序,为什么不给这个程序配备gui?原因很简单,因为我是一个命令行控,Linux习惯了不习惯了鼠标,总觉得点着不如敲命令快,各位在看这篇文章就说明和本人有相同的爱好.这个用python写的翻译工具是通过google来实现的,由于google返回的数据不是很规范(或者说我没有找到规律),现在前三项能正常显示(源词,翻译结果,和汉语拼音).下面的词性和其他释义可能不同,见谅,望大神可以指点下小弟和帮小弟完善,这里赶紧不尽.

一个基于redis和disque实现的轻量级异步任务执行器

简介 horae是一个基于redis和disque实现的轻量级.高性能的异步任务执行器,它的核心是disque提供的任务队列,而队列有先进先出的时序关系,顾得名:horae. horae : 时序女神,希腊神话中司掌季节时间和人间秩序的三女神,又译"荷莱". horae的关注点不是队列服务的实现本身(已经有不少队列服务的实现了),而是希望借助于redis与disque提供的纯内存的高性能的队列机制,实现一个异步任务执行器.它可以自由配置任务来自哪种队列服务,它不关注任务执行的最终状态(

关于实现一个基于文件持久化的EventStore的核心构思

大家知道enode框架的架构是基于ddd+event sourcing的思想.我们持久化的不是聚合根的最新状态,而是聚合根产生的领域事件.最近我在思考如何实现一个基于文件的eventstore.目标有两个: 1.必须要高性能: 2.支持聚合根事件的并发持久化,要确保单个聚合根实例不会保存版本号相同的事件: 事件持久化高性能 经过了一番调研,发现用文件存储事件非常合适.要确保高性能,我们可以顺序写文件(append),然后随机读文件.之所以要随机读文件是因为在当某些command由于操作同一个聚合

linux-想做一个基于图像对比视频监控的监控系统应该看哪些书籍或者推荐学习什么?

问题描述 想做一个基于图像对比视频监控的监控系统应该看哪些书籍或者推荐学习什么? 基于mini2440来做的,主要是通过图像对比看当前采集到的数据和之前的有没有变化,来决定采集到的数据要不要存储.