ASP.NET网站制作之ADO.NET实体框架激发争辩仓酷云
简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而net网页编程是公开了。DannySimmons——一个在ADO.NET实体框架(EntityFramework,EF)项目中的微软开辟职员,他比来宣布了一个对实体框架和其他数据会见办理计划对照的博客帖子。在和传统的ADO.NET及LINQtoSQL对照以后,Danny又把实体框架和nHibernate举行对照,这就引发了其他开辟职员的否决。上面是Danny的帖子的摘录:在EF和nHibernate之间最年夜的分歧是,实体数据模子(EntityDataModel,EDM),和我们基于这个工具构建的必要久长运转的数据平台。EF经由过程了出格的机关,将查询/构成了局的映照历程,与构建对象和变动跟踪分别开来。这类体例让创立观点模子变得更加简单,而观点模子使你能够思索怎样完成数据,以便随后能在其他良多包括了这些构建对象的服务中重用。临时以来,我们把EDM如许的头脑融进到多个其他微软产物中,以致于假设你具有一个实体数据模子,你能够基于这个模子主动创立面向REST的WebService(ADO.NETDataService,即Astoria);能够基于这个模子编写报表(ReportingServices);能够在服务器和脱机客户端存储库中同步数据,这些数据能够作为实体举行原子性地挪动,就算这些实体是从服务器上的多个数据库表中抽取而来;能够从实体感知的构建部件中创立事情流;等等,等等……以是,所谓的分歧点不是EF比Nhibernate能撑持更庞大的映照功效或其他相似的工具,而是在于——EF不单单是一个ORM,它是在基于实体理念的数据平台中复杂愿景中的第一步。
作为回应,FransBouma,LLBLGenPro的主创职员,一个微软MVP,在它的帖子中写到:
我分歧意这类说法:一个像DannySimmons如许事情于实体框架中云云久的人,如许的人怎样能疏忽如许一个现实——任何O/RMapper都是针对实体理念的。在他最初一句话中所形貌的工具,实践上是一个单一目标的O/RMapper:就是闪开发职员能在OO言语中利用实体实例,并把这些实例保留到如干系数据库如许的非OO情况中,反之亦然。假设一切的工具就是笼统的实体模子和它的投射,那末更年夜的愿景是甚么呢?大概工具?它闪开发职员创立这些投射和在使用程序代码中挪用O/RMapper服务依据简单。
JeremyD.Miller,一个.NET开辟职员和构架师,在他的博客中说到DannySimmons:
他在对照NHibernate和实体框架过程当中漏掉了一个主要的现实。实体框架对你的使用程序具有很强的进侵性,而Nhibernate没有。NHibernate让我能利用POCO的体例来对营业历程举行建模而无需晓得数据库。而,实体框架却要我把EF的基本布局间接到场到我的营业对象中。
DannySimmons提到的为其他目标(如报表)而利用EDM的优点,GregYoung——一个微软的MVP,在他的博客上对其举行了批评
一个单一的模子不成能顺应你的使用程序里包含事件举动、搜刮和报表在内的一切方面……能够举出良多如许的内容来。假如你基于你的事件模子来创立报表,那末你就会碰到贫苦!
JimmyBogard,一个HeadspringSystems的初级参谋,也在他的博客中回应到:
我以为把数据模子共享给你界限外的任何人,是毛病的(参看Evans,Domain-DrivenDesign)。把观点模子或EDM或别的我们以任何名字称号它的工具共享出来也是毛病的。
我历来不把域对象间接经由过程服务表露出来。这是对我只管创立的封装的一种损害。
假如任何人想要一个SSRS【译者注:SQLServerReportingService】,那末我会给他们一个独自的报表数据库——为报表所需而定制的。我不但愿报表的存眷点影响了我们的事件存眷点。一个映照层不克不及办理如许的成绩,但相似SSIS【译者注:SQLServerIntegrationService】如许的产物却能够。你想要报表?好,这里有你必要的只读视图,每小时、5分钟、天天或随时举行更新。
以是,如今的成绩是:ADO.NET实体框架是不是已不单单是一个O/RMapper了,和它怎样和nHibernate举行对照?良多人偏向于以为EF是一个复杂的O/RMapper,并以为它相对nHibernate而言缺少良多特征。别的一方面,DannySimmons说微软方才入手下手开辟EF,他们的企图是将来要超出以后的O/R映照功效。
检察英文原文:TheADO.NETEntityFrameworkSparksaDebaterksaDebate
来自:http://www.infoq.com/cn/news/2008/06/Entity-Framework-Sparks-a-Debate什么叫数据库怎么样?什么意思?你想单学数据库。(其实变成是我问的) 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。 Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境! 市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。 Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。 市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。
页:
[1]