可怜的程序员!对EF说不!
今天在网上发现了VS2008SP1上自带的EntityFramework的介绍,因为自己在以前的开发中,曾经为OR影射类似的问题思考过,民想过一些办法,因为事情比较多,未做深入的思考。待我仔细看来,天!好庞大的框架啊,怪不得说在.NET2.0下就想加入的,到了现在才加到VS中呢,把一个数据库访问分成许多层,概念层,存储层,影射层等,还有客户端,服务层,动态数据,令人一下子摸不着头脑。都是干什么用的?又能达到什么效果,解决什么样的问题?在网上查了,发现没有一个从总体介绍是什么,各层之间的联系,怎么配合,完成什么样的功能之类的介绍,都是象教孩子一样,一步一步,那个详细,你就这样就行,具体为什么,不要问,你不需要知道的。
大体看了些,还摸不着门道,竟然还有自己的语言,Esql,还美其名曰 从Sql编码中把程序员解放出来,这简直是天大的谎话!一个程序员要用好这个框架,除了学程序设计语言的语法,还要学所谓的Esql语法,还有linq,还有可能必须编写SQL脚本,哈哈,看来程序员的负担不是轻了,而是重了。现在的程序员就象傻子一样,一味地学着别人的接口,三天两头一变,却不知里面的思想,别人为什么这样,能解决什么问题,不能解决什么问题,只知道一味地去学,做了几年十几年的程序员,还是围着别人的圈在转,没有自己的思想,没有自己的技术,并以自己学会多少别人的东西自豪。这也许是许久我们没有自己完全意义上操作系统的原因吧,呵呵。
做这样的程序员,做的工作就象搬砖,做的再多,也是力气活,一个月给你一两千的工资,乐的屁颠屁颠的了,混口饭吃吗,作为一名程序员,也就这样了。
微软的东东,凭心而论,不能说没有可取之处,就是太复杂了,虽说里面有些设计思想还是可圈可点的,但从效果上来看,还是增加了程序设计者的负担,隐藏了技术细节,使开发者疲于学习各种不同的接口,从长远看来,促使开发工作分工,每个人好象生产线上的一环,干好自己那点就行了,至于别人怎么样,总体是什么,不用明白了。这种情形下的程序员,就象生产线上的工人,做的是一样性质的工作。做这样的程序员,也就是能吃饱的程序吧。
从执行效率上讲,利用Ado .net直接用SQL访问数据库,或者多层结构中,利用应用程序服务器负责对DB的访问,客户端与DB间最多有一层,而应用了这个框架,中间就多了好几层,还有语言之间的转换,其执行效率肯定和直接和SQL访问DB差许多了,怪不得微软的软件基本上都可以充分利用硬件方面的最新成果了,每出一个版本,基本上都要在最新的硬件平台上运行,如果是比较早的机器,那就直接扔吧,呵呵!
这样的框架,远没有一个直接能够产生常用SQL的自动代码框架,可以生成SQL代码,也可以生成N层结构框架代码,现在已经不少这样的工具,用这样的工具才是真正的提高效率。面对MS的EF,我要说88了您的!
没分可散,希望大家热情积极参与讨论,哈哈!