0 0

java BS+CS 复合体的问题5

    最近还是觉得javaEye的能人多,我有一个问题希望与诸位探讨。
    可能大多数科班出身的程序员最开始在大学里面都是学的C 或者 CPP,学的多一点的会做点mfc来玩,后来学java,要么是自学,要么是大势所趋,要么是迫不得已,总之java很牛,用的人很多,jvm很健壮很靠谱,java能让我们吃上饭,养家糊口。可是作为一个有desktop App情结的程序猿,我总觉得不能写桌面程序,生活总是不完美的,甚至不能算一个真正的程序猿。而这,往往是java不能言说的痛。各位应该注意到,火了几年的html5和css3 现在已经真正的如日中天了,移动终端上webkit的天下无敌,更是让html5炙手可热,于是,在我的桌面程序情结驱动下,我就想搞个cs+bs的复合体,既可以用html来快速而高效的渲染UI,又可以利用cs的及时性以及本地权限,而且bs的更新便利,开发代价小等等优势都可以体现出来,如果使用html5+css3来做的话,界面就会更好,甚至跨平台不用改UI的代码的。
    在这方面,我也做过研究,国内至少有两家在做这种东西(已经对外公布出来的),一家是豆瓣,一家是豌豆荚,他们都是用的python开发,使用webkit引擎,豆瓣的说的不了了之了,豌豆荚的说的是要开源,现在也没有消息(大家可以下载豌豆荚2.0玩玩,界面真的很好)。国外的就多了,sencha已经推出了企业版的sencha  desktop  architecture(这玩意儿收费老贵了,自带extjs4.0),google也有类似的东西,还有基于nodejs的,这些东西的原理都是一个,使用webkit来渲染界面,本地程序充当一个浏览器,两者使用js来通信。但他们都不是用我最熟悉的java,据我了解,swt算是java desktop App里面本地化和样式做的最好的了,而且swt 也能实现js和开发语言通信的功能,于是我做了一些尝试,甚至在项目使用了这些。可是,如果我使用用户自己电脑的ie内核(只考虑用户使用windows),那么ie6-8的问题我就不想再提了,相信是每个人心中的痛,恨不得食其骨饮其血,我精心收集的很炫的html5和css3都用不上了。后来想用webkit的内核,却找不到方法,只好退而求其次,用firefox的内核引擎xulrunner,xulrunner更新很频繁,几乎一周一个版本,html5评测分数也相当高,都快接近400了,但这些还要受制于IBM的swt啊,这个更新就太慢了,因为swt要适应xulrunner的接口,要调整参数等等,而且在实际项目中发现,这个东西确实不是很稳定,甚至远不如ie内核稳定,出现了问题也很难下手去改(我改了不xulrunner的源代码),现在就纠结了,看起来很美好的东西成为了食之无味弃之可惜的鸡肋,或者是裹了人参的鱼骨,美味,但真怕吞下去的时候卡住了,各位有没有这方便的经验,这种模式做的东西真的是高效、美观、强大、易用,做个OA或者内网的什么系统真是妙不可言,苦于在做基本框架的时候定不下来,如果有人能把webkit直接封装到这个里面就好了。
   用这种方法开发的安装程序,包含了精简过的jre,xulrunner引擎,和所有要用到的jre包,如果使用ie内核,不带xulrunner,安装文件也才10M左右,加上xulrunner,就有30M了,也算可以接受,毕竟,面向的客户都是内网使用的,而且安装一次,以后的升级都在服务器。
    大家给提提意见。
   
2013年3月07日 11:26

1个答案 按时间排序 按投票排序

0 0

早看到这篇,犹豫好久。因为我个人持反对意见。

如果你是有个特定的idea或应用要做,类似豆瓣或豌豆荚他们,那么没什么问题。
找个内核,按应用的需求定制。只不过这类通常都用Java,SWT还好些,Swing根本没人气(实在丑,也许JavaFX?)。

但你貌似奔着通用的开发框架去的,这样就有些奇怪了。

1 如果是通用框架,那么就要考虑共通,泛用。就会不再局限在某个应用里,而是不断加些各种可能的扩展。

2 扩展越多,会越麻烦。我们先假设你这个框架很成功,随着开源免费,使用人越来越多,影响力越来越大。然后其他人在做网站时恐怕就不仅要考虑支持各种内核的浏览器,还要考虑是否要支持你这个框架的特性。

所以最后,你其实在做基于这个内核的Java版的浏览器!这似乎不是你的本意。也许我理解有误。

没别的意思,只是觉得这个容易跑偏。

当然这其实也很矛盾,

- 一方面大家希望基于HTML+CSS的组合能更标准更通用。不要让我们开发时考虑兼容越来越多的这样那样的浏览器!
- 一方面也希望自己的作品能在众多同类产品中独树一帜!

估计我已经跑偏了,哈。

说道本地资源,HTML5里加了些特性。
虽然依然受限,但在如今‘云’的大潮下,勉强可以接受。

2013年3月12日 15:35

相关推荐

    java+++mysql++BS结构的进销存系统Java源码

    在BS结构的进销存系统中,Java主要负责后端开发,提供业务逻辑处理、数据验证、接口服务等功能。开发者通常会使用Spring框架来构建应用程序,Spring提供了强大的依赖注入、AOP(面向切面编程)以及事务管理等功能,...

    java+++mysql++BS结构的进销存系统源码整理

    【标题】"java+++mysql++BS结构的进销存系统源码整理"涉及的主要知识点是基于Java编程语言和MySQL数据库构建的BS(Browser-Server,浏览器-服务器)架构的进销存系统。进销存系统是企业管理的核心部分,用于跟踪和...

    JAVA开发的图书管理系统BS+CS

    《JAVA开发的图书管理系统BS+CS》是一款集成了B/S(浏览器/服务器)和C/S(客户端/服务器)模式的图书管理解决方案。该系统利用JAVA的强大功能,为图书馆的日常运营提供了高效、稳定的管理工具。它包括两个独立的C/S...

    java+++mysql++BS结构的进销存系统javalearnsa资料分享

    【标题】:“java+++mysql++BS结构的进销存系统javalearnsa资料分享” 提供的是一套基于Java和MySQL技术开发的Browser/Server(BS)架构的进销存管理系统的学习资料。进销存系统是企业管理的核心部分,用于跟踪和...

    Java Swing+NIO实现的CS模式聊天程序代码

    CS模式聊天程序代码,实现语言为Java,前端UI界面用Java Swing框架实现,服务端与客户端通信采用Java NIO,自定义按分隔符\n读取消息的消息读取格式解决TCP粘包拆包问题。

    电信设备-基于BS+和CS+架构模式的隧道及地下工程信息监控量测方法.zip

    《基于BS+和CS+架构模式的隧道及地下工程信息监控量测方法》是一份深入探讨现代信息技术在隧道与地下工程建设中的应用的资料。本文档主要涵盖了两种关键的架构模式——Browser/Server(B/S)和Client/Server(C/S)...

    BS和CS架构

    "BS和CS架构" BS架构和CS架构是两种常见的软件系统架构,分别代表浏览器/服务器架构和客户机/服务器架构。以下是对BS和CS架构的详细介绍。 BS架构(Browser/Server架构) BS架构是一种基于浏览器和服务器的架构,...

    BS与CS的websocket连接

    在提供的"打通BS与CS的Demo源码"中,可能会包含客户端和服务器端的WebSocket实现示例,这有助于理解WebSocket如何在实际项目中工作。你可以查看这些源码,学习如何初始化WebSocket连接,发送和接收数据,以及处理...

    Oracle+java+jsp BS/CS 管理系统客户端源代码

    标题中的“Oracle+java+jsp BS/CS 管理系统客户端源代码”指的是一个基于Oracle数据库、Java编程语言和JSP(Java Server Pages)技术开发的管理系统的客户端部分的源代码。这样的系统通常用于构建B/S(Browser/...

    java bs 工程技术

    Java BS工程技术是构建Web应用程序的一种常见模式,这里的“BS”代表Browser-Server(浏览器-服务器)架构。在这样的系统中,用户通过Web浏览器与服务器进行交互,所有的业务逻辑和数据处理都发生在服务器端,而...

    CS 模式、BS 模式、CS模式+BS模式

    "CS 模式、BS 模式、CS模式+BS模式分析比较及应用举例" CS 模式(Client/Server 模式)是指客户应用程序(Client)、服务器管理程序(Server)和中间件(middleware)三个部件组成的一种两层结构的系统。客户应用...

    Java BS网络教学平台+毕业设计(完整版).rar

    Java BS(Browser/Server)网络教学平台是一种基于Web的教育管理系统,主要利用Java技术构建,实现了教务管理、在线学习、资源分享、师生互动等多种功能。这个完整的版本还包括了毕业设计,意味着它可能包含了从需求...

    WEB3D BS+Contact+VRML+-+用户手册

    "BS+Contact+VRML+-+用户手册.doc"文档很可能是针对上述技术的详细指南,包含如何使用这些技术进行WEB3D开发,如何集成Contact组件进行碰撞检测,以及如何利用VRML创建和展示3D场景等内容。用户手册通常会提供步骤...

    BS与CS区别

    BS与CS架构的区别 ...BS架构和CS架构有着不同的硬件环境、安全要求、程序架构、软件重用、系统维护、处理问题、用户接口和信息流等方面的差异。了解这些差异对于选择合适的架构和更好地使用它们至关重要。

    基于python+bs+rq+gevent多线程爬取妹子图项目源码.zip

    基于python+bs+rq+gevent多线程爬取妹子图项目源码.zip 基于python+bs+rq+gevent多线程爬取妹子图项目源码.zip 基于python+bs+rq+gevent多线程爬取妹子图项目源码.zip

    java小游戏 (源码+视频+文档+ppt) swing屏幕截图工具BS

    java小游戏 (源码+视频+文档+ppt) swing屏幕截图工具BSjava小游戏 (源码+视频+文档+ppt) swing屏幕截图工具BSjava小游戏 (源码+视频+文档+ppt) swing屏幕截图工具BSjava小游戏 (源码+视频+文档+ppt) swing屏幕截图...

    Bs+打印+套打+绝好源代码

    "Bs+打印+套打+绝好源代码"这个标题和描述暗示了我们正在讨论一个基于浏览器(Bs,通常指的是Browser-based)的打印解决方案,它可能包含了套打功能,并且提供了优秀的源代码供学习和使用。套打是指根据预先设计的...

    QQ屏幕截图工具BS(JAVA源码+论文+视频齐全)

    QQ屏幕截图工具是一款基于JAVA开发的应用程序,它允许用户方便快捷地截取并处理电脑屏幕上的图像。在这款工具中,JAVA语言起到了核心作用,它以其跨平台的特性确保了软件能在不同操作系统上运行。本项目包括JAVA源码...

Global site tag (gtag.js) - Google Analytics