.net软件开发工程师常见面试题

应届毕业生面试题,亲身经历,分享给大家仅供参考,仅用于.net方向,

1、你的项目中有哪技术亮点?
说一下自己项目中的重点技术,讲一下没学过的技术自己从网上或者别的地方自学的技术。
2、EF过滤器有哪些?

3、EF性能优化
1.连接保持畅通
意思是不要在需要的时候连接了不需要的时候断开,需要了又去连接(特殊情况除外),目的在于减少对数据库的操作。

2.关闭EF的一些配置
EF使用时,会在Config中配置,对于使用CRUD功能,有一些是用不到的,可以关闭,关闭后的测试效果加快几秒,略微提升。

3.存入List
EF支持AddRange,如果需要存5条数据,将这5条数据放入list一次存入,要比一条一条的存大大的快。

4.查找数据用Linq or Lamba
遇到这样的情况,你需要从数据库中取某一条特定的数据,然后处理这条数据后存入另一个表,用foreach是吧,太慢了,换成Linq,上面草图中有个备注,再换成lamba试试。

5.数据放入内存
如果要从一个表中多次找数据来使用,那不如第一步先将这个表中所有数据或者需要的那部分特征数据都先放入内存中,从内存中读取的速度,大大的快于操作数据库,而这目的,也就是减少操作数据库的次数,耗性能。

6.使用BulkInsert
使用插件Extended,使用其中的BulkSaveChanges代替EF原生态的SaveChanges来保存数据,
4、自己搭建过项目框架吗?
有搭建过 例如:三层架构的搭建,mvc框架,项目框架的搭建

5、winform窗体传值方式?
1.通过构造函数进行传值。
实现代码如下:
在窗体Form2中
int value1;
string value2;
public Form2(int value1,string value2)
{
InitializeComponent();
this.value1=value1;
this.value2=value2;
}
在窗体Form1中这样调用就可以了:
new Form2(111,“222”).Show() //这样就把111,“222”这两个值传给了Form2

2.通过静态变量。传值是双向的,而且简单。
forexample:在一个app类中定义一个静态成员value
public class app
{
public static string value;
}
在窗体From1中这样调用:

app.value=“i love you”; //给静态成员赋值
new Form2().Show(); //显示Form2
在窗体Form2中这样写:
this.Text=app.value; //取回app.value的值
app.value=“i love you too”; //给app.value赋值,以便其他窗体调用

3.通过窗体的公有属性值
实现代码如下:
在窗体Form2中设置一个公有属性Form2Value,获取和设置TextBox1的文本值。

public string Form2Value
{
get
{
return this.TextBox1.Text;
}
set
{
this.TextBox1.Text=value;
}
}
在窗体Form1中这样调用:

Form2 f2=new Form2();
f2.Form2Value=“can you speak english?”;
f2.ShowDialog();

6、使用过模版页吗?
使用过 模板路径:Views/Shard/_Layout.cshtml
在做项目以及平时学习中都用到过模板页。

7、使用过Echart吗?
使用过
Echar是Enterprise Charts的缩写,商业级数据图表,一个纯Javascript的图表库。
在做项目使用到Echart图表来显示数据,但没有学过,自己从网络上找的使用方法 。

8、mvc模型绑定跟验证
在第七章

9、总结MVC的一些特性
MVC它是一种设计模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。
MVC的处理过程:
• 首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理。
• 然后模型根据用户请求进行相应的业务逻辑处理,并返回数据。
最后控制器调用相应的视图格式化模型返回的数据,并通过视图呈现给用户。
MVC的优点:
• 首先,最重要的一点是多个视图能共享一个模型。同一个模型可以被不同的视图重用,大大提高了代码的可重用性。
• 由于MVC的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松耦合的构件。
• 此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。
10、EF中使用事务
在EF中使用事务很简单,将操作放在TransactionScope中,并通过Complete()方法提交事务即可。
例如:

11、异常捕获方法
C# 异常处理时建立在四个关键词之上的:try、catch、finally 和 throw
try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块
catch:程序通过异常处理程序捕获异常。catch 关键字表示异常的捕获
finally:finally 块用于执行给定的语句,不管异常是否被抛出都会执行。例如,如果您打开一个文件,不管是否出现异常文件都要被关闭
throw:当问题出现时,程序抛出一个异常。使用 throw 关键字来完成。
三种异常的处理语句
1.try … catch //捕获异常
2.try … finally //清除异常
3.try … catch … finally // 处理所有异常

12、强类型

在第八章

13、强类型视图

在第八章

14、IEnumberable与IQueryable区别
IQueryable接口是继承自IEnumberable接口的。
IQueryable接口类型,有延迟加载机制,只有在使用到数据时才去查询数据库。
IEnumberable接口类型,没有延迟加载机制,立即查询数据库。
一般在数据层都返回IQueryable接口类型,在业务层可以根据需求是否需要延迟加载(如果需要放到Cache中时,一般不需要延迟加载,而是立即查询加载(.ToList()))。
15、面向对象三大特性
封装,继承,多态
具体的小蓝书上有
16、设计模式有哪些?
太多了,去底下链接看
https://blog.csdn.net/Net_Javaee/article/details/6099202

17、响应式布局学过吗?
学过 BootStrap
响应式布局:通过检测设备信息,决定网页布局方式,即用户如果采用不同的设备访问同一个网页,有可能会看到不一样的内容,一般情况下是检测设备屏幕的宽度来实现。

我们利用响应式布局可以满足不同尺寸的终端设备非常完美的展现网页内容,使得用户体验得到了很大的提升,但是为了实现这一目的我们不得不利用媒体查询写很多冗余的代码,使整体网页的体积变大,应用在移动设备上就会带来严重的性能问题。

响应式布局常用于企业的官网、博客、新闻资讯类型网站,这些网站以浏览内容为主,没有复杂的交互。

18、栅格布局
Bootstrap中

19、linq语句
1、无需复杂学习过程即可上手
2、编写更少代码即可创建完整应用。
3、更快开发错误更少的应用程序。
4、无需求助奇怪的编程技巧就可合并数据源。
5、让新开发者开发效率更高。
小蓝书上有!!!!!!!!!!
20、数据建模有哪些方式?
一.Database First
数据库优先
用”ADO.NET实体数据模型“生成模型
二.Code First
代码优先
三.Model First
模型优先

21、MVC主从表查询(三种)
课本P77

22、从事IT行业需要具有哪些特质?
有解决问题的能力
有独立思考的能力
有好奇心、有探索精神
逻辑清晰,能够用通俗的语言把技术问题讲清楚
有良好的英文阅读能力
数学好,算法好
等等等等 太多了 随机应变
23、项目做了多久?你在项目中开发了哪些模块?
多看看自己做的项目。给面试官讲一下。

你可能感兴趣的:(.NET,面试题,.net软件开发工程师)