高级.net程序员面试

1. 请讲下WCF的工作原理

WCF的全称是Windows Communication Foundation,Windows通信基础的意思,是Microsoft为构建面向服务的应用程序而提供的统一编程模型,它整合.NET平台下所有和分布式系统有关的技术。

其次:

WCF本质是面向服务的。主要分为服务端和客户端两部分。

客户端在使用服务时,需要首先创建一个代理服务,然后调用这个代理服务。

EndPoint(终结点)在WCF中是非常重要的部分。它包含了服务地址(Address)、绑定格式(Binding)和契约(Contract)。其中,地址定义了服务的位置,绑定定义了服务通信的方式,契约定义了服务所提供的功能。为了便于记忆,我们将终结点的这三个要素简称为服务的ABC。

服务端提供了什么服务,都具备什么功能,这被称为WCF服务的契约。 

WCF服务不能凭空存在。每个WCF服务都必须托管(Hosting)在一个Windows进程中,该进程被称为宿主进程。

WCF服务宿主可以由IIS提供,可以由Windows服务提供,也可以由Windows Vista的Windows激活服务提供。其中,使用IIS托管只能使用HTTP协议。

2. asp.net framework 工作原理

 

 

  .Net Framework从出现到现在的.Net Framework 4.5,其框架结构没什么大的变化,都是CLR在OS上面,基类库在CLR上面,再之上是ADO.NET,XML等,再之上是asp.net ,window form,最上层就是我们经常用到的各种.Net开发工具了.

 

Microsoft .NET Framework由应用程序开发技术、Microsoft .NET Framework 类库、基类库和公共语言运行库(CLR)4个部分组成。这4个部分如图所示,每个较高的层都使用一个或多个较低的层。

1.应用程序开发技术

应用程序开发技术位于框架的最上方,是应用程序开发人员开发的主要对象。它包括ASP .NET技术和WinFroms技术等高级编程技术。

2.Microsoft .NET Framework 类库

Microsoft .NET Framework 类库是一个综合性的类型集合,用于应用程序开发的一些支持性的通用功能。开发人员可以使用它开发多种模式的应用程序,可以是命令行形式,也可以图形界面形式的应用。Microsoft .NET Framework 中主要包括以下类库:数据库访问(ADO .NET等)、XML支持、目录服务(LDAP等)、正则表达式和消息支持。

3.基类库

基类库提供了支持底层操作的一系列通用功能。Microsoft .NET 框架主要覆盖了集合操作、线程支持、代码生成、输入输出(IO)、映射和安全等领域的内容。

4.公共语言运行库(CRL)

公共语言运行库是Microsoft .NET Framework 的基础内容,也是Microsoft .NET程序的运行环境,用于执行和管理任何一种针对Microsoft .NET平台的所有代码。CLR可以为应用程序提供很多核心服务,如内存管理、线程管理和远程处理等,并且还强制实施代码的安全性和可靠性管理。

3. 讲下MVC的原理和优缺点

1 模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。
mvc是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。
MVC 的工作原理  Event(事件)导致 Controller 改变 Model 或 View,或者同时改变两者。只要 Controller 改变 Model 的数据或者属性,所有依赖的 View 就会自动更新。类似的,只要 Controller 改变了 View,View 会从潜在的 Model 中获取数据来刷新自己。
2. MVC的优点 
可以为一个模型在运行时同时建立和使用多个视图
视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换。 
模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。需要做的只是在新平台上对视图和控制器进行新的修改。 
潜在的框架结构。可以基于此模型建立应用程序框架,不仅仅是用在设计界面的设计中。 
显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性
3. MVC的不足
增加了系统结构和实现的复杂性,降低运行效率
视图对模型数据的的频繁访问

4. 讲下WPF的原理

WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,

Windows Presentation Foundation (WPF) 是微软推出的基于Windows Vista的用户界面框架,是下一代显示系统,用于生成能带给用户震撼视觉体验的 Windows 客户端应用程序。 真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

大多数WPF程序都将同时包含XAML代码和程序代码。我们首先使用XAML定义程序界面(如前所述,可以手工编写,也可以采用Experssion Blend等可视化工具编写),然后再用.NET语言(C#, VB.Net等)编写相应的逻辑代码。和ASP.NET类似,逻辑代码既可以直接嵌入XAML文件中,也可保存为独立的代码文件。 

WPF 的核心是一个与分辨率无关并且基于向量的呈现引擎,旨在利用现代图形硬件的优势。WPF 通过一整套应用程序开发功能扩展了这个核心,这些功能包括可扩展应用程序标记语言 (XAML)、控件、数据绑定、布局、二维和三维图形、动画、样式、模板、文档、媒体、文本和版式。WPF 包含在 Microsoft .NET Framework 中,使您能够生成融入了 .NET Framework 类库的其他元素的应用程序。

 

5. 讲下WF的原理

 

6. 讲下Entityfrawework 介绍及优缺点

 Entity Framework  是微软推荐出.NET平台ORM开发组件, 现在已放源代码

优势

? All -in-1框架的类映射表,需要编写映射代码, 并且是很难维护的。 
? 可维护性,易于理解的代码,无需创造大的数据访问层。 
? 提供LINQ查询数据库,这需要从初级开发人员不太了解SQL。 
? EF可以用作用于数据服务和OData Service的基础设施。

劣势。

性能不高,也不适合实时性要求高的系统

内存开销大

会有延迟,因为EF需要跟踪实体的变化的和大Collection对象的处理。

 

7. 反射和序列号

8.控制反转和依赖注入

9.设计模式

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。