2023年6月20日发(作者:)

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

必须首先将代码编译成一个或多个程序集。 程序集即文件扩展名为 .dll 的文件。

您可以采用多种不同的语言来编写 代码,如 Visual Basic、C#、J# 和其他语言。

当在编译代码时,会将代码翻译成一种名为 Microsoft 中间语言 (MSIL) 的与语言和 CPU

无关的表示形式。 运行时,MSIL 将运行在 .NET Framework 的上下文中,.NET Framework

会将 MSIL 翻译成 CPU 特定的指令,以便计算机上的处理器运行应用程序。

MSDN:/zh-cn/library/

2. 与ASP的区别

1.开发语言不同

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

允许用户选择并使用功能完善的strongly-type编程语言,也允许使用潜加巨大的.NET Framework。

2.运行机制不同

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

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

3.开发方式

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

把界面设计和程序设计以不同的文件分离开,复用性和维护性得到了提高。

/question/2854823

3. 谈一下页面生命周期

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

/zh-cn/library/ms178472(VS.80).aspx

4. 程序的运行机制。可以从一个页面的请求到返回的角度谈

页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。 这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。

了解页生命周期非常重要,因为这样做您就能在生命周期的合适阶段编写代码,以达到预期效果。

MSDN:/zh-CN/library/

博客园: /dy0768/archive/2009/02/12/

5. Javascript中类库的制作和调用方法

创建外部JS文件,在JS文件中可以创建多个对象或类。一个JS文件可以看成是一个类库。 首先引用该JS类库,再实例化类库中的对象即可实现调用。

6. AJAX原理及你所知道和使用过的版本

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

中AJAX版本:

2.0 AJAX Extensions 1.0

AJAX 3.5

Microsoft AJAX Library 3.5 SP1

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 访问令牌传递给 (如果将 Web 服务配置为使用匿名身份验证,则它可能是匿名 Internet 用户的访问令牌)。

5. 对该调用者进行身份验证。如果将 配置为使用 Windows 身份验证,则此时不会进行任何其他的身份验证;IIS 对调用者进行身份验证。

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

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

6. 通过使用 URL 授权和文件授权来授权访问所请求的 Web 服务(.asmx 文件),文件授权使用与 .asmx 文件关联的 NTFS 权限来确定是否将访问权限授予已验证身份的调用者。

注只能将文件授权用于 Windows 身份验证。 对于细分的授权,还可以使用 .NET 角色(以声明方式或编程方式)确保授权调用者访问所请求的 Web 方法。

7. Web 服务中的代码可以使用特定标识来访问本地和/或远程资源。在默认情况下, Web 服务不执行任何模拟,因此,配置的 进程帐户提供该标识。也可以选择原调用者的标识或已配置的服务标识。

强悍的技术参考文章:/aivdesign/articles/

/richardtsuis/articles/

/zh-cn/library/

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 的通用定义允许开发工具创建各种各样类型的交互的通过接口,同时隐藏它是如何由应用程序代码调用服务的细节。

 无状态的服务设计

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

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

推荐使用粗粒度的接口,一般是把具有比较完整的功能包装成服务对外提供,这样可以体现服务的意义,才能称得上是服务。如果对外提供的服务粒度很细,每个服务提供一个简单的数据返回,要完成一个完整的功能,可能需要客户调用多次服务才能完成,这样的服务不但使用繁琐,也会增加不必要的网络通讯压力,这样的服务适合做内部的接口,不适合做对外的服务。

主流SOA架构:

微软:biztalk

IBM:WebSphere MQ以及WebSphere Business Integration Message Broker。

SAP:mySAP、SAP Business All-in-one、SAP Business one

ORACLE:Oracle SOA Suite

WebMethods:webMethods Integration Platform

BEA:AquaLogic(在2008年1月16日,以85亿美元被Oracle公司收购)

参考:/blog/405754

11. 谈一下你对SaaS的理解

SaaS是Software-as-a-service(软件即服务)的简称,是随着互联网技术的发展和应用软件的成熟,而在21世纪开始兴起的一种完全创新的软件应用模式。它与“on-demand software”(按需软件),the application service provider(ASP,应用服务提供商),hosted software(托管软件)所具有相似的含义。它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。

在这种模式下,客户不再象传统模式那样花费大量投资用于硬件、软件、人员,而只需要支出一定的租赁服务费用,通过互联网便可以享受到相应的硬件、软件和维护服务,享有软件使用权和不断升级,这是网络应用最具效益的营运模式。

参考:/a/20090709/

13.你是否在之外还会JAVA、PHP?

14.如果让你设计一个登录模块,你会怎么考虑和制作?

15.如果让你制作日志模块,你会怎么考虑和制作?

16.如果让你制作用户权限模块,你会怎么考虑和制作?

17.如果让你做文件上传模块,你会怎么考虑和制作?如果文件大于1G你会怎么考虑设计?

1.分割成多个块,压缩,上传,然后再合并

2.多线程上传 上传(问题多,慎用)

/JeffreyZhao/archive/2008/02/12/aspnet_

/bashan/archive/2008/05/14/

/art/201002/183218_

18.是否了解及使用过WCF、WF、WPF?

页面的打印及报表的输出思路?

20.报表的制作思路?

21.谈一下你对.Net中垃圾回收的理解?

博客园:/page/106720/

和的区别?

ADO和的区别:

ADO使用OLE DB接口并基于微软的COM技术

而拥有自己的接口并且基于微软的.NET体系架构。

ADO以Recordset存储,而则以DataSet表示。

Recordset看起来更像单表,如果让Recordset以多表的方式表示就必须在SQL中进行多表连接。

反之,DataSet可以是多个表的集合。ADO 的运作是一种在线方式,这意味着不论是浏览或更新数据都必须是实时的。

则使用离线方式,在访问数据的时候会利用XML制作数据的一份幅本

的数据库连接也只有在这段时间需要在线。

由于ADO使用COM技术,这就要求所使用的数据类型必须符合COM规范

而基于XML格式,数据类型更为丰富并且不需要再做COM编排导致的数据类型转换,从而提高了整体性能。

为.NET构架提供了优化的数据访问模型,和基于COM的ADO是完全两样的数据访问方式。

与ado存在着比较大的差异:

1.遵循更通用的原则,不那么专门面向数据库。

集合了所有允许数据处理的类。这些类表示具有典型数据库功能(如索引,排序和视图)的数据容器对象。

尽管是.net数据库应用程序的权威解决方案

但从总体设计上看,它不像ado数据模型那样以数据库为中心,这是的一大特点。

2.目前,提供了两种数据库访问类库:一种用于sql server 7.0 或更高版本

另一种用于其他所有您可能已经安装的ole db提供程序。 在这两种情况下,您分别使用不同的类,但遵循相似的命名规则。

除前缀,名称都是相同的。前一种情况前缀为sql,后一种情况则是oledb。

同时,.net框架还提供了odbc .net的数据访问模式。

odbc .net data provider是 .net 框架的增强组件,它可以访问原始的 odbc 驱动程序

就像 ole db .net data provider 可以访问原始的 ole db providers 一样。

目前它仅在下列驱动程序中测试过:

microsoft sql odbc driver,microsoft odbc driver for oracle,microsoft jet odbc driver。

3.提供了两个队形来处理从数据源中抽取数据,它们是dataset和datareader对象。

前者是记录在内存中的缓存,您可以从任何方向随意访问和修改。

后者是高度优化的对象,专为以仅向前方式滚动只读记录而设计。

4.统一了数据容器类编程接口,无论您打算编写何种应用程序,windows窗体,web窗体还是web服务

都可以通过同一组类来处理数据。

不管在后端的数据源数sql server数据库,ole db,xml文件还是一个数组

您都可以通过相同的方法和属性来滚动和处理它们的内容。

5.在ado中,xml只不过是输入和输出格式。

然而在中,xml是一种数据格式,提供了操作,组织,共享和传递数据的手段。

ADO。NET相对于ADO等主要有什么改进?

1:不依赖于ole db提供程序,而是使用.net托管提供的程序,

2:不使用com

3:不在支持动态游标和服务器端游

4:,可以断开connection而保留当前数据集可用

5:强类型转换

6:xml支持

23.托管程序与非托管程序的区别

一般一个可执行文件的内部都包含一个PE头,系统根据PE的信息找到入口函数,在通过执行入口函数中的代码来执行可执行程序。托管程序的文件中相对于非托管程序还包含了一个CLR表头文件以及其他CLR需要的信息。

(1)非托管程序的执行过程

在非托管程序中,可执行里面保存的是机器代码,CPU可以直接加载并执行,当系统加载了可执行程序后,系统就将可执行文件的段基址加上偏移地址形成实际的物理地址,并直接加载到内存中运行。

(2)托管程序的执行过程

托管程序的可执行文件中,包含的是中间语言以及元数据,当然不能直接运行,必须启动CLR,由CLR对中间语言进行即时编译成机器代码,并加载到内存里面执行(具体过程: 程序在进入入口函数前会提前跳转到中,调用它的代码来启动CLR并完成一些初始化工作)。当然,IL中的方法并不是每次被调用都会被编译一次,而是它只有在第一次调用时才进行编译,即时编译器会将方法名称以及对应的入口地址存放在映射表中,当下次调用该方法时,会直接从映射表里去而不是再编译一次。

24.

readonly 关键字与 const 关键字

1. const 字段只能在该字段的声明中初始化。

readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly

字段可能具有不同的值。

2. const 字段是编译时常数,而 readonly 字段可用于运行时常数。

3. const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。

4.const 对于引用类型的常数,可能的值只能是 string 和 null。

readonly可以是任何类型

25.反射和序列化

反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性

序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用

HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。

26. ArrayList 类和Array类的区别

1Array位于system命名空间中,而ArrayList位于tions命名空间中。

2Array的容量是固定的,而ArrayList的容量是根据需要自动扩展的。如果更改了ty属性的值,则自动进行内存重新分配额元素复制。

3ArrayList提供添加,插入或移除某一范围元素的方法。在Array中,只能一次获取或设置一个元素的值。

4使用Synchronized方法可以很容易地创建arraylist的同步版本。而array将一直保持它直到用户实现同步为止。

5ArrayList提供将只读和固定大小包装返回到集合的方法,而array不提供。

6另一方面,array提供arraylist所不具有的某些灵活性。

7可以设置array的下限,但arraylist的下限始终为零。

8array可以具有多个维度,而arraylist始终只是一维的

9特定类型的array具有比arraylist更好的性能,则是因为arraylist的元素属于object类型,所以在存储或检索值类型时通常发生装箱和取消装箱

2023年6月20日发(作者:)

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

必须首先将代码编译成一个或多个程序集。 程序集即文件扩展名为 .dll 的文件。

您可以采用多种不同的语言来编写 代码,如 Visual Basic、C#、J# 和其他语言。

当在编译代码时,会将代码翻译成一种名为 Microsoft 中间语言 (MSIL) 的与语言和 CPU

无关的表示形式。 运行时,MSIL 将运行在 .NET Framework 的上下文中,.NET Framework

会将 MSIL 翻译成 CPU 特定的指令,以便计算机上的处理器运行应用程序。

MSDN:/zh-cn/library/

2. 与ASP的区别

1.开发语言不同

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

允许用户选择并使用功能完善的strongly-type编程语言,也允许使用潜加巨大的.NET Framework。

2.运行机制不同

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

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

3.开发方式

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

把界面设计和程序设计以不同的文件分离开,复用性和维护性得到了提高。

/question/2854823

3. 谈一下页面生命周期

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

/zh-cn/library/ms178472(VS.80).aspx

4. 程序的运行机制。可以从一个页面的请求到返回的角度谈

页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。 这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。

了解页生命周期非常重要,因为这样做您就能在生命周期的合适阶段编写代码,以达到预期效果。

MSDN:/zh-CN/library/

博客园: /dy0768/archive/2009/02/12/

5. Javascript中类库的制作和调用方法

创建外部JS文件,在JS文件中可以创建多个对象或类。一个JS文件可以看成是一个类库。 首先引用该JS类库,再实例化类库中的对象即可实现调用。

6. AJAX原理及你所知道和使用过的版本

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

中AJAX版本:

2.0 AJAX Extensions 1.0

AJAX 3.5

Microsoft AJAX Library 3.5 SP1

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 访问令牌传递给 (如果将 Web 服务配置为使用匿名身份验证,则它可能是匿名 Internet 用户的访问令牌)。

5. 对该调用者进行身份验证。如果将 配置为使用 Windows 身份验证,则此时不会进行任何其他的身份验证;IIS 对调用者进行身份验证。

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

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

6. 通过使用 URL 授权和文件授权来授权访问所请求的 Web 服务(.asmx 文件),文件授权使用与 .asmx 文件关联的 NTFS 权限来确定是否将访问权限授予已验证身份的调用者。

注只能将文件授权用于 Windows 身份验证。 对于细分的授权,还可以使用 .NET 角色(以声明方式或编程方式)确保授权调用者访问所请求的 Web 方法。

7. Web 服务中的代码可以使用特定标识来访问本地和/或远程资源。在默认情况下, Web 服务不执行任何模拟,因此,配置的 进程帐户提供该标识。也可以选择原调用者的标识或已配置的服务标识。

强悍的技术参考文章:/aivdesign/articles/

/richardtsuis/articles/

/zh-cn/library/

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 的通用定义允许开发工具创建各种各样类型的交互的通过接口,同时隐藏它是如何由应用程序代码调用服务的细节。

 无状态的服务设计

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

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

推荐使用粗粒度的接口,一般是把具有比较完整的功能包装成服务对外提供,这样可以体现服务的意义,才能称得上是服务。如果对外提供的服务粒度很细,每个服务提供一个简单的数据返回,要完成一个完整的功能,可能需要客户调用多次服务才能完成,这样的服务不但使用繁琐,也会增加不必要的网络通讯压力,这样的服务适合做内部的接口,不适合做对外的服务。

主流SOA架构:

微软:biztalk

IBM:WebSphere MQ以及WebSphere Business Integration Message Broker。

SAP:mySAP、SAP Business All-in-one、SAP Business one

ORACLE:Oracle SOA Suite

WebMethods:webMethods Integration Platform

BEA:AquaLogic(在2008年1月16日,以85亿美元被Oracle公司收购)

参考:/blog/405754

11. 谈一下你对SaaS的理解

SaaS是Software-as-a-service(软件即服务)的简称,是随着互联网技术的发展和应用软件的成熟,而在21世纪开始兴起的一种完全创新的软件应用模式。它与“on-demand software”(按需软件),the application service provider(ASP,应用服务提供商),hosted software(托管软件)所具有相似的含义。它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。

在这种模式下,客户不再象传统模式那样花费大量投资用于硬件、软件、人员,而只需要支出一定的租赁服务费用,通过互联网便可以享受到相应的硬件、软件和维护服务,享有软件使用权和不断升级,这是网络应用最具效益的营运模式。

参考:/a/20090709/

13.你是否在之外还会JAVA、PHP?

14.如果让你设计一个登录模块,你会怎么考虑和制作?

15.如果让你制作日志模块,你会怎么考虑和制作?

16.如果让你制作用户权限模块,你会怎么考虑和制作?

17.如果让你做文件上传模块,你会怎么考虑和制作?如果文件大于1G你会怎么考虑设计?

1.分割成多个块,压缩,上传,然后再合并

2.多线程上传 上传(问题多,慎用)

/JeffreyZhao/archive/2008/02/12/aspnet_

/bashan/archive/2008/05/14/

/art/201002/183218_

18.是否了解及使用过WCF、WF、WPF?

页面的打印及报表的输出思路?

20.报表的制作思路?

21.谈一下你对.Net中垃圾回收的理解?

博客园:/page/106720/

和的区别?

ADO和的区别:

ADO使用OLE DB接口并基于微软的COM技术

而拥有自己的接口并且基于微软的.NET体系架构。

ADO以Recordset存储,而则以DataSet表示。

Recordset看起来更像单表,如果让Recordset以多表的方式表示就必须在SQL中进行多表连接。

反之,DataSet可以是多个表的集合。ADO 的运作是一种在线方式,这意味着不论是浏览或更新数据都必须是实时的。

则使用离线方式,在访问数据的时候会利用XML制作数据的一份幅本

的数据库连接也只有在这段时间需要在线。

由于ADO使用COM技术,这就要求所使用的数据类型必须符合COM规范

而基于XML格式,数据类型更为丰富并且不需要再做COM编排导致的数据类型转换,从而提高了整体性能。

为.NET构架提供了优化的数据访问模型,和基于COM的ADO是完全两样的数据访问方式。

与ado存在着比较大的差异:

1.遵循更通用的原则,不那么专门面向数据库。

集合了所有允许数据处理的类。这些类表示具有典型数据库功能(如索引,排序和视图)的数据容器对象。

尽管是.net数据库应用程序的权威解决方案

但从总体设计上看,它不像ado数据模型那样以数据库为中心,这是的一大特点。

2.目前,提供了两种数据库访问类库:一种用于sql server 7.0 或更高版本

另一种用于其他所有您可能已经安装的ole db提供程序。 在这两种情况下,您分别使用不同的类,但遵循相似的命名规则。

除前缀,名称都是相同的。前一种情况前缀为sql,后一种情况则是oledb。

同时,.net框架还提供了odbc .net的数据访问模式。

odbc .net data provider是 .net 框架的增强组件,它可以访问原始的 odbc 驱动程序

就像 ole db .net data provider 可以访问原始的 ole db providers 一样。

目前它仅在下列驱动程序中测试过:

microsoft sql odbc driver,microsoft odbc driver for oracle,microsoft jet odbc driver。

3.提供了两个队形来处理从数据源中抽取数据,它们是dataset和datareader对象。

前者是记录在内存中的缓存,您可以从任何方向随意访问和修改。

后者是高度优化的对象,专为以仅向前方式滚动只读记录而设计。

4.统一了数据容器类编程接口,无论您打算编写何种应用程序,windows窗体,web窗体还是web服务

都可以通过同一组类来处理数据。

不管在后端的数据源数sql server数据库,ole db,xml文件还是一个数组

您都可以通过相同的方法和属性来滚动和处理它们的内容。

5.在ado中,xml只不过是输入和输出格式。

然而在中,xml是一种数据格式,提供了操作,组织,共享和传递数据的手段。

ADO。NET相对于ADO等主要有什么改进?

1:不依赖于ole db提供程序,而是使用.net托管提供的程序,

2:不使用com

3:不在支持动态游标和服务器端游

4:,可以断开connection而保留当前数据集可用

5:强类型转换

6:xml支持

23.托管程序与非托管程序的区别

一般一个可执行文件的内部都包含一个PE头,系统根据PE的信息找到入口函数,在通过执行入口函数中的代码来执行可执行程序。托管程序的文件中相对于非托管程序还包含了一个CLR表头文件以及其他CLR需要的信息。

(1)非托管程序的执行过程

在非托管程序中,可执行里面保存的是机器代码,CPU可以直接加载并执行,当系统加载了可执行程序后,系统就将可执行文件的段基址加上偏移地址形成实际的物理地址,并直接加载到内存中运行。

(2)托管程序的执行过程

托管程序的可执行文件中,包含的是中间语言以及元数据,当然不能直接运行,必须启动CLR,由CLR对中间语言进行即时编译成机器代码,并加载到内存里面执行(具体过程: 程序在进入入口函数前会提前跳转到中,调用它的代码来启动CLR并完成一些初始化工作)。当然,IL中的方法并不是每次被调用都会被编译一次,而是它只有在第一次调用时才进行编译,即时编译器会将方法名称以及对应的入口地址存放在映射表中,当下次调用该方法时,会直接从映射表里去而不是再编译一次。

24.

readonly 关键字与 const 关键字

1. const 字段只能在该字段的声明中初始化。

readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly

字段可能具有不同的值。

2. const 字段是编译时常数,而 readonly 字段可用于运行时常数。

3. const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。

4.const 对于引用类型的常数,可能的值只能是 string 和 null。

readonly可以是任何类型

25.反射和序列化

反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性

序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用

HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。

26. ArrayList 类和Array类的区别

1Array位于system命名空间中,而ArrayList位于tions命名空间中。

2Array的容量是固定的,而ArrayList的容量是根据需要自动扩展的。如果更改了ty属性的值,则自动进行内存重新分配额元素复制。

3ArrayList提供添加,插入或移除某一范围元素的方法。在Array中,只能一次获取或设置一个元素的值。

4使用Synchronized方法可以很容易地创建arraylist的同步版本。而array将一直保持它直到用户实现同步为止。

5ArrayList提供将只读和固定大小包装返回到集合的方法,而array不提供。

6另一方面,array提供arraylist所不具有的某些灵活性。

7可以设置array的下限,但arraylist的下限始终为零。

8array可以具有多个维度,而arraylist始终只是一维的

9特定类型的array具有比arraylist更好的性能,则是因为arraylist的元素属于object类型,所以在存储或检索值类型时通常发生装箱和取消装箱