该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2005-12-20
polygoncell 写道 一百多人看,却没有人回,想来应该是大家不开发rich client吧!估计论坛上朋友99.99% 都是开发Web application的。
呵呵,我来回一个。 对于我这种web application背景的人来说,你这篇文章是很有帮助的。 web开发正面临ajax和rich internet application的变革,你这里提到的GUI开发模式,web developers即使现在不熟,迟早也都要用到的。 美中不足是,你这篇文章对于大多数的web developer来说可能略微深了点,对于GUI开发,如果你能从GUI beginer的角度,由浅入深的介绍(如,事件机制、MVC、best practise,等),相信会对大家更有帮助。 |
|
返回顶楼 | |
发表时间:2005-12-20
partech 写道 用Presentation Model,上EclipseRCP吧,比Swing好100倍。
下面是开发中的绑定框架 http://dev.eclipse.org/viewcvs/index.cgi/platform-ui-home/databinding-proposal/databinding.html?rev=1.5 swing做得很成熟的公司是不会轻易看上eclipsercp的, 我就不信eclipsercp比swing好一百倍。 我也没见eclipse跑得比IDEA快 也没见eclipse长得比IDEA漂亮 |
|
返回顶楼 | |
发表时间:2005-12-20
snomile 写道 polygoncell兄,我们也做swing客户端,我读了你的帖子,但是不太明白你总结的这些模式都是解决什么问题的,模式都有其固定的应用环境和上下文。而且从MVC这样高层的模式突然跳跃到valueModel这样微观的模式,也确实让我摸不到头脑。
我想问一个具体的模式问题,你们的查询分页是怎么实现的?客户端接口如何写,服务器端需要做哪些工作?如果服务器端还要支持Web接入,那么查询接口如何设计? Rich client 的开发也是从大局(一个大panel)到微观(比方说一个TextField)。针对大局就会用到presentation model,而针对某个小component就要用到value model。 具体我会在后续文章中举例来解释,相信会比较容易理解。 关于你的问题,我觉得太具体了,和我这篇文章的主题已经无关了,我从原理上说两句。 在rich client中,查询都是基于某个字符串的(当然也可以空查询,就是展示整个表),就好像当我们google的时候,我们至少要输入一个字符,不然是没有结果的。这样获得的查询结果一般来说都少于5000条。在这种情况下,我们完全可以利用EventDispatchThread让查询在后台运行, 将查询结果以50条为一个单位渐进的展现给client,不需要分页, 这就是rich client的优势。不过web application利用ajax也可以实现类似的功能。至于分页,如果一定要用的话,就需要自己设计一个方案了,比方说记住每次分页时最后一条信息的ID等等,要具体情况具体分析。 |
|
返回顶楼 | |
发表时间:2005-12-20
myace 写道 不错,不过我认为这个MVC、MVP这个层面还是比较底层次的,应当把界面从大的方面进行划分,抽象出更高层次的概念。
jgoodies很不错,不过springRichClient的封装层次更高,尤其是它的Form部分很强大。 你指的应该是实际开发吧!这些我会在后继文章中逐渐展开,这篇文章只是从原理上进行解析。spring 有rich client方面的封装么? 我没听说过啊! 另外,使用JGoodies Form可以让一个swing经验不足的程序员在2个小时内开发出一个漂亮的GUI来。 |
|
返回顶楼 | |
发表时间:2005-12-20
jackyz 写道 polygoncell 写道 一百多人看,却没有人回,想来应该是大家不开发rich client吧!估计论坛上朋友99.99% 都是开发Web application的。
呵呵,我来回一个。 对于我这种web application背景的人来说,你这篇文章是很有帮助的。 web开发正面临ajax和rich internet application的变革,你这里提到的GUI开发模式,web developers即使现在不熟,迟早也都要用到的。 美中不足是,你这篇文章对于大多数的web developer来说可能略微深了点,对于GUI开发,如果你能从GUI beginer的角度,由浅入深的介绍(如,事件机制、MVC、best practise,等),相信会对大家更有帮助。 有很多书非常详细的讲解了这些相关内容,如果我来写得话,也不会有什么新意,建议你去看看介绍swing的书,我推举"Swing Second Edition" http://www.manning.com/books/robinson2/source 当然oreilly的那本也值得一读。 |
|
返回顶楼 | |
发表时间:2005-12-20
我们也一直在用swing做前台开发,期待楼主的后续文章。。。
|
|
返回顶楼 | |
发表时间:2005-12-21
polygoncell 写道 myace 写道 不错,不过我认为这个MVC、MVP这个层面还是比较底层次的,应当把界面从大的方面进行划分,抽象出更高层次的概念。
jgoodies很不错,不过springRichClient的封装层次更高,尤其是它的Form部分很强大。 你指的应该是实际开发吧!这些我会在后继文章中逐渐展开,这篇文章只是从原理上进行解析。spring 有rich client方面的封装么? 我没听说过啊! 另外,使用JGoodies Form可以让一个swing经验不足的程序员在2个小时内开发出一个漂亮的GUI来。 springrcp引入了jgoodies的binding和form,觉得就是一个对jgoodies的再封装,并为rcp的开发提供spring特性的支持。 n久没有看过了,不知有没有什么变化 |
|
返回顶楼 | |
发表时间:2005-12-21
polygoncell 写道 myace 写道 不错,不过我认为这个MVC、MVP这个层面还是比较底层次的,应当把界面从大的方面进行划分,抽象出更高层次的概念。
jgoodies很不错,不过springRichClient的封装层次更高,尤其是它的Form部分很强大。 你指的应该是实际开发吧!这些我会在后继文章中逐渐展开,这篇文章只是从原理上进行解析。spring 有rich client方面的封装么? 我没听说过啊! 另外,使用JGoodies Form可以让一个swing经验不足的程序员在2个小时内开发出一个漂亮的GUI来。 springRichClient使用了jgoodies。 它提供了Application、Window、Page、View、Command等概念(很像eclipse)的实现。集成了国际化、ImageSource、远程访问、安全控制等。 它里面最值得学习的就是Form部分,封装了jGoodies。 |
|
返回顶楼 | |
发表时间:2005-12-21
nkoffee 写道 snomile 写道 我们也总结了一些模式,分析模式包括:数据展现器、数据提供器、编辑器这些模式等,设计模式包括用fp方式实现的布局抽象,使用JGoodies等实现的一些控件抽象等。
但我觉得我们总结的模式和polygoncell兄总结的模式完全不是一个层面的。 是 Martin Fowler 总结的,jgoodies的binding就是在Presentation Model这个模式下的产物。 Martin Fowler 总结了若干富客户端常用模式,做好富客户端,对这些模式的理解是必不可少的。 http://martinfowler.com/eaaDev/ 这个页面右边有老马总结的富客户端设计模式 Rich Client Window Driver Model View Presenter Event Aggregator Notification Mediated Synchronization Flow Synchronization Presentation Model Presentation Chooser 模式本身是Martin Fowler总结的,我也在文中指出了。不过如何选择正确的模式进行开发是我基于实践开发总结出来的。 |
|
返回顶楼 | |
发表时间:2005-12-22
nkoffee 写道 partech 写道 用Presentation Model,上EclipseRCP吧,比Swing好100倍。
下面是开发中的绑定框架 http://dev.eclipse.org/viewcvs/index.cgi/platform-ui-home/databinding-proposal/databinding.html?rev=1.5 swing做得很成熟的公司是不会轻易看上eclipsercp的, 我就不信eclipsercp比swing好一百倍。 我也没见eclipse跑得比IDEA快 也没见eclipse长得比IDEA漂亮 野史一段,仅供参考: http://news.csdn.net/news/newstopic//20/20433.shtml |
|
返回顶楼 | |