c#高级程序员面试题(附部分参考答案)

2020-03-27 13:02

1. 简要说一下.Net的编译过程.

ASP.NET 必须首先将代码编译成一个或多个程序集。 程序集即文件扩展名为 .dll 的文件。 您可以采用多种不同的语言来编写 ASP.NET 代码,如 Visual Basic、C#、J# 和其他语言。 当在编译代码时,会将代码翻译成一种名为 Microsoft 中间语言 (MSIL) 的与语言和 CPU 无关的表示形式。 运行时,MSIL 将运行在 .NET Framework 的上下文中,.NET Framework 会将 MSIL 翻译成 CPU 特定的指令,以便计算机上的处理器运行应用程序。 MSDN:http://msdn.microsoft.com/zh-cn/library/ms178466.aspx 2. ASP.NET与ASP的区别

1.开发语言不同

ASP仅局限于使用non-type脚本语言来开发,用户给WEB页中添加ASP代码的方法与客户端脚本中添加代码的方法相同,导致代码杂乱。

ASP.NET允许用户选择并使用功能完善的strongly-type编程语言,也允许使用潜加巨大的.NET Framework。 2.运行机制不同

ASP是解释运行的编程框架,所以执行效率加较低。

ASP.NET是编译性的编程框架,运行是服务器上的编译好的公共语言运行时库代码,可以利用早期绑定,实施编译来提高效率。 3.开发方式

ASP把界面设计和程序设计混在一起,维护和重用困难。

ASP.NET把界面设计和程序设计以不同的文件分离开,复用性和维护性得到了提高。 http://zhidao.http://m.wodefanwen.com//question/2854823 3. 谈一下ASP.NET页面生命周期

ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。了解页生命周期非常重要,因为这样做您就能在生命周期的合适阶段编写代码,以达到预期效果。此外,如果您要开发自定义控件,就必须熟悉页生命周期,以便正确进行控件初始化,使用视图状态数据填充控件属性以及运行任何控件行为代码。(控件的生命周期基于页的生命周期,但是页引发的控件事件比单独的 ASP.NET 页中可用的事件多。) http://msdn.microsoft.com/zh-cn/library/ms178472(VS.80).aspx 4. ASP.NET程序的运行机制。可以从一个页面的请求到返回的角度谈

ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。 这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。 了解页生命周期非常重要,因为这样做您就能在生命周期的合适阶段编写代码,以达到预期效果。

MSDN:http://msdn.microsoft.com/zh-CN/library/ms178472.aspx

博客园: http://www.cnblogs.com/dy0768/archive/2009/02/12/1388937.html 5. Javascript中类库的制作和调用方法

创建外部JS文件,在JS文件中可以创建多个对象或类。一个JS文件可以看成是一个类库。

首先引用该JS类库,再实例化类库中的对象即可实现调用。 6. AJAX原理及你所知道和使用过的版本

简单的讲就是客户端通过javascript脚本获取服务器端的文本,通过解析返回值,更新部分的网页内容。

ASP.NET中AJAX版本: ? ? ? ?

ASP.NET 2.0 AJAX Extensions 1.0 ASP.NET AJAX 3.5

Microsoft AJAX Library 3.5 SP1 ASP.NET AJAX 4.0 Preview 3

7. WebService使用的协议及简述工作流程

封装必须是SOAP(Simple Object Access Protocol简单对象存取)协议 封装后的消息你可以通过各种已有的协议来传输,比如http,https,tcp/ip,smtp等

step 1: 加入web 应用,将刚才发布的web服务加入,这时生成了上述web服务在本地的一个代理,我们假设为WebProxy。

step 2: 客户端调用之前首先实例化一个该代理的对象,然后调用发布的方法

step 3: 客户端将调用信息包括方法名和参数加入到soap消息中通过http传送给web service服务端

step 4: 服务端从soap消息中获得调用信息,然后执行方法,将返回结果加入到soap消息中然后通过http传回

step 5: 客户端代理得到这个soap消息后解析处结果返回给调用客户端方法 8. 谈一下WebService的安全性及相关技术

1. 接收到来自网络的 SOAP 请求。它是否包含身份验证凭证取决于所使用的身份验证类

型。

2. IIS 可以有选择地使用基本、摘要、集成(NTLM 或 Kerberos)或证书身份验证对调用

者进行身份验证。在不能使用 IIS (Windows) 身份验证的异类环境中,可以将 IIS 配置为使用匿名身份验证。在这个方案中,可以使用消息级属性(例如,在 SOAP 标头中传递的票证)对客户端进行身份验证。

3. IIS 也可以配置为只接受来自特定 IP 地址的客户端计算机的请求。

4. IIS 将已验证的调用者的 Windows 访问令牌传递给ASP.NET (如果将 Web 服务配置

为使用匿名身份验证,则它可能是匿名 Internet 用户的访问令牌)。

5. ASP.NET 对该调用者进行身份验证。如果将 ASP.NET 配置为使用 Windows 身份验证,

则此时不会进行任何其他的身份验证;IIS 对调用者进行身份验证。

如果使用的是非 Windows 身份验证方法,则将 ASP.NET 身份验证模式设置为“无”以使用自定义身份验证。

注Web 服务目前不支持表单和 Passport 身份验证。

6. ASP.NET 通过使用 URL 授权和文件授权来授权访问所请求的 Web 服务(.asmx 文

件),文件授权使用与 .asmx 文件关联的 NTFS 权限来确定是否将访问权限授予已验证身份的调用者。

注只能将文件授权用于 Windows 身份验证。

对于细分的授权,还可以使用 .NET 角色(以声明方式或编程方式)确保授权调用者访问所请求的 Web 方法。

7. Web 服务中的代码可以使用特定标识来访问本地和/或远程资源。在默认情况下,

ASP.NET Web 服务不执行任何模拟,因此,配置的 ASP.NET 进程帐户提供该标识。也可以选择原调用者的标识或已配置的服务标识。

强悍的技术参考文章:http://www.cnblogs.com/aivdesign/articles/1258795.html

http://www.cnblogs.com/richardtsuis/articles/803766.html http://msdn.microsoft.com/zh-cn/library/aa302390.aspx 9.事务操作的原理及同库事务及跨库事务的思路

首先题目问的有点模糊,事务有很多种。不知道出题者是要问具体的那种事务。此答案暂以NET中的事务处理作答!

事务处理协议分成两个阶段(准备阶段和提交阶段) 应用程序选择控制代理,即commit agent.

commit agent可以是参与的资源管理器之一,例如com+或者其他的资源管理器 下面是执行的步骤

1。评估每一个资源管理器的条件,以com+为例 2。启动每一个管理器将会处理的方法 3。确认方法已经启动

4。应用程序检察确保所有的管理器都成功的完成了他们的功能。 5。确认没有错误 6。把条件报告给com+ 7.确认可以开始提交

8。发送提交,修改所有的数据

如果任何参与的资源管理器提交失败,应用程序必须在所有的资源管理器中中止事务处理 跨库事务处理思路:

首先进行本地的数据库提交, 如果本地失败,那直接进行回滚,

如果本地成功,则进行远程提交,捕获远程提交的结果, 如果抛出远程异常(remoteExcepiton),则进行回滚 如果成功,则进行提交.

9. 简述你的一个项目,主要的流程及部署

可行性分析->招投标->需求分析->概要设计->详细设计->代码编写和单元测试->集成测试->部署试运行->验收->后期升级维护。 10. 谈一下你对SOA的理解及熟习的SOA架构

SOA--Service-Oriented Architecture。

SOA 是一种 IT 体系结构样式,支持将您的业务作为链接服务或可重复业务任务进行集成,可在需要时通过网络访问这些服务和任务。这个网络可能完全包含在您的公司总部内,也可能分散于各地且采用不同的技术,通过对来自纽约、伦敦和香港的服务进行组合,可让最终用户感觉似乎这些服务就安装在本地桌面上一样。

SOA优点:

﹡更高的业务和 IT 一致性 ﹡基于组件的系统 ﹡松散耦合的组件和系统

﹡基于网络的基础设施,允许分散于各地且采用不同技术的资源协同工作 ﹡动态构建的按需应用程序 ﹡更高的代码重用率

﹡更好地标准化整个企业内的流程 ﹡更易于集中企业控制 SOA主要特点:

? 松耦合

服务请求方与服务之间应该是松耦合的。它们之间不是绝对相互依赖的关系,它们可能各自有自己的独立功能,有需要的时候一方向另一方请求服务以完成某项功能,但是如果访问不到该服务,也不会影响到请求方的其它功能的正常运作。这样降低了双方的耦合性,也就降低了系统间的相互间的不良影响的扩散,提高了整体的可靠性。 ? 明确定义的接口

服务交互必须是明确定义的。Web 服务描述语言(Web services Description Language,WSDL)是受到广泛支持的方法,用于描述服务请求者所要求的绑定到服务提供者的细节。服务描述的重点在于与下面几部分交互所用的操作:

服务

调用操作的消息 构造这种消息的细节

关于向何处发送用于构造这种消息的处理细节的消息的信息

WSDL 不包括服务实现的任何技术细节。服务请求者不知道也不关心服务究竟是由 Java 代码、C#、COBOL,还是由某种其他的程序设计语言编写的。WSDL 的通用定义允许开发工具创建各种各样类型的交互的通过接口,同时隐藏它是如何由应用程序代码调用服务的细节。 ? 无状态的服务设计

服务应该是独立的、自包含的请求,在实现时它不需要从一个请求到另一个请求的信息或状态。服务不应该依赖于其他服务的上下文和状态。

如果需要服务端保存每次客户端请求的状态,将会大大加大复杂性,也有悖松耦合的理念。实际中往往有需要在客户端多次访问服务端时保持状态,这时最好的处理方法是由客户端记住状态,下次请求服务时把状态发送到服务端,服务端在任何时候接收到请求都当作一个新的请求进行处理。


c#高级程序员面试题(附部分参考答案).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:网站优化方案模板

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: