该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-29
asheng88 写道
引用
你老盯着那cms/bbs干嘛,重点是框架。。。。7wxAop代码很少,读读代码就知道性能好不好了。
呵呵,对于框架和应用系统我更喜欢研究应用系统,应用系统的性能不是框架决定的吗? 在tomcat6.0上安装XJawa宣告失败,建议官网上直接提供可运行包下载!要框架让更多的人使用就要低高手一起照顾,再说真正高手又有几个。
看错误信息,是路径映射没成功。看看这个加了没有: <servlet-mapping>
tomcat太大了,怕它。 |
|
返回顶楼 | |
发表时间:2008-04-30
不就是HTML在Server端还是在Client端生成的区别而已吗。
|
|
返回顶楼 | |
发表时间:2008-05-04
引用 不就是HTML在Server端还是在Client端生成的区别而已吗。
本质如此,可演化出了一种程序思想! 引用 B端和S端彻底分开,分别有自己的框架,“UI层与系统其他层面的东西的唯一联系应该是"数据" ,UI层应该是在后台系统不变的情况下可切换的”,这种架构策略完全可行,而且实际代码上也比JSF/asp.net等“server page”变种优雅
彻底分离是否存在某些严重的问题?如果没有问题,那么这样的框架应该早百年就流行了。不过看到下面这段话把我吓一跳!! leebai: 引用 我认为,不管是哪种粗粒度界面组件实现,最好都由浏览器厂家联合来做,做出标准、通用、有持久生命力的界面组件。微软推出.net的时候,粗看简介我还以为是理想中的界面层技术,细看代码原来还是“服务器动态页面”,后来SUN的JSF也这么学,我们公司一个项目组现在在用的SAP的webDypro也是,因此我都有点怀疑:业界大佬们之所以不愿意在客户端组件上下功夫,之所以不想变革目前的Web应用架构,不是因为他们没看到技术需求,而是因为,他们的根本利益在于利润丰厚的各种服务器端产品;Web开发之所以搞得这么复杂,里面说不定有什么惊天大阴谋;或者说,这些业界大佬们睁一只眼闭一只眼地看着广大Web开发者累得死去活来,看着Web独立开发商和集成商一个个倒下去,却背过身去窃笑着点着大把的钞票----扯远了:),这问题有空发个专贴,反正做了6年IBM独立开发商就给我这种感觉。
惊天大阴谋,高手果然就是高手 下载的xjawa.zip第一天跑得很欢,可正当准备研究它的时候出问题了,主页可以打开,但进不了论坛: |
|
返回顶楼 | |
发表时间:2008-05-04
leebai 写道 Ajax框架的核心是浏览器和服务器之间的异步通讯,通常的Ajax程序使用非W3C标准的 XMLHttpRequest 作为通讯组件,7wxAop没有用XMLHttpRequest,而是采用简单的IFrame。从7wxAop的实践看,封装良好的IFrame通讯机制比XMLHttpRequest更好用,也更易用。
有没有哪个高手告诉我,这段话是否有地方存在问题?何为封装良好的IFrame? leebai 写道 引用 7,S和B端全部传送的是数据,B端调用的是S端的服务,是否可以把S端完全改造为OO的?业务流程变为B(ajax)-->应用服务--->领域服务--->DAO等基础设施服务。
完全可以。我提倡的就是 View(就是你说的B(ajax))<--> Model编程,7wx调用后台Model(WebActions)的方法,就是一种RPC,和dwr是类似的,但比dwr简单。 把后端用OO替换,话说起简单,做做看?一个数据对象在jpa,spring里全部OO,可到表现层必须一个个肢解然后sendXX到脚本代码里面,别扭吗?特别是模型聚合模型时,难想象。还有业务层提供的OO数据是否还能够使用7xm的tree和list?不能使用的话就自己重写脚本画界面吧,form就不用说了,已经被多业务层阻挡。 to leebai: 请教一下你的数据页面,当一个表单target到某个内嵌框架IFRAME(buffer)的时候,你是如何做到通过buffer.name的方式获取后台数据的,在你的代码中我没有找到类似new buffer();buffer.add(var name)之类的代码。每个数据页面中都会出现XcurBuffer=window,为何不直接写死在sys_core.js中? |
|
返回顶楼 | |
发表时间:2008-05-04
·B端和S端彻底分开,分别有自己的框架。
彻底分离以前的确有严重问题——客户端计算机的性能和客户端脚本的成熟、应用程度。 现在这种问题越来越少了。在某些强交互类站点如gmap、gmail等,后台可以不生成任何html代码,只是给出数据就可以了。当然对于论坛等需要搜索引擎收录内容的站点,后台还是要把数据混杂在html里发到浏览器,这样的另外好处是在不支持js的客户端仍可浏览。 ·何为封装良好的IFrame? 一个更通用的异步通讯方法,应该不仅使用XMLHttpRequest对象,还要使用动态创建<script>元素或<iframe>元素与跨域的服务端交互。因为XMLHttpRequest虽然可以提供更多的交互信息,但他是受同源策略限制的。 leebai所说的原文是“封装良好的IFrame通讯机制比XMLHttpRequest更好用,也更易用。”而不是“封装良好的IFrame”。 |
|
返回顶楼 | |
发表时间:2008-05-04
是不是惊天大阴谋,我其实不关心,
我不会因为他们是大厂家,就把他们的方案和思路当令箭. 我只遵守: 我是程序员 要的是自己的代码 要的是自己思路的体现 说句不好听的,前台框架真的建立起来了,后台开发平台会趋向什么语言呢? 肯定是两个方向: 1.简单易上手,易部署的动态语言 php,lua,javascript(别小看这个,照样能做后台服务器程序就是执行效率太低),perl(毕竟linux支持的很好)...java就不在此列了 2.可生产本地机器代码的程序 c/c++/d/Haskell(GHC) 还会产生另外一个影响,就是语言的多样性发展,一枝(或2,3枝)独秀的局面将彻底打破. 另外数数计算机语言历史上经典的流行,有多少是由大长家独立原发的? c/pascal/lua/d(还没有流行)/Perl/Python(由研究机构发起)/basic....... 你就查吧,这些有灵魂的语言都不是大长家原发的, 大长家原发什么呢? delphi 自创的VCL .net 做平台了(完全是竞争逼的) java 虚拟机(这个仅仅算卖点),还是做他的平台,最近才逼得有开源的趋向. 大厂家考虑的只有一个,就是卖的是产品,不是语言,羊的门.入我的门吧,受我包护,当然也受我约束. 可以预见的未来是,每个程序员都可以随时自定义一门语言,并且遵循某种协议在不同语言间交互协同工作. 但这个局面绝对不是靠大厂家来完成的. 看看IBM的发展道路,IBM是做什么的? 不是产品是服务,IBM才是有眼光和更高层次战略的公司. |
|
返回顶楼 | |
发表时间:2008-05-04
xzs 写道
引用
不就是HTML在Server端还是在Client端生成的区别而已吗。
本质如此,可演化出了一种程序思想! 引用
B端和S端彻底分开,分别有自己的框架,“UI层与系统其他层面的东西的唯一联系应该是"数据" ,UI层应该是在后台系统不变的情况下可切换的”,这种架构策略完全可行,而且实际代码上也比JSF/asp.net等“server page”变种优雅
彻底分离是否存在某些严重的问题?如果没有问题,那么这样的框架应该早百年就流行了。不过看到下面这段话把我吓一跳!! leebai: 引用
我认为,不管是哪种粗粒度界面组件实现,最好都由浏览器厂家联合来做,做出标准、通用、有持久生命力的界面组件。微软推出.net的时候,粗看简介我还以为是理想中的界面层技术,细看代码原来还是“服务器动态页面”,后来SUN的JSF也这么学,我们公司一个项目组现在在用的SAP的webDypro也是,因此我都有点怀疑:业界大佬们之所以不愿意在客户端组件上下功夫,之所以不想变革目前的Web应用架构,不是因为他们没看到技术需求,而是因为,他们的根本利益在于利润丰厚的各种服务器端产品;Web开发之所以搞得这么复杂,里面说不定有什么惊天大阴谋;或者说,这些业界大佬们睁一只眼闭一只眼地看着广大Web开发者累得死去活来,看着Web独立开发商和集成商一个个倒下去,却背过身去窃笑着点着大把的钞票----扯远了:),这问题有空发个专贴,反正做了6年IBM独立开发商就给我这种感觉。
惊天大阴谋,高手果然就是高手 下载的xjawa.zip第一天跑得很欢,可正当准备研究它的时候出问题了,主页可以打开,但进不了论坛: 彻底分离是有问题,有时还很严重,比如,你就碰上了(“进不了论坛”)。如果Web客户端有足够强大和稳定的组件(大厂商能做而不愿做),就不会出现你碰到的问题。 看你的页面低下有个脚本错误,双击打开,看看是什么原因。
|
|
返回顶楼 | |
发表时间:2008-05-04
xzs 写道
leebai 写道
Ajax框架的核心是浏览器和服务器之间的异步通讯,通常的Ajax程序使用非W3C标准的 XMLHttpRequest 作为通讯组件,7wxAop没有用XMLHttpRequest,而是采用简单的IFrame。从7wxAop的实践看,封装良好的IFrame通讯机制比XMLHttpRequest更好用,也更易用。
有没有哪个高手告诉我,这段话是否有地方存在问题?何为封装良好的IFrame? leebai 写道
引用
7,S和B端全部传送的是数据,B端调用的是S端的服务,是否可以把S端完全改造为OO的?业务流程变为B(ajax)-->应用服务--->领域服务--->DAO等基础设施服务。
完全可以。我提倡的就是 View(就是你说的B(ajax))<--> Model编程,7wx调用后台Model(WebActions)的方法,就是一种RPC,和dwr是类似的,但比dwr简单。 把后端用OO替换,话说起简单,做做看?一个数据对象在jpa,spring里全部OO,可到表现层必须一个个肢解然后sendXX到脚本代码里面,别扭吗?特别是模型聚合模型时,难想象。还有业务层提供的OO数据是否还能够使用7xm的tree和list?不能使用的话就自己重写脚本画界面吧,form就不用说了,已经被多业务层阻挡。 to leebai: 请教一下你的数据页面,当一个表单target到某个内嵌框架IFRAME(buffer)的时候,你是如何做到通过buffer.name的方式获取后台数据的,在你的代码中我没有找到类似new buffer();buffer.add(var name)之类的代码。每个数据页面中都会出现XcurBuffer=window,为何不直接写死在sys_core.js中?
buffer是在页面引用7wx.js时框架自动附加的iframe,所以你看不到“new buffer();”之类的代码。除了buffer之外,还有一个备用的buffer0,用于buffer的请求还没返回时,发出另外的一个请求(特殊场合下有这需求)。XcurBuffer=window就时为了区分这两个不同的buffer。
7wxAop的Model(WebActions)开发确实对OO对象的输出(转换成前端js数据)支持比较弱,好在大部分企业业务系统的后台数据都时RDBMS,7wxAop的SQLHTTP+AutoAction对关系表的处理和输出还是很简单,因此绝大部分Action的编程非常简洁。我将找时间另发个帖子谈谈SQLHTTP(AutoSQL)的设计思想。
|
|
返回顶楼 | |
发表时间:2008-05-04
achun 写道 是不是惊天大阴谋,我其实不关心,
我不会因为他们是大厂家,就把他们的方案和思路当令箭. 我只遵守: 我是程序员 要的是自己的代码 要的是自己思路的体现 说句不好听的,前台框架真的建立起来了,后台开发平台会趋向什么语言呢? 肯定是两个方向: 1.简单易上手,易部署的动态语言 php,lua,javascript(别小看这个,照样能做后台服务器程序就是执行效率太低),perl(毕竟linux支持的很好)...java就不在此列了 2.可生产本地机器代码的程序 c/c++/d/Haskell(GHC) 还会产生另外一个影响,就是语言的多样性发展,一枝(或2,3枝)独秀的局面将彻底打破. 另外数数计算机语言历史上经典的流行,有多少是由大长家独立原发的? c/pascal/lua/d(还没有流行)/Perl/Python(由研究机构发起)/basic....... 你就查吧,这些有灵魂的语言都不是大长家原发的, 大长家原发什么呢? delphi 自创的VCL .net 做平台了(完全是竞争逼的) java 虚拟机(这个仅仅算卖点),还是做他的平台,最近才逼得有开源的趋向. 大厂家考虑的只有一个,就是卖的是产品,不是语言,羊的门.入我的门吧,受我包护,当然也受我约束. 可以预见的未来是,每个程序员都可以随时自定义一门语言,并且遵循某种协议在不同语言间交互协同工作. 但这个局面绝对不是靠大厂家来完成的. 看看IBM的发展道路,IBM是做什么的? 不是产品是服务,IBM才是有眼光和更高层次战略的公司. 没错,前后台分开之后的最大好处,就是:程序员不再被某种语言或技术或架构或服务器绑死,想换哪端(B or S)就换哪端。 |
|
返回顶楼 | |
发表时间:2008-05-04
leebai 写道 7wxAop的Model(WebActions)开发确实对OO对象的输出(转换成前端js数据)支持比较弱,好在大部分企业业务系统的后台数据都时RDBMS,7wxAop的SQLHTTP+AutoAction对关系表的处理和输出还是很简单,因此绝大部分Action的编程非常简洁。我将找时间另发个帖子谈谈SQLHTTP(AutoSQL)的设计思想。 很期待,说实话,我是被你和s79从jdon论坛钩过来的,看了你们在那里的帖子,PF,PF.我就不客气了,把那里的主导思想copy过来问一下,用你的7mx开发软件,非常适合小中型系统,而且数据面向关系,可是一旦系统做大了怎么办?向何处扩展?用OO重写?再集群分布? leebai 写道 彻底分离是有问题,有时还很严重,比如,你就碰上了(“进不了论坛”)[img]../../../../../../images/smiles/icon_biggrin.gif" alt="[/img]。如果Web客户端有足够强大和稳定的组件(大厂商能做而不愿做),就不会出现你碰到的问题。 看你的页面低下有个脚本错误,双击打开,看看是什么原因。 似乎在leebai的文档中看到过,用这个框架出问题时大不了界面上某些小角落显示不出来,呵呵,可我现在呢?直接白屏了,哈哈!! 可否讲解一下sys_core.js中的这些代码的作用,我初学js,不懂,谢谢!! if(window.HTMLElement) { HTMLElement.prototype.__defineGetter__( "outerHTML", function(){ var str = "<" + this.tagName.toUpperCase(); for (var i=0; i<this.attributes.length;i++) { var attr = this.attributes[i]; str += " "; str += attr.nodeName + "=" + '"' + attr.nodeValue + '"'; } str += ">" + this.innerHTML + "</"+this.tagName.toUpperCase()+">"; return str; } ); HTMLElement.prototype.__defineSetter__( "outerHTML", function(s){ var range = this.ownerDocument.createRange(); range.setStartBefore(this); var fragment = range.createContextualFragment(s); //alert(fragment); this.parentNode.replaceChild(fragment, this); } ); HTMLElement.prototype.__defineGetter__( "parentElement", function(){ return this.parentNode; } ); HTMLElement.prototype.__defineGetter__( "children", function(){ return this.childNodes; } ); CSSStyleSheet.prototype.__defineGetter__( "rules", function(){ return this.cssRules; } ); CSSStyleSheet.prototype.getRuleByName = function(name){ var rules = this.cssRules; name = name.toLowerCase(); for(var i=0; i<rules.length;i++){ if(rules[i].selectorText == name) return rules[i]; } return null; } HTMLSelectElement.prototype.add = function(opt){ this.appendChild(opt); }; KeyboardEvent.prototype.__defineGetter__( "srcElement", function(){ return this.target; } ); KeyboardEvent.prototype.__defineSetter__( "returnValue", function(b){ if(!b){this.preventDefault();} } ); //IE中args固定用self,即dialogArguments固定为opener ,以兼容 //对IE,对话页中在<html>标签中用style指定宽高,window.resize不可用,默认resizale=no; //对firefox,上面三项刚好相反,firefox还会忆用户上次的resize Window.prototype.showModalDialog = function(url, args , features){ if(features==null || features.length==0) features = "modal=yes"; else{ features = features.replace(/\:/g,"=");//IE use : features = features.replace(/\;/g,",");//IE use ; features = features.replace(/scroll/g,"scrollbars"); features = features.replace(/dialogWidth/g,"width"); features = features.replace(/dialogHeight/g,"height"); features += ",modal=yes"; } //if(features.indexOf("width")<0)features += ",width=0";//如不指定width,resizale=no不管用??? //alert(features); url = encodeURI(url); window.open(url, "" , features ); return "ok"; }; Window.prototype.__defineGetter__( "dialogArguments", function (){ return this.opener; } ) BTW:com.xjawa下的那些代码为何不开源?最新消息:旺财勇士同学开发的 Ext-js 到 7wxAop 的接口 ExtAop 已经完成,请点击查看演示程序 就演示程序吗?能下载不? |
|
返回顶楼 | |