EJB多层结构 VS ADO.NET 只要发表了实质性内容的就最少给10分,最多100分

zwtp 2004-07-21 11:57:01
各位大侠:
从4月份开始我接手一个跟IC卡相关的项目(当然是用C#+SQL SERVER),本来上周未就可提交一个比较完整的测试版,但公司突然请来一个兼职的"高手"。
通过几次交流,他给我们带来了一套从国外引进的先进的多层结构方案即EJB中把一个表封装而成的三个类。我研究过,ADO.net中只要把表往界面中一拖,生成XX.xsd文件后,去项目的目录中即可找到一个叫XX.cs的文件,每个表都封装成一个类,每个表的行也有一个封装好的类,分别继承了DataSet,DataTable,DataRow。相对他提供的Java中的三个类,功能不知强多少倍。
目前我采用的是GetDataTable(string Sql),ExecuteSql(string Sql)直接执行的方法,有些设置参数也采用了类的方式。但他现要求我们团队共四个人发一周的时间去实现一个User+Group+UserGroup三个对象组成的小例子,然后可想而知肯定会把系统的数据库访问方式改为他的那种结构。
公司的产品都是与IC卡、通讯等相关的,数据库方面相对较少,目前这个系统总共只有20来个表。我想向大家请教的问题是在C#中有没有必要完全丢掉ADO.NET及存储过程等而采用他的多层结构,现在情况已非常紧急,请各位发表一点自己的看法。
...全文
147 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwtp 2004-07-22
  • 打赏
  • 举报
回复
谢谢大家参与,我刚准备先结一部分但未成功。后来的请多费点心多说两句,
周六我一定结贴。昨天我又跟上司沟通了几个小时,我最头痛的是他在软件测试,
需求分析,文档,计划,流程等各方面都没给我们任何帮助,一上手就搞这
技术问题。我个人比较好学,他如果真能在流程方面对我们有所帮助,我确实也
希望找个机会学学,公司请他的目的也是这样的。他是另外一家公司的副总,
到这项目中相当于特派员的身份,不知大家有没有遇到过这样的情况,我现在确实
很为难,希望各位明示,多发表一点看法。
skyhill13 2004-07-21
  • 打赏
  • 举报
回复
他在放屁,我认为
zwtp 2004-07-21
  • 打赏
  • 举报
回复
不好意思,我没说清楚首先我已经找到了ADO.net中自动生成的类,比如user表,
在上述XX.cs文件中有一个userTable及userRow类,现在问题是他不懂C#,更不懂
ADO.NET,我们跟他看了那自动生成的类他根本不理,又要我们去实现那该死的类,
但他现在也没说要我们改成Java,否则问题应该已经解决了.
JSYKT 2004-07-21
  • 打赏
  • 举报
回复
支持!
ajqc 2004-07-21
  • 打赏
  • 举报
回复
JAVA代表的是低效,高费用,你的做法是正确的,ADO.NET在同样的内存消耗上,除了第一次可能不如JAVA快外,别的什么时候都快过JAV!!!

如果时间紧,参考一下PET SHOP的做法,C#中把数据封装成类一点也不难.
直接和老板谈这个吧.从人事上击倒,毕竟公司一定要从客户角度出发的,现在用JAVA的客户越来越少了,付不起维护费
xinshaw 2004-07-21
  • 打赏
  • 举报
回复
看你们的工期紧不紧吧,如果不太紧,分层确实是好事,也是一种好习惯。
小北小竹 2004-07-21
  • 打赏
  • 举报
回复
up
xien126 2004-07-21
  • 打赏
  • 举报
回复
再说一点,框架本身和语言是无关的,是一个软件行业的一种工作模式(我理解的,在这方面只要是面向对象的语言都可以支持的,语言本身的效率不在此次讨论的范围哈^_^我以前用DELPHI的),就向行政中你要具体经过多少流程才能领到东西一样,不管当然有效率,想要什么拿什么,但考虑管理的角度,越严谨才越好。
xien126 2004-07-21
  • 打赏
  • 举报
回复
“目前我采用的是GetDataTable(string Sql),ExecuteSql(string Sql)直接执行的方法,有些设置参数也采用了类的方式。”从这一点我觉得楼主并没有将业务对象很好的抽象出来,在这一层上楼主仍然把表对象和业务对象混在一起理解了。
经过o/r mapping技术处理以后产生的对象都是具体的业务对象,它们理论上不该存在执行SQL语句的方法,而是对应的业务对象的动作,比如:ADDUSERINFO(NAME:STRING;AGE:DATETIME);EDITUSERINFO(USER_ID:INTEGER;NAME:STRING;AGE:DATETIME);DELUSERINFO(USER_ID:INTEGER);这样对于EJB来说操作对象的时候都是调用的每个对象具体的方法。
楼主可能是少了这一层次的封装吧。
我觉得用什么架构是一种工作习惯,象(xinshaw(清瘦卫郎) )说的一样,其实说到效率我想既然业务本身并不复杂,那牺牲点点效率是没关系,更何况现在机器越来越好。
时间不是很紧的话在这方面就多理解消化一下,如果紧的话我觉得你就可以向上一级的提一提时间,工作量的问题,效率虽然我觉得不是什么问题,不过去吓他他因该也有点用吧,祝你好运气
mljmh 2004-07-21
  • 打赏
  • 举报
回复
是用C#,EJB來實現嗎
rexfa 2004-07-21
  • 打赏
  • 举报
回复
不变不就行了。只要可以满足需求我觉得没必要,把这个项目做的过于完美,那样就是无谓的提高成本。
相反,如果你发现现有的架构不能满足需求,那当然要改变一下了。

PS 我不认为JAVA和.Net的效率相差很大,单纯的对这两个技术进行指摘,只是肤浅的表现。
EastenChild 2004-07-21
  • 打赏
  • 举报
回复
我觉得你应该跟你们老板提到一点的是,要看实际项目的具体情况,而不能一概而论的应用所谓先进的架构.
既然你的项目数据库方面并非重点,那么相应模块只要不是效率太低,反应迟缓以至于跟不上数据采集模块提交数据的速度,就可以继续使用现有的方案,同时大家也较为熟悉,除了问题也容易维护改进,就没有必要大换血.而且,反而是采用全新的方案,大家又不很熟,更容易带来不稳定因素.
冒昧的猜测,他带来的新方案无非是EJB中数据O/R mapping,如果是的话,这根本就是对应.NET中的数据表的包装类,完全没有优势之处。
时间较紧的话,我觉得你有义务向项目主管阐述这一些。
wildfishchin 2004-07-21
  • 打赏
  • 举报
回复
个人认为,如果花更多的钱,java比较好,因为你可以买小型机来跑。如果没钱,那还是用.net吧。而且.net分层其实也挺简单的。企业级的可以参照微软的网上书店。
lizh383 2004-07-21
  • 打赏
  • 举报
回复
java不熟,但ADO.NET真的非常好用

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧