|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net也不过3,4本书足以,这就是区别。web持续抛出我的概念
.WEB层和营业层解耦
WEB层是经由过程挪用营业层来完成一次营业操纵的。以是WEB是依附营业层的完成的。怎样解偶使二者能自力开辟而互不影响?我偏向利用一致的挪用接口:利用一个命令字符串,加一堆DTO参数就可以挪用营业,然后获得DTO前往值。这里一个营业的挪用就是一个命令的实行。Ofbiz的serviceengine就是如许的做法,并且很乐成,这也是一种存眷营业的理念。利用一致的挪用接口,WEB层的开辟便可自力举行了,不必依附营业层就可以举行编译。并且这类做法还带来了更多的优点:权限,日记都能会合办理;未来大概的话,散布式部署营业层也变得便利,由于一切营业都是一个命令接口挪用。
.MVC
MVC是一种计划形式,用在WEB框架中,使我们无效的对WEB层举行再分层:VIEW+ACTION
struts,webwork都是MVC框架,而webwork更是天真文雅,使人惊叹!
熟习MVC和承受MVC的人也愈来愈多。无需多说,Jacker也拥抱MVC;
.xmlhttp
从办理成绩角度讲,xmlhttp很壮大,你能够选择它,完整依附它。
不外我以为富客户真个手艺,已不是真正意义的WEB开辟了,我以为服务器端天生静态页面才是真正意义的WEB开辟。WEB交互的次要体例是form的post和get,而决不是xml流的post和get。何况在服务器端间接会见对象及属性总比做一次xml转化再到客户端剖析出数据来的间接。固然xmlhttp作为加强界面交互才能的手艺增补,仍是必不成少的;
而假如你利用富客户端手艺,那也一定必定要选择xmlhttp,javascript我也打了多年的交道,给我的感到老是弱弱的,出格是调试贫苦,偶然无章可寻。
上面我会说到轻量,完整的基于xmlhttp,无疑必要有个复杂的js库(背景也要有java库)的撑持,感到很重。
.View的再分层
MVC架构中,展现层View的手艺是八门五花,可选择的太多太多,jsp多是用的最多的,模版言语也多种多样,我分为两类:剧本模版和复杂模版。剧本模版如velocity,freemarker,能够在页面用便利的剧本界说变量,运算并发生输入,固然比jsp洁净了良多,剧本的嵌进几仍是影响了页面的整齐;而复杂模版的理念则是将页面逻辑从模版中抽掏出来,模版只是用流动的结构展现数据,包管“所见即所得”的开辟效果;
复杂模版的引进对View层开辟将是厘革性的,模版复杂,页面没有任何代码净化,间接优点就是View开辟的再分层,美工也能间接介入模版的开辟,有助于发生专业质量的界面效果。
对复杂模版的具体先容可见我的blog:http://blog.csdn.net/goldrain/
.轻量和天真
细分了这么多层,每层都是有良多良多的手艺框架能够选择,轻量天真的办理计划天然更受接待。EJB无疑是重的,struts比拟webwork则笨了点,复杂模版对照剧本模版,则也轻巧很多,几近没有语法必要进修。
Jacker能在tomcat上轻松的运转,各层的框架选择是:
view:eastm复杂模板(子项目)
webmvc:webwork
营业解耦及挪用:jservice(子项目)
营业层:spring+hibernate
.对ofbiz一些意见
ofbiz无疑是个乐成的营业框架,算得上是胸无点墨了,我用ofbiz写过一些工具,也只是对其entityengine,serviceengine及mvc框架有所懂得。不外仍是有些分歧的意见,不然也不至于在这里构想本人的框架了:
面向属性仍是面向Map?
我称ofbiz是面向Map的一种办理计划,service利用map传值,entity利用map存字段值,利用key会见值。web层中,request中的参数也是间接转为map就用于传送,而不是先映照到对象的属性字段。map的体例有个优点就是能够少界说良多属性类,出格是DTO,但绝对利用属性承载数据的POJO体例,map显得不敷直不雅松散,并且属性对象开辟中IDE可供应属性办法提醒,map天然做不到。我偏向面向属性为主的编程,map为辅。
组件耦合仍是解耦?
ofbiz的各引擎组件耦合的很紧,很难抽掏出来独自利用。entityengine,serviceengine,webmvc架构,事情流等都互相依附,难以剥离独自利用。
解耦,坚持组件的自力性,也就给了开辟员更多的选择,能够选择利用整套计划,也能够选择部分。
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。 |
|