惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
博客园 - 司徒正美
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
L
LangChain Blog

博客园 - 成为-行动-拥有(BeDoHave)

我的MIS快速开发框架集成参考 选择一个框架的权衡建议 简单为美的IT开发尝试 请跟我来--使用Ext+llano快速搞定CRUD 请跟我来--Ext数据应用开发的几板斧 请跟我来--使用Ext搞个原型 请跟我来(EXT2.0+llano实践) 2007年的最后的几笔 用NBear和QPG分布式框架改善生活 - 成为-行动-拥有(BeDoHave) - 博客园 风继续吹----对一些ORM框架的使用心得(2) 冷眼程序人生----对一些ORM框架的使用心得 欢迎新成员加入! QPG分布框架1.1.1 需求看板单机版可以使用了 QPG加速器的使用 QPG分布框架V1.1 BETA2说明 是"渔"非"鱼"--QPG分布处理框架V1.1(Beta1)简介 实践篇(4)—需求看板解析 实践篇(3)--关于事务处理的一点细节
请跟我来(完)--使用Ext及其llano的注意事项
成为-行动-拥有(BeDoHave) · 2008-01-07 · via 博客园 - 成为-行动-拥有(BeDoHave)

    公司事情越来越多!所以赶紧挤点时间一口气把我知道的要点写出来,和大家探讨交流。虽然在软件业混了10多年,但是总感觉自己知道的东西太少(Ext2.0确实十分优秀,我也才接触3个月,以前很不熟悉以js代码,目前只是看了一下我们的实际项目常用到的地方)。希望结交一些有才华的朋友。
    实际上我的技术不强,一直做管理和质量方面的工作,写代码有时只是研究或者兴趣所在。两年前由于项目组实在太忙,高手都抽不出时间,所以我就去写了公司的WEB开发框架,当时还没有学过Java,实在是很辛苦,什么都现学现用。经过两年的项目检验,总算能够满足公司内部使用。至于.net版本的,刚移植过来,可能会有些问题。如果有什么需要我帮助的地方,可以联系我:QQ:657241411 Emial: liusj@139.com
    下面就我研究的心得和大家交流一下:

1)ExtJs 2.0注意事项:
   a) 没有好的IDE,确实没有delphi开发那么方便!根据网景浏览器以及Castle被MS借鉴的前例,我相信如果Ext团队不及时推出更好的开发辅助支持,将很难将好东西推广。目前我们的办法是安装firefox,再装个firebug,可以降低一些调试时间,如果使用VS2008,可能js调试就简单些了。
   b) Ext提供的组件十分丰富,如果要做一些新的界面组件,尽量使用组合方式少用继承。举个任务板的组件示意一下:

Msgs = function(cfg){
    
this.initialConfig = cfg;
   
this.panel=null;
   
this.draw(cfg);
}


Msgs.prototype 
= {

    draw : 
function(cfg){
    
//    if(this.panel!=null) for(var p in this.panel.items) this.panel.remove(this.panel.items[p]);
    if(this.panel!=null) Ext.destroy(this.panel);
     
this.panel = new Ext.Panel({
             width:cfg.width,height:cfg.height,
               
// baseCls:'x-plain',
                renderTo: cfg.div_id,
                title:cfg.title,
                autoShow:
true,
                layout:
'table',
                layoutConfig: 
{columns:3},
               collapsible: 
true,
               frame:
true,
                defaults: 
{frame:true, width:200, height: 200},
                items:cfg.items
            }
);
    }
,
    setHtml : 
function(id,text){
        
//alert(text);
       var msg=this.panel.findById(id);
        msg.body.update(text);
    }
,
     removeItem : 
function(id){
       
this.panel.remove(id,true);
     
this.panel.doLayout();
    }
,
     AddItem : 
function(id,title,text){
        
        Ext.apply(
this.initialConfig.items,[{id:id,title:title,html:text}]);// todo decode tostring then encode
        this.initialConfig.items=Ext.decode("[{id:'msg1',title:'Item 1'},{id:'msg2',title:'Item 2'},{title:'"+title+"',html:'"+text+"'}]");
        alert(Ext.encode(
this.initialConfig.items));
        
this.draw(this.initialConfig);
     }

}
;

  c) 弄清楚事件模型机制和组件注册机制,园子里有些介绍文章可以查看,如果没有太多时间我建议看看ext-2.0\source\widgets\PagingToolbar.js
  d) 开发时尽量使用debug版本,使用Ext.log输出一下,不过发布时不像log4j等那些方便设置。

2)llano注意事项:
   虽然是公司所有的,但是大家可以去研究,用在商业上请通知我们,这样可以商议由我们提供技术服务,实现双赢
  a) 基于以前项目组各自为政的教训,我们的基类Entity只能使用String类型的id
  b) 简单的多对多关系可以交由系统统一维护,删除实体时就会自动清理无效的关系数据
  c) 直接实际开发需要的数据参数字典功能,使用缓存策略。
  d) java支持toXML(),net版本重载ToString()输出JSON格式,不再支持XML

   由于稳定性的要求,公司要求尽量的简单,实际上我也很赞同"最有效的往往很简单!"。llano只是简单集成了一下别人的优秀成果加上了一点我们的最佳实践,所以整个框架40K。在些测试中,发现NHibernate和Java版本还有不少差距。

    好了,近期就写到这里了。我感觉大家一定要注重技术的思想体会,毕竟一个项目的成功,技术因素通常只占20%,但是可能耗去80%的时间。如果大家掌握了关键思想,其实在.NET根本就不愁框架和工具,LINQ就是不错的例子。但是事情也是两面性的,Java工具的不好倒是培养了大批优秀的架构师。

alex 1-7