asp.net面试题总结1(未完待续。。。。)
1、MVC中的TempData\ViewBag\ViewData区别?
答:页面对象传值,有这三种对象可以传。
Temp:临时的
Bag:袋子
(1) TempData 保存在Session中,Controller每次执行请求的时候,会从Session中先获取 TempData,而后清除Session,获取完TempData数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删 除。具体代码层面,TempData获取过程是通过SessionStateTempDataProvider.LoadTempData方法从 ControllerContext的Session中读取数据,而后清除Session,故TempData只能跨Controller传递一次。
(2) ViewBag和ViewData只在当前Action中有效,等同于View
(3)ViewData和ViewBag 中的值可以互相访问,因为ViewBag的实现中包含了ViewData
2、ASP.NET和ASP.NET MVC的关系
答:
ASP.NET MVC是ASP.NET的子集
从mvc的核心命名空间System.Web.Mvc就能看出,因为System.Web是Asp.NET的核心命名空间。
ASP.NET MVC是在核心ASP.NET基础之上构建的。
具体体现在以下方面
(1)ASP.NET MVC依赖于HttpHandler
关于请求是怎么进入控制器的,其实就是用到了HttpHandler
(2)Session、Cookie、Cache和Application这些ASP.NET的对象保存机制在MVC中依然是需要用到的
(3)HttpContext、Request、Response、Server对象在MVC中仍然可以使用,在Controller中通过智能感知的形式很容易得到这些对象
3、阐述下MVC框架的机制,各个模块的作用?
答:
1、UrlRoutingModule模块截获请求,从路由表中得到该URL对应的RouteData
2、RouteData+URL封装成一个IHttpContext对象
3、IHttpContext对象从RouteData中得到Controller名字,根据名字反射创建Controller对象
4、Controller对象执行对应的Action方法,并返回View()
一:用法和区别
drop:drop table 表名
删除内容和定义,并释放空间。执行drop语句,将使此表的结构一起删除。
truncate (清空表中的数据):truncate table 表名
删除内容、释放空间但不删除定义(也就是保留表的数据结构)。与drop不同的是,只是清空表数据而已。
truncate不能删除行数据,虽然只删除数据,但是比delete彻底,它只删除表数据。
delete:delete from 表名 (where 列名 = 值)
与truncate类似,delete也只删除内容、释放空间但不删除定义;但是delete即可以对行数据进行删除,也可以对整表数据进行删除。
二:注意
1.delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存,以便进行进行回滚操作。
2.执行速度一般来说:drop>truncate>delete
3.delete语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。
4.truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发trigger。
5.truncate语句执行以后,id标识列还是按顺序排列,保持连续;而delete语句执行后,ID标识列不连续
6、描述EF和ado.net的优缺点?
答:
EF 优点:(1)面向对象编程
(2)代码量少,开发方便
缺点:(1)有一定的性能损耗
(2)优化的时候不灵活,不如直接写sql
ado.net 优点:(1)直接操作数据库,速度快
(2)优化sql灵活
缺点:(1)代码量大,自己处理的事情多
7、MVC的Filter有几种?分别是什么?主要特点是什么?
8、阐述下数据库的三大范式?
答:
9、怎么理解线程池,他的优缺点有哪些?
答: 线程池是用来存放线程的对象池。线程池的目的就是因为创建一个线程代价比较高,因此我们使用线程池来复用线程。
优点:
(1)减少创建线程的开销,线程能复用
缺点:
(1)不能设置池中线程的优先级和名称
(2)线程池中的所有线程都是后台线程。如果进程的所有前台线程都结束了,所有的后台线程就会停止。不能把入池的线程改为前台线程
10、视图有更新操作,你不知道吗?
答:
(未完待续。。。。)