|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一般的指的.net就是跟java相对的那种,主要是做企业级应用的。你如果想学这个,主要就是学C#和数据库。(ASP.NET好像很重要的,应该也要学的,ASP.NET上好像可以结合VB和C#等多种语言,但是微软主推C#)
举动纪录形式概述
举动纪录就是指一个封装了数据库表或视图的一行的工具,工具中能够同时包括数据(列中的值)和举动(包括逻辑的办法)。举动纪录工具的了局应当尽量地靠近于相干联的数据表布局。比方,若你想依据Orders表创立举动纪录工具,那末就要供应一个Order类,该类的属性应当与Orders表的列逐一对应。
暗示一行数据的举动纪录工具一般也会供应数据会见逻辑,因而,它必要利用一些帮助组件将纪录映照究竟层数据上。
举动纪录工具中一般会包括用来实行经常使用查询的查找办法、CRUD操纵、考证和范畴相干的盘算和反省功效。比方,Invoice工具大概必要考证一些自力的数值(比方,商品的个数,日期,进度数字和客户ID等),还大概会实行一些高低文相干的反省,比方,考证邮政编码是不是存在并正当,反省付出条目和盘算税费等。
1,什么时候利用举动纪录
一样平常来看,只需范畴逻辑不是太庞大,且与数据模子之间不必要很庞大的映照干系,那末举动纪录都能很好的处置各类需求。
举动纪录十分合适良多的Web站点,由于不管个中触及几个数据表,其营业实体和干系型数据库的布局年夜多对照相似。
在那些没有服务层的使用程序中,举动纪录能够和事件剧本分离利用。如许,事件剧本用来界说呼应用户操纵的代码,随后利用举动纪录经由过程面向工具接口操纵数据。能够看到,事件剧本替换了服务层,并间接操纵于举动纪录工具模子之上。
2,举动纪录的上风
举动纪录的乐成依附于两个要素:复杂和框架,这两个要素严密相干。举动纪录观点上非常复杂,易于了解,不外若手工完成,仍然必要良多代码。
编写并保护每个类都必要大批的代码,不外这仅是最低的需求,由于你大概还必要思索为每一个类或数据表增加一个或多个数据迁徙工具。我们的一个伴侣对此有如许的意见:“这的确是个使人腻烦的事情,不外我们只是个开辟者,要靠写代码来挣钱,因而编写代码就是我们的事情。”
不外关于每一个人,包含开辟者来讲,进步临盆力是必需的,我们常常用如许的概念辩驳他。这类设法也失掉了人人的供认,因而有一些公司为举动纪录供应了框架上的撑持。不外我们能够了解,良多开辟者喜好举动纪录,但实在际完成历程使人腻烦。
很难否定的是,举动纪录的确在复杂和终极体系的壮大方面找到优秀的均衡,且该形式也失掉了良多供应商的撑持,比方:LINQ-to-SQL和CastleActiveRecord。
3,举动纪录的优势
关于绝对复杂的逻辑来讲,举动纪录十分符合。不外这是把双刃剑,若使用程序不利用干系型数据模子,那末就要靠野生来构造数据属性,并和谐两者之间的干系。实际上,这个分外的笼统层存在于工具模子和数据模子之间,一般叫做数据映照层。在举动纪录中,我们能够将该层间接集成至工具中。不外跟着这一层愈来愈庞大,保护本钱也渐渐进步。
举动纪录的另外一个成绩是工具和数据库表计划之间的绑定。若你不能不修正数据库,那末要同时个修正举动纪录工具模子和一切的相干代码。而若将工具模子完全地从数据库布局中笼统出来,那末又要手工承当一切的映照工具。
总而言之,在举动纪录中,若不再可以包管工具模子和数据模子之间充足相似,那末将很快堕入窘境。从这个角度来看,举动纪录站在了范畴驱动的计划的对峙面。
别的,关于那些年夜型的,触及加载并保留上千个纪录的操纵而言,举动纪录(或任何工具模子)都不算是个幻想的情况,由于将原始数据加载至工具中的历程会带来不小的开支。关于数千笔记录来讲,这会成为一个很年夜的成绩。关于这类情形,你能够间接利用ADO.NET,并用事件剧本类封装。
4,和表模块模子的区分
在举动纪录模子中,每一个数据库表都用一个类来暗示。粗看起来这仿佛和表模块形式没甚么不同,不外实在现细节有很年夜不同。举动纪录类只是一个复杂的.NET类,其属性的称号和范例对应于数据表的列。若想将多个工具组合起来,那末可使用数组或汇合。换句话说,Orders表对应的Order类中有一个整型属性OrderID和一个DataTime属性OrderDate等。数据表中一切Order工具是由一个Order工具的汇合暗示的,那末这和表模块类有甚么区分呢?
若重新入手下手创立表模块形式,那末仿佛没有甚么区分。不外若利用了ADO.NET范例,那末区分是会容易发觉。在表模块中,我们利用DataRow来暗示一个定单纪录,利用DataTable来暗示一个定单工具的汇合。强范例的DataTable和DataRow者是泛型的数据容器,而数据则存在于一个System.Object类的实例中,并在必要时转型为强范例。在表模块中,你并没有传统的强范例.NET工具,而这恰是举动纪录区分于表模块形式的中央。
简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而java是公开了。 |
|