还剩16页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
【经典面试题】烽火笔试题1如何设计数据库答存储信息的大小,每次扩容的大小,冗余2几十上百万行,如何快速查询出表数据答用分页存储过程/*函数名称GetRecordFromPage函数功能获得指定页的数据参数说明©tblName包含数据的表名©fldName关键字段名©PageSize每页记录数@PageIndex要获得的页码©OrderType排序类型,0-升序,1-降序©strWhere查询条件留意不要加where*/CREATE PROCEDUREGetRecordFromPage©tblName varchar255,--表名©fldNamevarchar255,--字段名©PageSize int=10,--页尺寸©Pageindexint=1,--页码©OrderType bit=0,一设置排序类型,非0值则降序©strWherevarchar2000=,,一查询条件留意不要加where ASdeclare@strSQL varchar6000--主语句declare@strTmp varchar1000--临时变量declare@str0rdervarchar500一排序类型if©OrderType!=0beginset@strTmp=select minset@str0rder=order by_+@fIdName+desc endelse begin set@strTmp=并增加整个应用程序的可维护性select max,set@str0rder=order by[+©fldName同时,你的应用程序也不再须要在每次调用中间层组件时,都跳转到相应的结果页了以我的阅历来看,在一个用户界面和中间层有较多交互的应用程序中,运用Webservice这种结构,可以轻松的节约花在用户界面编程上的20%的开发时间这样做还有另一个好处,就是你将得到一个由Webservice组成的中间层,这一层是完全可以在应用程序集成或其他场合下被重用的最终,通过Webservice把你的应用程序的逻辑和数据暴露出来,还可以让其它平台上的客户重用你的应用程序应用程序集成企业级的应用程序开发者都知道,企业里常常都要把用不同语言写成的在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发的力气你的应用程序常常都须要从运行在古老的IBM主机上的程序中获得数据;或者再把数据发送到主机或UNIX应用程序中去即使是在同一个平台上,不同的软件厂商生产的各种软件也常常须要集成起来通过Webservice,应用程序可以用标准的方法把功能和数据暴露出来,供其它的应用程序运用例如,你有一个订单登录程序,用于登录从客户来的新订单,包括客户信息、发货地址、数量、价格和付款方式等信息同时,你还有一个订单执行程序,用于实际货物发送的管理这两个程序是来自不同软件厂商的一份新订单进来之后,订单登录程序须要通知订单执行程序发送货物通过在订单执行程序上面增加一层Webservice,订单执行程序可以把AddOrder函数暴露出来这样,每当有新订单到来时,订单登录程序就可以调用这个函数来发送货物了进而通过Webservice集成应用程序B2B的集成用Webservice集成应用程序,可以使你公司内部的商务处理更加自动化但当交易跨越了你的供应商和客户,突破了公司的界线时又会怎么样呢?跨公司的商务交易集成通常叫做B2B集成Webservice是B2B集成胜利的关键通过Webservice,你的公司可以把关键的商务应用暴露给指定的供应商和客户例如,把你的电子下单系统和电子发票系统暴露出来,你的客户就可以以电子的方式向你发送购货订单,而你的供应商则可以以电子的方式把原料选购的发票发送给你当然,这并不是一个新的概念电子文档交换EDI早就是这样了Webservice和EDI之间的主要区分在于,Webservice的实现要比EDI简洁得多,而且Webservice是运行在Internet上的,在世界任何地方都可轻易实现,这样其运行成本就相对较低不过,Webservice并不像EDI那样,是文档交换或B2B集成的一套完整的解决方案Webservice只是B2B集成的一个关键部分,还须要很多其它的部分才能完成这个集成用Webservice来实现B2B集成的最大好处在于可以轻易实现互操作性只要把你的商务逻辑暴露出来,成为Webservice,你就可以让任何指定的合作伙伴轻松的调用你的商务逻辑,而不管他们的系统在什么平台上运行,运用的是什么开发语言这样就大大削减了花在B2B集成的上的时间和成本这样的低成本让很多原本无法承受EDI的投资成本的中小企业也能实现B2B集成软件重用软件重用是一个很大的主题,它有很多的形式和程度最基本的形式是源代码模块或者类一级的重用另一种形式是二进制形式的组件重用当前,像表格控件或用户界面控件这样的可重用软件组件在市场上都占有很大的份额但这类软件的重用都有一个很严峻的限制:重用仅限于代码,而数据不能被重用缘由在于你可以很轻易的发布组件甚至源代码,但要发布数据就没那么简洁了,除非那些数据都是不会常常改变的静态数据而Webservice允许你在重用代码的同时,重用代码后面的数据运用Webservice,你不再像以前那样,要先从第三方购买、安装软件组件,再从你的应用程序中调用这些组件你只须要干脆调用远端的Webservice就可以了举个例子,你想在你的应用程序中确认用户输入的邮件地址,那么,你只需把这个地址干脆发送给相应的Webservice,这个Webservice就会帮你查阅街道地址、城市、省区和邮政编码等信息,确认这个地址的确在相应的邮政编码区域Webservice的供应商可以按时间或运用次数来对这项服务进行收费这样的服务要通过组件重用来实现是不现实的,因为那样的话你必需下载并安装好包含街道地址、城市、省区和邮政编码等信息的数据库,而且这个数据库还是不能实时更新的另一种软件重用的状况是把好几个应用程序的功能集成起来例如,你想要建立一个局域网上的门户站点应用,让用户既可以查询他们的联邦快递包袱,察看股市行情,又可以管理他们的日程支配,还可以在线购买电影票现在Web上有很多应用程序供应商,都在其应用中实现了上面的这些功能一旦他们把这些功能都通过Webservice暴露出来,你就可以特别轻易地把全部这些功能都集成到你的门户站点中,为用户供应一个统一的、友好的界面用Webservice来集成各种应用中的功能,为用户供应一个统一的界面很多应用程序都会利用Webservice,把当前基于组件的应用程序结构扩展为组件和Webservice的混合结构你也可以在应用程序中运用第三方的Webservice供应的功能你还可以把你自己的应用程序的功能通过Webservice供应应别人全部这些状况下,你都可以重用代码和代码后面的数据总之,Webservice将是软件重用的一种特别有力的形式什么时候不应当运用WebService一个对Webservice的完整介绍还应当包括什么时候不该用Webserviceo经过前面的介绍,我们知道了Webservice在通过Web进行互操作或远程调用的时候是最有用的不过,还有很多状况,Webservice根本不能给你带来任何好处单机应用程序目前,我们还有很多桌面应用程序是供商用和个人运用的其中一些只须要与运行在本机上的其他程序通信在这种状况下,我们最好就不要再用Webservice,只要用本地的API就可以了COM特别适合于在这种状况下工作,因为它既小又快运行在一台服务器上的服务器软件也是这样最好干脆用COM或其他本地的API来进行应用程序间的调用当然Webservice也能用在这些状况下,但那样不仅消耗太大,而且不会给你带来任何好处局域网上的同构应用程序在很多应用中,你全部的程序都是用VB或VC开发的,都在Windows平台下运用COM,都运行在同一个局域网上例如,你有两个服务器应用程序须要相互通信,或者你有一个Win32或WinForm的客户程序要连接到局域网上的另一个服务器程序在这些程序里运用DCOM会比SOAP/有效的多类似的,假如你的一个.NET程序要连接到LAN上的另一个.NET程序,那么你应当运用.NETremoting好玩的是,在.NETremoting中,你也可以指定运用SOAP/来进行Webservice调用不过最好还是干脆通过TCP进行RPC调用,那样会有效得多总之,只要你从应用程序结构的角度看来,有别的方法比Webservice更有效,更可行,那就不要再用Webservice总结Webservice是创建可互操作的分布式应用程序的新平台Webservice的主要目标是跨平台的可互操作性为了达到这一目标,Webservice是完全基于XML、XSD等独立于平台、独立于软件供应商的标准的Webservice在应用程序跨平台和跨网络进行通信的时候是特别有用的Webservice适用于应用程序集成、B2B集成、代码和数据重用,以及通过Web进行客户端和服务器的通信的场合当然,Webservice也不是万能的,你不能到处滥用Webserviceo在有些状况下,Webservice会降低应用程序的性能,而不会带来任何好处例如,一台机器或一个局域网里面运行的同构应用程序就不应当用Webservice进行通信11用gridview如何把其中一行添加下拉列表框并绑定数据库?如何分页和动态排序?答先生成模版,在EditltemTemplate里放一个下拉筐进去,选择数据源即可把gridview的属性Allowpaging=true就能分页,AllowSorting=true就能排序或者用gridview.Sort方法排序12说明一下软件开发流程?答:分析(须要,概要,具体),开发(编程,单元测试),测试(集成测试),维护13假如做到编码规范?答方法,类,变量尽量写有意义的单词注释有写清晰,但不要罗唆14try catchfinally中catch和finally的作用答catch扑获异样,finally不管代码是否出现异样都执行15web页面代码的执行依次?答从上到下16用户控件和自定义控件的异同点?答用户控件(UserControl):扩展名为*.ascx,跟*.aspx在结构上相像,是指页面中加载的功能块,只是用户控件不能单独作为页面运行,必需嵌入到*.aspx页面或其它用户控件中运用自定义控件,跟HtmlControl或WebControl相像,编译后可以添加引用到工具栏里面,干脆用鼠标拖动运用看状况运用,假如功能比较多,会用自定义控件17当发生一个代码错误时可以显示一个自定义的错误页面给用户,怎么花最小代价完成这个目标?答18一个人拿了100元去商店买25元钱的东西,店主没有零钱找,于是去旁边的小摊贩换了100的零钱,找给了那个人75,那个人走了之后,小摊贩拿着100元钱去找店主,说是假的,店主看了看钱,发觉真的是假的,于是赔给了小摊贩一个真的100块钱,问店主一共亏了多少钱,为什么?答25o进75元,出100元
19.net中哪项技术实现跨多语言、CLR B、CTS C、ACLS D、CTT答CLR20在B/S模式中,你是运用几层架构实现的,说说各层之间的关系和这样的好处?答MVC模型一视图一限制器视图View代表用户交互界面.模型Model就是业务流程/状态的处理以及业务规则的制定,业务模型还有一个很重要的模型那就是数据模型.限制Controller可以理解为从用户接收恳求,将模型与视图匹配在一起,共同完成用户的恳求.+,]asc,end set@strSQL=select top,+str@PageSize+*from[+@tblName+where[,+@fIdName++@strTmp+[+@fIdName+]from select top+str@PageIndex-l*@PageSize+,[,+@fIdName+[from[,+©tblName++@strOrder+as tblTmp+©strOrder if@strWhere!=set@strSQL=select top+str@PageSize+*from[+@tblName+where[+@fIdName++@strTmp+[+@f IdName+,]from selecttop,+str@PageIndex-l*@PageSize+,[,+@fIdName+from[+@tblName+]where+@strWhere++©strOrder+as tblTmpand+©strWhere++@strOrder if@PageIndex=1beginset@strTmp=if©strWhere!=’set@strTmp=where+,@strWhere+)set@strSQL=selecttop+str(@PageSize)+*from[+@tblName++©strTmp++©strOrder endexec(@strSQL)GO3SQL语句左联接与内连接的区分答Inner Join逻辑运算符返回满意第一个(顶端)输入与其次个(底端)输入联接的每一行Left OuterJoin逻辑运算符返回每个满意第一个(顶端)输入与其次个(底端)输入的联接的行它还返回任何在其次个输入中没有匹配行的第一个输入中的行其次个输入中的非匹配行作为空值返回4Asp.net如何连接数据库答connection连接数据库Command执行数据库SQL或存储过错吩咐DataAdapter连接数据库,执行数据库SQL或存储过错吩咐,填充DataSet5什么是事务?答数据库事务是指作为单个逻辑工作单元执行的一系列操作数据库事务的ACID属性事务处理可以确保除非事务性单元内的全部操作都胜利完成,否则不会永久更新面对数据的资源通过将一组相关操作组合为一个要么全部胜利要么全部失败的单元,可以简化错误复原并使应用程序更加牢靠一个逻辑工作单元要成为事务,必需满意所谓的ACID(原子性、一样性、隔离性和长久性)属性原子性事务必需是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行通常,与某个事务关联的操作具有共同的目标,并且是相互依靠的假如系统只执行这些操作的一个子集,则可能会破坏事务的总体目标原子性消退了系统处理操作子集的可能性一样性事务在完成时,必需使全部的数据都保持一样状态在相关数据库中,全部规则都必需应用于事务的修改,以保持全部数据的完整性事务结束时,全部的内部数据结构(如B树索引或双向链表)都必需是正确的某些维护一样性的责任由应用程序开发人员担当,他们必需确保应用程序已强制全部已知的完整性约束例如,当开发用于转帐的应用程序时,应避开在转帐过程中随意移动小数点隔离性由并发事务所作的修改必需与任何其它并发事务所作的修改隔离事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同当事务可序列化时将获得最高的隔离级别在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同由于高度隔离会限制可并行执行的事务数,所以一些应用程序降低隔离级别以换取更大的吞吐量长久性事务完成之后,它对于系统的影响是永久性的该修改即使出现致命的系统故障也将始终保持DBMS的责任和我们的任务企业级的数据库管理系统DBMS都有责任供应一种保证事务的物理完整性的机制就常用的SQL Server2000系统而言,它具备锁定设备隔离事务、记录设备保证事务长久性等机制因此,我们不必关切数据库事务的物理完整性,而应当关注在什么状况下运用数据库事务、事务对性能的影响,如何运用事务等等6水晶报表实现的功能?如何实现?答*一套完整的Web报表制作解决方案,让您简洁制作网络报表*功能强大的工具,可将报表制作功能与Web及Windows应用程序结合*可利用各种资料来源,建立简报品质的精良报告*与微软Office紧密结合的报表制作功能*快速的报表处理功能*可弹性地传送报表*与CrystalReports商业智能产品家族完全结合从简洁到困难的报表,CrystalReports都可以帮助您存取、分析、报告及共享数据,结合运用简洁、具弹性、功能强大的特性,供应简报品质的完备报表[功能]运用各种资料来源制作报表享用功能强大的设计与格式设定功能结合具弹性的分析最快的报表处理实力敏捷的报表传送作业可扩充的Web报表制作取得您所须要的功能强大、弹性高的报表制作工具,将精致的报表的制作功能结合到您的Windows及Web应用程序充分运用针对网站thin-wire环境设计的报表制作功能支持应用程序的强大报表制作功能享用前所未有的弹性与操控实力完成应用程序资料的报表string=null和string=的区分答7前者没有安排内存控件,后着安排了8存储过程和sql语句的优缺点答存储过程的优缺点优点
1.由于应用程序随着时间推移会不断更改,增删功能,T-SQL过程代码会变得更困难,StoredProcedure为封装此代码供应了一个替换位置
2.执行支配(存储过程在首次运行时将被编译,这将产生一个执行支配事实上是Microsoft SQL Server为在存储过程中获得由T-SQL指定的结果而必需实行的步骤的记录3缓存改善性能但sql server新版本,执行支配已针对全部T-SQL批处理进行了缓存,而不管它们是否在存储过程中,所以没比较优势了
3.存储过程可以用于降低网络流量,存储过程代码干脆存储于数据库中,所以不会产生大量『sql语句的代码流量
4.运用存储过程使您能够增加对执行支配的重复运用,由此可以通过运用远程过程调用(RPC)处理服务器上的存储过程而提高性能RPC封装参数和调用服务器端过程的方式使引擎能够轻松地找到匹配的执行支配,并只需插入更新的参数值
5.可维护性高,更新存储过程通常比更改、测试以及重新部署程序集须要较少的时间和精力
6.代码精简一样,一个存储过程可以用于应用程序代码的不同位置
7.更好的版本限制,通过运用Microsoft VisualSourceSafe或某个其他源代码限制工具,您可以轻松地复原到或引用旧版本的存储过程
8.增加平安性a、通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以供应对特定数据的访问;b、提高代码平安,防止SQL注入(但未彻底解决,例如,将数据操作语言一一DML,附加到输入参数);c、SqlParameter类指定存储过程参数的数据类型,作为深层次防卫性策略的一部分,可以验证用户供应的值类型(但也不是万无一失,还是应当传递至数据库前得到附加验证)缺点
1.假如更改范围大到须要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍须要更新程序集中的代码以添加参数、更新GetValueO调用,等等,这时候估计比较繁琐了
2.可移植性差由于存储过程将应用程序绑定到SQLServer,因此运用存储过程封装业务逻辑将限制应用程序的可移植性假如应用程序的可移植性在您的环境中特别重要,则将业务逻辑封装在不特定于RDBMS的中间层中可能是一个更佳的选择Sql语句敏捷,可移植性强,查询速度比存储过程慢些9asp.net如何验证数据正确性?以E_mail的为例RegularExpressionValidator\w+]\w+*@\w+[-.]\w+*\.\w+[-.]\w+*在验证控件中加入正则表达式10什么是webservice,什么状况下运用,如何运用?答现在我将列举三种状况,在这三种状况下,你将会发觉运用Webservice会带来极大的好处此后,我还会举出不应当运用Webservice的一些状况跨越防火墙的通信假如你的应用程序有成千上万的用户,而且他们都分布在世界各地,那么客户端和服务器之间的通信将是一个麻烦的问题那是因为客户端和服务器之间通常都会有防火墙或者代理服务器在这种状况下,你想运用DCOM就不是那么简洁了,而且,通常你也不情愿把你的客户端程序发布到如此浩大数量的每一个用户手中于是,你最终选择了用阅读器作为客户端,写下一堆ASP页面,把应用程序的中间层暴露给最终用户结果呢?运气好的话,只是开发难度大了一些,运气不好的话,就会得到一个根本无法维护的应用程序想象一下你应当怎么在你的应用程序里面加入一个新的页面你必需先建立好用户界面(Web页面),以及在这个页面后面,包含相应商业逻辑的中间层组件这还不够,你还要再建立至少一个ASP页面,用来接受用户输入的信息,调用中间层组件,把结果格式化为HTML形式,最终还要把结果页送回阅读器要是客户端代码不再如此依靠于HTML表单,客户端的编程不就简洁多了吗?还有,建立ASP页面的那一步可以省略掉吗?当然假如你的中间层组件是Webservice的话,你完全可以从用户界面干脆调用中间层组从而省掉建立ASP页面的那一止/J/O要调用Webservice,MicrosoftSOAPToolkit或.NET这样的SOAP客户端,也可以运用你自己开发的SOAP客户件,你可以直接使用端,然后把它和你的应用程序连接起来这样做,不仅可以缩短开发周期,还可以削减代码的困难度,。
个人认证
优秀文档
获得点赞 0