activeX还是ajax?

现在正在做一个erp系统,系统是项目经理设计的,采用IE里面嵌入Winform的形式,数据通过xml方式,再经过xmlhttp,在服务器与客户端之间进行传输。以前做过的系统,一般是c/s,或者是b/s的,他这样将winform嵌入IE的方法,我想既不是c/s,又不像b/s,还有像web services,winform嵌入IE的方式,应该是activex。这样的erp系统在企业中应用的时候,要求每台机器都安装.net framework 2.0,首先来说,现在大部分单位的操作系统一般为windows xp或者windows 2000或者windows 2003,即使是2003也只有.net framework1.1, 这就要求erp系统在单位机器上部署的时候,需要为每台机器安装.net framework 2.0, 这个要求很不合理。即使是单位统一预先安装,但也劳民伤财。
像erp这样一种在企业内部使用的系统,与其采用这样一种结构,我想不如直接  用winform,做成c/s模式的,因为IE本身就是一个代理,而winform也被解释成为代理,有点多此一举的味道。最好采用一般的b/s方式,直接在IE里面浏览使用,对安转配置甚至性能来说,都是有力而无弊。
加上ajax的无刷新,系统能够像运行在桌面一样,一样能达到winform的运行效果。而省去安装部署的麻烦。
还有可以利用rss 订阅功能.
 个人愚见,抛砖引玉而已!

作者:jillzhang
出处:http://jillzhang.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2006-07-30 10:30 Robin Zhang 阅读(5184) 评论(44)  编辑 收藏 网摘 所属分类: 系统架构

  回复  引用  查看    
#1楼2006-07-30 11:13 | aspnetx      
传说总的伪B/S程序就是这个样子吧

但是有时候要承认在需求面前最难堪的是程序员,老板不会管你那个

另外,就算做成cs的话,那么每台机器不还是要装framework么,除非直接打包到安装程序里

  回复  引用  查看    
#2楼2006-07-30 11:53 | 代码乱了      
没必要把WinForm程序嵌入到web中啊
可以做成不依赖.net Frmwork的ActiveXx
加上ASP.net基本上没什么大问题的

  回复  引用    
#3楼2006-07-30 11:53 | faqi[未注册用户]
ajax的实现方式与winform相比,工作量还是比较大,而且一些c/s中的功能未必能实现。
  回复  引用    
#4楼2006-07-30 12:01 | roydu[未注册用户]
感觉你们项目经理有病,企业里用03的也很少吧?
  回复  引用    
#5楼2006-07-30 15:54 | yok (not logged in)[未注册用户]
有病,确实有病
  回复  引用    
#6楼2006-07-30 17:13 | Liren Zhao[未注册用户]
呵呵,难说的一件事情 ,ajax现在还在发烧吗?真正做个项目后就知道楼
还是C/S好啊,开发起来方便快捷,而且可以参考智能客户端的方式,这样可以在一定条件下可以脱机工作。

另外如果非要B/S的,我推荐适用Flex2,真是方便啊,方便的主要原因是flash客户端的部署远比.net快捷多了。

  回复  引用  查看    
#7楼2006-07-30 20:05 | 双鱼座      
@Liren Zhao
应该说只是一个平衡问题:其一,部署并不是想象的那么复杂,从局域网服务器Down一个flash客户端和Down一个.Net Framework2.0的代价是一样的。其二,WinForm通过XmlHttp与服务器沟通MS提供了足够多的解决方案,比Flex强很多倍。Ajax的开发比Flex方便快速很多,只是大面积使用Ajax会导致运行时速度不太理想而已。直接使用Native的ActiveX做大面积的应用开发代价会很大,IE嵌套WinForm能够获得一定的平衡。
虽然我不会采用这样的方案,但这个方案肯定不是各位所说的那样一无是处。

  回复  引用    
#8楼2006-07-30 20:23 | Jim Jiang[未注册用户]
@ 即使是单位统一预先安装,但也劳民伤财。

请注意啊, 准备上ERP的单位, 连基本的网络远程安装的办法都搞不定的话, 那可就困难大了. 别说是.Net 2.0 , 基本的Windows Update都应该是全部网络自动安装的了.

  回复  引用  查看    
#9楼[楼主]2006-07-30 20:28 | jillzhang      
@双鱼座
但是根据ms的讲师所说,xmlhttp并不是导致性能问题的罪魁祸首,而是南北网路之间的差异造成的。他认为ajax速度不会太慢。我以前一个项目中也大量用到了ajax,速度还是相当不错。
另外ie嵌套winiform的方式,必须将服务器网站设置为信任站点。这无疑又是一个麻烦的地方。
还有即使不使用ajax, 传统b/s模式我i想也更适合吧

  回复  引用  查看    
#10楼[楼主]2006-07-30 20:34 | jillzhang      
@Jim Jiang
能上得起erp的单位,这个开销当然不会过分。但还是有一点,既然ie已经可以作为一个通用代理,那为什么还要以代理方式,开发出一套winform呢?
.net下的winform的效率更是不敢苟同亚。

  回复  引用  查看    
#11楼2006-07-30 22:34 | 双鱼座      
@jillzhang
谁在说xmlhttp是导致性能问题的罪魁祸首?性能问题是由于js造成的。当然,简单的ajax应用没有任何问题,在大面积使用时不可避免通过js来大量动态生成客户端元素,从而导致性能问题。这想这可能是Liren Zhao说明“真正做个项目后就知道楼”的意思。至于你从前应用的经历也许是因为交互比较简单,或者仅仅用于“无刷新”吧。你试试通过ajax动态生成一个网格就可以看出来这些性能问题。
另外,信任站点应该不是问题,你可以将服务器设置为Intranet站点,这些站点的默认安全级别比较低。当然,设置IE的安全级别是比较麻烦,但是即使没有你的ERP系统这个问题也同样存在。
传统B/S已经严重过时,这也正是MS抛出XAML的意义所在。B/S最初的目标其实根本不是用来承担复杂的、交互频繁的应用系统,而是浏览信息,为此开发人员不能不付出一些额外的代价。当然,传统的C/S体系更是缺陷明显,由于没有中间服务器来实现业务使得应用系统的开发非常烦琐。
可以把WinForm当成一个RCP来连接中间服务器,避免直接对RDBMS的访问。不过WinForm作为一个富客户端其表现实在是不敢恭维。至于嵌套在IE中运行主要是将IE作为一种运行容器,这与你直接安装EXE文件运行在Windows容器下没有什么区别。唯一的好处是,对直接用户来说,你不需要从安装程序开始,而是从一个站点开始,这种方式显然更友好。

  回复  引用  查看    
#12楼[楼主]2006-07-31 08:29 | jillzhang      
欢迎继续砸!
  回复  引用  查看    
#13楼2006-07-31 09:05 | 風語者·疾風      
@双鱼座
对直接用户来说,你不需要从安装程序开始,而是从一个站点开始,这种方式显然更友好

对于这点不敢苟同。因为在.NET 2.0里的ClickOnce技术就已经为WinForm程序提供了这种可能,一个WinForm程序可以从一个网页上去自动安装,自动更新,包括自动安装.NET Framework等等东西,并且提供不安装,直接在IE中执行WinForm的方式。

  回复  引用    
#14楼2006-07-31 09:11 | Remember[未注册用户]
为什么不采用智能客户端技术?
  回复  引用    
#15楼2006-07-31 09:37 | peng[未注册用户]
智能客户端技术,我看过几个微软的例子,感觉怎么都像一个可以断开连接工作的C/S程序呢?
  回复  引用  查看    
#16楼2006-07-31 10:45 | aspnetx      
@Remember
又一个被微软忽悠的

  回复  引用    
#17楼2006-07-31 11:08 | 东风之神[未注册用户]
现有的web技术已经可以实现winform技术的功能,感觉再把winform嵌入ie,有点多辞一举。
  回复  引用    
#18楼2006-07-31 12:17 | 路过[未注册用户]
我很支持项目经理的决策,开发效率和用户体验才是最重要的。
Winform的开发效率可不是BS方式能够比拟的,它还能实现很多BS累死也无法实现的功能,用户体验也会更好。
在企业内部ERP系统的局域网环境下,安装.net framework并不是一件困难的事情。

通过这种方式可以实现BS与CS无缝集成,对于新闻发布、论坛等功能采用BS方式实现,对企业内部业务逻辑采用CS实现,很好啊!

  回复  引用  查看    
#19楼[楼主]2006-07-31 12:35 | jillzhang      
en ,收获不小,大家继续砸。
通过大家讲解,我现在观点处于中立了。
希望大家继续砸

  回复  引用  查看    
#20楼2006-07-31 14:29 | メ冰枫ぱ雪      
如果Ajax的IDE会好的话我想我会去用的。。

个人经验不足。。

不发表意见了。。

  回复  引用  查看    
#21楼2006-07-31 14:56 | 小陆      
安装一个.net framework代价很小的。
大面积使用js肯定会带来效率问题(在大部分项目组的条件下),如果让我在ajax、winform、和传统cs程序之间选择的话,我选择winform,或者选择cs,自己再建设一个自动升级方案。ajax我是不会用的,我宁愿用传统的bs。

  回复  引用  查看    
#22楼2006-07-31 15:22 | 双鱼座      
@風語者·疾風
我晕...有了ClickOnce还是需要一个站点作为开始嘛!所以你并没有反对"站点比安装程序更友好"这个观点,那你对哪一点"不敢苟同"呢!

  回复  引用    
#23楼2006-07-31 15:39 | Ariel[未注册用户]
# re: activeX还是ajax? 2006-07-30 20:23 Jim Jiang
@ 即使是单位统一预先安装,但也劳民伤财。

请注意啊, 准备上ERP的单位, 连基本的网络远程安装的办法都搞不定的话, 那可就困难大了. 别说是.Net 2.0 , 基本的Windows Update都应该是全部网络自动安装的了.

严重同意~~稍微正规的企业都应该有自己的IT环境:AD环境下用WSUS分发.net 2.0 Framework太简单不过了。

  回复  引用  查看    
#24楼2006-07-31 15:52 | 周奔驰      
ClickOnce 通过站点部署时,可以判断客户端是否有需要的组件(当然包括Framework2.0环境),如果没有的话可以自动安装,感觉还是蛮不错滴~
  回复  引用    
#25楼2006-07-31 18:44 | Mok[未注册用户]
have a look on this side, may be can help..

http://www.visualwebgui.com/Home/tabid/36/Default.aspx

  回复  引用  查看    
#26楼[楼主]2006-07-31 19:22 | jillzhang      
不错,欢迎大家继续提出宝贵意见。
一个系统在方案上的重要性可行而知。
atlas下的开发效率,从我的感受看,要比winform高。
另外大家所说的效率,我想在erp系统中,也许很难体现。
一般内部使用。网络不成问题。我们原来一个大型社区,都没有什么问题。
主要是开发方式不同,导致大家看法不一致。
大家继续评论。

  回复  引用    
#27楼2006-07-31 19:45 | fengdaxian[未注册用户]
难道你这个activeX是用.NET开发的吗?
可以考虑用C++开发啊,这样就不用在客户端安装framework了。

  回复  引用  查看    
#28楼2006-07-31 21:12 | 瓶子里的风      
我老板也各种喜欢在IE里嵌东西,都无语了成天
  回复  引用  查看    
#29楼2006-07-31 21:51 | 萧寒      
和楼主看法一致;
前阵子也讨论过这个思路,后来还做了点东西:)

  回复  引用  查看    
#30楼2006-08-01 08:55 | 双鱼座      
@jillzhang
呵呵,楼主还比较固执。我已经很明白地告诉你了ajax的性能坏在什么地方了。你的大型社区说到底还是简单,也许可以用用ajax,但是象ERP这样交互复杂的应用环境,用ajax肯定会失败。

  回复  引用    
#31楼2006-08-01 09:45 | Remember[未注册用户]
@aspnetx
说话要负责任。不要莫名来一句没有根据的话,然后又拿不出证据。智能客户端的两大特点:离线工作、智能升级。不比你传统的C/S程序好?

  回复  引用  查看    
#32楼[楼主]2006-08-01 09:58 | jillzhang      
@双鱼座
我不晓得,你说的erp复杂是什么?
注意是业务逻辑复杂,不是页面功能复杂。
所以你说js影响性能,根本和本系统无关。

  回复  引用  查看    
#33楼[楼主]2006-08-01 10:04 | jillzhang      
我不知道为什么现在这么多人说什么erp复杂
我觉得,其实从技术来说,internet上的网站技术复杂
和erp比起来,拿社区来说,要处理的是如何让1w人同时访问相同的功能,而且不受非法侵害。
而erp要解决的是,200人各自都有不同的功能来操作。
业务复杂和程序复杂完全不能等同。
业务在复杂,复杂到顶天的程度,实现起来,还是要从最简单的模块实施。
我的认为是这样的

  回复  引用  查看    
#34楼[楼主]2006-08-01 10:07 | jillzhang      
业务复杂!= 程序复杂
你所说的js局限,仅仅是在处理页面的时候。
只要页面不时过大,过于复杂。和逻辑毫不相干干
没见过,哪个erp的页面复杂到无法显示的程度。
erp复杂在错综复杂的逻辑关系而已。
从表现层来说,erp是最简单的几种系统之一。

  回复  引用  查看    
#35楼[楼主]2006-08-01 10:07 | jillzhang      
大家继续砸
  回复  引用  查看    
#36楼2006-08-01 13:12 | 双鱼座      
@jillzhang
呵呵,无语......我既没有说业务复杂也没有说程序复杂,我是说交互复杂。当然,不同的erp要求是不一样的,也许你的erp非常简单也说不定。真希望你参与做完你手头的项目还能保持你现在的态度。多说无益。

  回复  引用  查看    
#37楼[楼主]2006-08-01 14:49 | jillzhang      
@双鱼座
那么请问交互用什么来交互?
js么?
如果js影响性能,那么js与交互的关系影响你判断的正确与否。
首先要知道的是js对erp这样的系统交换其多大作用。我们的erp系统注重是业务逻辑还是页面表现。
怎么说js也是一个表层的东西。而对于表层的复杂度,一个erp系统如果能高出一个网站,那只能说明这个erp也太神奇了。
需要花费多少个美工亚?赫赫。
我对上面连个方案,现在是中立态度,只不过我要求证的是系统复杂在哪里?
我认为erp如果复杂,那复杂在业务逻辑才对。表现形式不一定多么复杂。

  回复  引用  查看    
#38楼2006-08-03 15:54 | 里德王      
选择完全使用WinForm编写,然后搭配下面两种方法

第一种方法:使用Citrix MetaFrame Presentation Server。服务器端需要安装终端服务,需要安装IIS,需要对Citrix进行配置。客户端需要安装一个1.3MB的软件。这种方法的优点是使用简单方便(当然配置Citrix时遇到的那些莫名其妙的问题令人很头痛),直接选择你需要给客户运行的软件就行。缺点是要花银子,并且客户必须得下载并安装Citrix的客户端。

金蝶K3在IE上运行的演示
http://221.208.168.81/Citrix/MetaFrame/auth/login.aspx">http://221.208.168.81/Citrix/MetaFrame/auth/login.aspx

第二种方法:使用Windows Server 2003的终端服务。服务器端需要安装终端服务,需要安装远程桌面Web连接,需要对Windows进行配置。客户端只要安装一个360KB的ActiveX(来自微软)就行了。这种方法的优点是不需要花钱,都是Windows自带的组件。缺点是要对Windows非常精通才能使用,这要花不少时间。

用友U8在IE上运行的演示
http://demo.hljasp.com/tsweb/003007.html?AutoConnect=1">http://demo.hljasp.com/tsweb/003007.html?AutoConnect=1

  回复  引用    
#39楼2006-08-05 01:22 | kw2006[未注册用户]
Requirements determine implementations, so it makes no sense to discuss an architectural design w/o knowing requirement details… But assuming this is an ordinary ERP application, general speaking, your PM made a good decision, because:
1. Windows Form gives you more flexibility to handle customers’ potential requirements. I know how great today’s web browser technology is, but when talking about complex drag and drop, multiple level undo, it could still be a nightmare.
2. Hosting everything into IE is not weird as it sounds. The key point is about privilege your application needs. That will force you guys (developers) to make things done w/o bothering customers’ system admin too much. Maybe eventually you guys will figure out that it’s not practical (based on the specific requirements), but it’s a good start point, right?

  回复  引用  查看    
#40楼2006-08-15 18:06 | Jamebo      
我赞同kw2006的意见。用户需求是第一位的,这也是我在我目前正在进行的项目中得到的最直接的经验。如果你的PM的判断是基于项目的某些需求,这无可厚非,关键在于,他的这个决定是否体现了用户需求;或则是,用户真正想要的东西是什么?其实用户并不关心你用什么技术细节实现,他关心的是我需要的Feature你能不能实现。打个比方,你有好的技术Idea,比如Ajax,但是某一项需求你无法满足,可能你连单子都签不下来,何谈接下来的问题?
因此,用户的观点是需要时刻在我们脑袋里考虑的问题?
当然,如果PM的决定不能体现用户的需求,或则说没有能做好技术与需求的平衡则是另外一回事情了。。。

  回复  引用    
#41楼2006-09-29 10:37 | tototo[未注册用户]
正是由于ERP的逻辑复杂,它的交互界面也会相应的做得很复杂。

你设计的时候如果想减少页面数量,那单个页面的结构就复杂了,那些逻辑有时就会反映在界面上。

比如输入的信息,每个输入的信息要经过逻辑验证,有些不清楚的要出现智能提示,或者想输入某个ID,相关的数据也要自动输入,或者要从某些已有的数据选择拷贝带入,有时输入的时候要去别的地方检测这个数据是否合理 等。。。。
这些会给客户端带来速度的影响,如果用js来做,性能比activex或者applet(具体逻辑不做在其中)来做要慢很多的.
现在公司用的oracle erp 就是用applet放到IE中做得,速度随着数据,逻辑复杂度等的增加越来越慢。




  回复  引用  查看    
#42楼2007-03-25 23:39 | YAO.NET℡      
这种做法是挺怪,不知道理由是什么?


  回复  引用  查看    
#43楼2007-04-06 09:34 | e表      
看自己对哪方面的技术实现比较熟悉而定吧!! ( 纯.net写的web报表开发工具在: http://www.fcsoft.com.cn/webreport.htm">http://www.fcsoft.com.cn/webreport.htm )
  回复  引用    
#44楼2007-07-10 15:30 | Sakawinki[未注册用户]
ERP不是MIS, 为什么不把管理系统上升到CIMS层次? ERP系统从程序上实现每种方法都差不多,关键看用户需求和各位程序员的业务水平, 我们开发的一个基于B/S的ERP系统中, 在采购部分中的条目清单询价功能使用了AJAX无刷新, 在生产部分中的电压参数采集填报功能使用了ActiveX, 有个嵌入式小程序用了db4o, 还有其他各种功能, 需要用的技术都用上, 那个好用用哪个, 只要你有好的程序员. 没有人才才会导致拘泥于系统结构.




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 463222




相关文章:

相关链接: