个人总结ASP.NET必备面试题
1.你能解释下MVC的完整流程吗?
所有的终端用户请求被发送到控制器。控制器依赖请求去选择加载哪个模型,并把模型附加到对应的视图。附加了模型数据的最终视图做为响应发送给终端用户。
2. 那你说一下你对MVC的理解?
MVC是一种设计模式即主要的思想,是一种功能结构模块化的一种开发思想,目的是更好的管理自己的代码。
ASP.NET MVC是微软对ASP.NET WebForm框架做出的彻底重构,使Web应用程序的开发更加容易,更加清楚,而推出的一种UI框架。
3.什么是MVC中的Razor?
它是一个轻量级的视图引擎。
4.LinQ是什么?
LINQ是一种用来进行数据访问的编程模型,使得.NET语言可以直接支持数据查询LINQ的目标是降低访问数据的复杂度,
LINQ可以用统一的方法访问不同类型的数据,可以将数据作为对象使用,能够更好地与编程模型集成
5.Lambda表达式是什么呢?
Lambda表达式是匿名函数,而匿名函数又是委托,所以lambda表达式就是委托。
6.EF是什么?
EF是微软以Ado.net为基础发展而来的对象关系映射的orm框架,有三种实现方式:Code First,DB First,Model First,我们常用的是DB Frist,
设计好数据库,再进行代码编程,通过上下文对象实现交互。EF和Dapper的区别,EF是强类型的ORM框架,Dapper是弱类型的ORM框架
一、 Dapper
问题:简述你对Dapper的了解?
答案:1、Dapper是一个轻量级的ORM类,代码就一个SqlMapper.cs文件,编译后只有70k
2、Dapper支持多数据库,支持SqlServer,MySql,Oracle等
3、Dapper语法简单,容易上手
7、什么是委托,事件是不是一种委托?
1、委托可以把一个方法作为参数代入另一个方法。
2、委托可以理解为指向一个函数的引用。
3、事件是一种特殊的委托
delegate <函数返回类型> <委托名> (<函数参数>)
8.c#多线程是什么
多线程的优点:可以同时完成多个任务;可以使程序的响应速度更快;可以节省大量时间进行处理任务;可以随时停止任务;可以设置每个任务的优先级,以优化程序性能。
9.WebApi概述
Web API是在.NET Framework之上构建的Web的API的框架,Web API是一个编程接口,用于操作可通过标准HTTP方法和标头访问的系统,
Web API需要基于.NET 3.5或更高版本才可以进行开发
10.什么是WebService
webservice是一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间的交互,是基于网络的、分布式的模块化组件,它执行特定的任务,
遵守具体的技术规范。
11.存储过程是什么?有什么用?有什么优点?用什么来调用?
存储过程是预编译,安全性高,也是大大提高了效率,存储过程可以重复使用以减少数据库开发人员的工作量,复杂的逻辑我们可以使用存储过程完成,
在存储过程中我们可以使用临时表,还可以定义变量,拼接sql语句,调用时,只需执行这个存储过程名,传入我们所需要的参数即可,
12.何为触发器?
触发器是一种特殊的存储过程,主要是通过事件触发而被执行。它可以强化约束来维护数据的完整性和一致性,可以跟踪数据库内的操作从
而不允许未经许可的更新和变化。可以级联运算,
常见的触发器有三种:分别应用于Insert , Update , Delete 事件。
13.SQL优化
1.选择最有效率的表名顺序2.WHERE子句中的连接顺序3.SELECT查询中避免使用'*'4.减少访问数据库的次数5.使用DECODE函数来减少处理时间
6.用Where子句替换HAVING子句7.减少对表的查询使用表的别名9.用EXISTS替代IN。10.用NOT EXISTS替代NOT IN。11.用表连接替换EXISTS。
12.用EXISTS替换DISTINCT。13.用索引提高效率14.避免在索引列上使用计算15.避免在索引列上使用IS NULL和IS NOT NULL
14..事务的作用?
事物简单来说就是要么一起执行,要么就都不执行,如有一个地方出错,全部回滚,不执行
事务4大属性:
1 原子性(Atomicity):事务是一个完整的操作。
2 一致性(Consistency):当事务完成时,数据必须处于一致状态。
3 隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的。
4 持久性(Durability):事务完成后,它对于系统的影响是永久性的。
T-SQL中管理事务的语句:开始事务:begin transaction提交事务commit transaction回滚事务 rollback transaction
事务分类:显式事务:用begin transaction明确指定事务的开始。
2 隐性事务:当以隐性事务模式操作时,SQL Servler将在提交或回滚事务后自动启动新事务。无法描述事务的开始,只需要提交或回滚事务。
3 自动提交事务:SQL Server的默认模式,它将每条单独的T-SQL语句视为一个事务。如果成功执行,则自动提交,否则回滚。
什么是Ajax异步调用?
就是不需要加载整个页面的数据,只请求一小部分的数据,这样可以实现了异步的调用。
15.ORM是什么?
ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,
这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。
ORM方法论基于三个核心原则: 简单:以最基本的形式建模数据。 传达性:数据库结构被任何人都能理解的语言文档化。
精确性:基于数据模型创建正确标准化的结构。
16.什么叫做泛型?
从编程的角度说是在定义类或者方法的时候省去具体的类型,由调用者来指定,类型+泛型类型合成得到真正的类型。从实现机制上说,泛型是CLR在
运行时动态根据泛型类型创建的匿名类型。从OO设计的角度说,泛型体现了多态性。泛型使得程序员可以复用数据结构和算法,并且适应不同的类型,
享有编译期间的强类型检查和语法提示。一些经典的FCL提供的泛型类型和接口: List<T>、Dictionary<T1, T2>这个属于复用数据结构
IComparer<T>、IEnumerable<T>这个属于复用算法
17. C#中值类型和引用类型分别有哪些?
值类型:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型。引用类型:数组,用户定义的类、接口、委托,object,字符串。
18.在项目中如何解决高并发问题?
答案:尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。
优化数据库查询语句。
优化数据库结构,多做索引,提高查询效率。
统计的功能尽量做缓存,或按每天一统计或定时统计相关报表,避免需要时进行统计的功能。
能使用静态页面的地方尽量使用,减少容器的解析(尽量将动态内容生成静态html来显示)。
解决以上问题后,使用服务器集群来解决单台的瓶颈问题。
19.敏捷开发?
敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方式。它并不是一门技术,而是一种开发方式,也就是一种软件开发的流程。
它会指导我们用规定的环节去一步一步完成项目的开发。
因为它采用的是迭代式开发,所以这种开发方式的主要驱动核心是人。
20.请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
1、session(viewstate) 简单,但易丢失
2、application 全局
3、cookie 简单,但可能不支持,可能被伪造
4、input type=”hidden” 简单,可能被伪造
5、url参数简单,显示于地址栏,长度有限
6、数据库稳定,安全,但性能相对弱
21.IOC容器?
IOC即控制反转,是一种设计思想,在之前的项目中,当我们需要一个对象时,需要new一个对象,而IOC的设计思想是我们将需要的对象注入到一个容器中,
就会获得我们所需要的资源
【扩展】:IOC和DI IOC是控制反转,DI是依赖注入,控制反转的解释有些模棱两可,而依赖注入就很明确,我们将需要的对象注入到容器中,获取所需要的资源
22.Ado.net五大对象?
(1)Connection对象
Connection 对象就像是打仗时候的通信兵,他们在打仗之前需要先接通司令部与各个作战单位之间的通信线路。之后作战命令的获取以及发布都要靠通信线路来完成。
这里的司令部就类似于服务器,各作战单位就类似于各应用程序。
(2)Command对象
执行一些简单操作命令,如:增删改删,即执行T-SQL语句。Command对象有几个比较重要的方法,如ExecuteNonQuery()方法,执行增删改命令,返回的是受影
响的行数。查询方法有2种:一个是ExecuteReader()方法,返回一个DataReader对象。还有ExecuteScale()方法,返回首行首列值。
(3)DataAdapter对象
数据适配器,从数据库中检索数据,再填充到本地数据集中。同时,我们可以利用DataAdapter,再将数据反向从DataSet中更新回数据库。DataAdapter使用中主
要有4个命令对象比较重要。它们分别是:SelectCommand、InsertCommand、UpdateCommand、DeleteCommand。SelectCommand,主要是从数据库中检索数据
InsertCommand、UpdateCommand、DeleteCommand这3个命令对象主要负责把本地数据集DataSet中的数据上传回服务器。我们主要使用的是前者。
DataAdapter的Fill方法,用于使用DataAdapter的SelectCommand的执行结果集来填充DataSet。
(4)DataReader对象
当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader 对象。DataReader对象只是一次一笔向下循序地读取数据源中的数据,不作其它的操作
。因为DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。此外,因为不用把数据全部传回,
故可以降低网络的负载。但是,当我们从数据源中一条一条的读取数据的时候,一定记得要时刻打开数据库的连接。
二、DataSet对象
DataSet 这个对象可以视为本地内存中的一个数据库,可以把从数据库中所查询到的数据保留到本地。DataSet 的能力不只是可以储存多个Table,
还可以透过DataAdapter 对象取得一些例如主键等数据表结构,并可以记录数据表间的关联。当我们使用DataSet读取数据的时候,数据库的连接是否
关闭已经无关紧要了。DataSet 对象可以说是ADO.NET 中重量级的对象,通过DataAdapter 对象这个桥梁,实现了与数据源沟通的能力 。
个人总结ASP.NET必备面试题的更多相关文章
- 某公司ASP.NET应聘上机试题
ASP.NET笔试题是ASP.NET程序员面试必须经历的,一般会叫你填两个表 1个是你的详细信息表 1个是面试题答卷 两个都要注意反正面是否都有内容不要遗漏,如果考你机试一般也有两种,就是程序连接数据 ...
- ASP net core面试题汇总及答案
在dot net core中,我们不需要关心如何释放这些服务, 因为系统会帮我们释放掉.有三种服务的生命周期. 单实例服务, 通过add singleton方法来添加.在注册时即创建服务, 在随后的请 ...
- ASP.NET常见面试题及答案(130题)
1.C#中 property 与 attribute(抽像类)的区别,他们各有什么用处,这种机制的好处在哪里?答:property和attribute汉语都称之为属性.不过property是指类向外提 ...
- Asp.Net部分面试题
HTML.javascript部分 1. jQuery的美元符号$有什么作用? 答:个人理解:$指代jquery对象,拥有jquery对象所有的属性和成员 网友理解:在Jquery中,$是JQuery ...
- 微软推荐的130道ASP.NET常见面试题及答案
1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. protected : 保护成 ...
- asp.net一些面试题(转)
基础知识 什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP: 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可 ...
- ASP.NET+C#面试题
1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么? 尽可能用约束(包括CHECK.主键.唯一键.外键.非空字段)实现,这种方式的效率最好:其次用触发器,这种方式可以保证无论何种业 ...
- asp.net 数据库面试题(基础)
今天到某公司笔试,数据库考的比较多,但是说老实话,考的也比较基础.现在趁回忆得起来,将数据库知识简单整理如下: 一.建表指令 比如创建一个学生表student,它由学号Sno,姓名Sname,性别Ss ...
- asp.net常见面试题(一)
1.索引器 class Player { ]; public int this[int index] { get { || index >= ) { ; } else { return arr[ ...
随机推荐
- MySQL 死锁场景
SESSION 1 SESSION 2 SESSION 3 START TRANSACTION START TRANSACTION START TRANSACTION INSERT INS ...
- Python——正则表达式初步应用(一)
1.先附上转载(www.cnblogs.com/huxi)的一张图,有重要的参考价值,其含义大家请通过阅读来理解. 2.附上初步学习Python时编写的一个爬糗事百科段子的代码. # -*- codi ...
- 内存屏障和volatile内存语义的实现
趁周末,把以前的书拿出来,再翻一番,顺便做个笔记: 内存屏障:用来控制和规范cpu对内存操作的顺序的cpu指令. 内存屏障列表: 1.loadload:确保“前者数据装载”先于“后者装载指令”: 2. ...
- thinkphp在iis上不是出现500错误
按照官方文档,部署好iis下面URL重定向文件后,出现500错误,不停地百度,不停地修改web.config文件,终也不成. 在虚拟空间调整了php版本,一下子就好了.原来的版本为5.4,调整为5.6 ...
- 微信小程序中使用 <web-view> 内嵌 H5 时,登录问题的处理方法
在微信小程序的开发中,经常遇到需要使用 <web-view></web-view> 内嵌 H5 的需求.在这种需求中比较棘手的问题应该就是登录状态的判断了,小程序中的登录状态怎 ...
- HTTP协议 详解
前言 掌握HTTP协议是每一个开发者的基础,超详细的HTTP协议笔记 正文 HTTP协议格式总览 HTTP line HTTP Method(方法) 介绍了我们请求希望执行的操作类型. 方法有: GE ...
- vscode-Live Server的使用心得
一,安装Live Server插件(不详细说明了) 二,开启Server(服务) 有四种方式: 在窗口的最底部有Go Live可以点击,一旦点击,就会自动在浏览器中打开HTML文件 在HTML文件中右 ...
- 通过配置文件新建solr的core
目录solr-7.5.0\server\solr 1. 新建文件夹 test-core 2. 在文件夹test-core下新建core.properties name=test-core confi ...
- Windows如何上传代码到Github
1.首先得安装git客户端 进入官网:https://git-scm.com/ ,点击右侧下载windows版本的软件包,然后双击安装就可以了. 安装完成之后,在开始菜单可以看到,此时,在想上传的文件 ...
- WebRTC Precompiled 使用
最近研究webrtc native code,但源码太大(10GB以上)又需要FQ,就找了个预编译的版本https://sourcey.com/precompiled-webrtc-libraries ...