营业逻辑计划之表模块形式
今天去面试,被问到C#中的new关键字,看了那么多的书对new关键字还是有一定认识,回来又把new复习了一遍,发现了许多以前还不知道的细节。表模块形式概述与事件剧本比拟,表模块更有布局,由于它供应了更充实的完成引导标准。该形式的划定规矩能够复杂总结成以下内容:为每一个数据库表界说了一个营业组件。这个营业组件叫做表模块,个中包括操纵于该数据表上的一切代码。
表模块类作为一个容器,将数据和举动组合在一同。营业逻辑被拆分为粗粒度的,暗示全部数据表的组件。表模块类的粒度不会下落到数据行的程序,即表模块类没法辨别一行数据。因而必要以汇合的情势对待数据行,并经由过程键或索引来找到特定的行。
体现层怎样与表模块营业逻辑层交互数据的呢?表模块严厉基于数据表,因而必要以纪录集的情势传送数据,纪录集是一个内存中暗示表格数据的情势,纪录集的布局相似于SQL查询天生的了局。不外也能够经由过程让纪录集撑持离线操纵来为其供应更丰厚的功效,如许就让纪录集的举动相似于数据迁徙工具。
1,什么时候利用表模块
一般来讲,基于工具的形式可以加倍天真,更好地对范畴逻辑建模。工具模子是一个工具构成的图,不外其数据寄存在干系型数据库中。抹立体工具和干系型模子之间的不同不啻于一个恶梦,这个成绩由来已久,因而才发生了各类专门的O/RM工具。
表模块所处的地位介于事件剧本和基于工具形式(比方,举动纪录和范畴模子)之间,该形式明白地给出了怎样界说营业组件及其与体系其他部分的交互体例。固然表模块仍然存眷的是办法而不是工具,但已朝着面向工具迈出一年夜步。
实践上,若将每一个数据表都用一个类暗示,并将举动封装到这些类中,那末就已在利用工具模子了。固然,这些工具大概其实不能暗示成绩的范畴,而是暗示底层的数据模子。不外关于那些不必要太多笼统,且数据模子和工具模子之间没有太年夜差别的场景,表模块长短常不错的折中计划。与事件剧本比拟,表模块基于一个观点模子,面不是一多量办法的松懈汇合。
若体系中的体现层和数据会见层都是基于表状数据布局,那末表模块将长短常好的选择。这时候,营业层便可为体现层供应间接可用的数据,偶然乃至能够间接经由过程数据绑定完成。相似地,营业逻辑层也能够与数据会见层间接互换数据,而无需分外重组。
在.NET中,我们一般会利用DataSet。不外出格是在体现层中,利用加倍复杂的DataTable将有助于削减从营业逻辑层中传进传出的数据量。数据会见层和营业一般会互换DataSet,由于它供应了更天真的功效,比方,同意批量更新和多表读写操纵等。
2,表模块的上风
表模块并没有比事件剧本庞大良多,不外若完整必要手工机关,那末消费的工夫大概要比复杂的事件剧本多出良多。形式在供应了更多引导的同时,也意味着我们必要思索更多的划定规矩——也就是必要编写更多的代码。出格是假如说必要重新编写相似DataSet的范例,那末你对表模块又是甚么意见呢?
不外表模块的上风在于各类IDE(比方,微软的VisualStudio)均为其供应了很丰厚的撑持。
在VisualStudio中都供应了导游来创立数据源。导游将从选择数据库项目入手下手,引诱你完成全部步骤,并主动天生一切需要的代码。借助于内嵌的DataSet计划器,我们可从数据库中选择数据表,并界说干系和束缚。每一个表模块类都是依据数据表建模而成,表露了纪录的汇合和操纵数据表所用的办法等。最少会供应Fill和GetData办法来基于全部数据表举行查询。
从观点角度来看,表模块的另外一个上风在于,不管底层数据源是甚么(SQLServer,Oracle等),关于统一些功效城市失掉一样的表模块类。若基于VisualStudio创立表模块模子,那末必要修正每一个表适配器工具的Adapter属性,从而利用准确的毗连体例。若手工完成,那末能够将表模块看作是一个高条理的接口,个中封装了一个分外的,可静态加载的,针对特定命据源的数据加载模块。
3,表模块的优势
表模块基于工具,但完整由数据库驱动。表模块其实不合适于表述庞大的浩瀚实体,出格是当工具模子和数据模子之间有明显不同的时分。
表模块的次要上风是VisualStudio供应了壮大的撑持,因而完成起来十分复杂。不外若思索到到天生的代码相似于一个黑箱,那末这个上风反而会酿成优势。
固然,表模块这个架构模子其实不必定必要和VisualStudio严密耦合。你的基于表模块的体系可使用ADO.NETDataSet,也能够不利用,可使用导游,也能够不利用导游。如许,表模块的优劣多数在于其与VisualStudio的集成。你越是阔别主动天生的表模块代码,就会越觉的不便利,并实验要末晋级为基于工具的形式,要末升级为事件剧本。
据说很厉害,甚至可以把C#也干掉^_^,不过也很复杂,本来C++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。 主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。 市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。 主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。 市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。 ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。 Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境! 但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
页:
[1]