.Net高级工程师面试题

----------高级开发工程师
岗位职责:

1、完成平台系统新功能模块开发,维护现有产品,独立地设计、开发、实现和测试关键系统;

2、负责公司项目核心代码的编写;

3、根据产品需求进行业务功能的开发和设计工作;

4、学习应用新技术,优化产品和系统实现

任职要求:

1、5年以上项目开发经验,熟悉B/S开发模式、Windows Service开发应用;

2、5年以上SQLServer数据库系统开发经验,能够对数据库进行分析优化;熟悉mysql优先;

  答:对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引

  平衡树、哈希桶作用索引的数据结构,聚集索引加主键。非聚集索引给表添加索引,会增加表的体积, 占用磁盘存储空间。非聚集索引和聚集索引的区别在于, 通过聚集索引可以查到需要查找的数据, 而通过非聚集索引可以查到记录对应的主键值 , 再使用主键的值通过聚集索引查找到需要的数据。覆盖索引,双字段的直接定位,省去找主键值,通过主键值找数据步骤。

3、熟练使用Net Framework、Asp.Net、Asp.Net Mvc、AJax、Entity Framework、WCF等语言或Web技术;

  答:Microsoft .NET Framework是用于Windows的新托管代码编程模型。

  asp.net工作原理:从使用的角度看,ASP.NET的运行过程包含页面请求、分析、编译、组装、页面缓冲五大环节。当客户端通过浏览器请求(Request)页面时,服务器端首先由页面分析器(Parser)对被请求的页面进行分析;再将通过分析的页面内容传递给编译器(Compiler);经过编译器编译的页面内容被传输给组装缓存(Assembly Cache),同时,一些需要较高资源代价的元素可以创建一次后存人内存(Memory);将组装缓存和内存中的内容有机结合后形成一个完整页面(包括数据、编译代码、HTML代码等),完整页面最后被送往输出缓存(Output Cache)。输出缓存中的内容将作为客户端的页面请求结果被送回浏览器。当同一页面被第二次请求时,服务器端将跳过所有中间环节,直接从输出缓存中送出页面请求结果。

  参考 Asp.Net页面生命周期

    用三张图片详解Asp.Net 全生命周期

  Ajax 是一种独立于 Web 服务器软件的浏览器技术。

  Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。Ajax = 异步 JavaScript 和 XML 或者是 HTML(标准通用标记语言的子集)。Ajax 是一种用于创建快速动态网页的技术。Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

  ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。该框架曾经为.NET Framework的一部分,但version 6之后从.NET Framework分离出来。

  优点:

  1.简洁的Linq to Sql语句大大提高了开发人员的效率,不要再写复杂的sql语句;

  2.不再需要再管应用程序如何去连接数据库;

  3.EF可以用作用于数据服务和OData Service的基础设施;

  缺点:

  1.由于linq语句编译之后就是sql,对于这种自动生成的sql语句无法控制;

  2.EF的运行机制会消耗大量内存,大大降低了程序运行效率,从而导致降低了用户在客户端的体验效果;

  3.一旦数据结构发生变化,需要更新EF数据model;有时还可能会出现找不到更新过的实体类这种情况

4、对面向对象有深入的理解,对于注入,重构和优化性能有独特的见解;

5、具有良好的沟通能力、理解能力及团队精神,责任心强,承受较大的工作压力;

6、熟悉html、javascript、css等开发技术;掌握jQuery及其相关插件的使用技术优先;

7、熟练使用redis、memcached等缓存技术;

8、有大数据并发或多线程处理等相关经验者优先。

猜你喜欢

转载自www.cnblogs.com/hofmann/p/10836326.html