31.谈谈对WSE的认识。
Web Services Enhancements 2.0 for Microsoft .NET (WSE)是一个用来建设Web服务的.NET类库,它支持最新的Web服务协议
(包括WS-Security、WS-SecureConversation、WS-Trust、WS-Policy、WS-SecurityPolicy、WS-Addressing和 WS-Attachments)。
WSE可使开发人员跨平台建设可升级的、安全的Web服务。它支持用传输的方式发送SOAP消息,而不是HTTP。另一个特点是具有建立SOAP路
由器的功能,SOAP消息被发送给SOAP路由器,路由器再将工作交付给托管该服务的Web服务器。
32. 你用过哪些版本控制工具
————–各位同学兄弟可以根据自己的实际情况,谈论一些自己在使用这些工具时所遇到的问题以及体会
TFS(ASP.Net)、cvs、svn。
33. 在开发中你利用那些工具进行单元测试和模块测试
NUNIT和PDM.页面测试 httpunuit
34.如何进行Bug管理
由一个BUG跟踪平台,提供该程序的各个模块的BUG,以及级别,以及解决时间等信息
35. 如何生成和管理开发文档
一般用NDOC来生成文档,大部分文档主要还是Word为主。主要是各个模块以及版本的控制等
36.请用代码简单描述一下Singleton、抽象工厂、策略模式、Composite(任选一个)的设计模式的概念(代码题)
Singleton 单一模式所有类共享一个实例
下面这种实现方式对多线程来说是安全的,同时线程不是每次都加锁,只有判断对象实例没有被创建时它才加锁,有了我们上面第一部分的里面的分析,我们知道,加锁后还得再进行对象是否已被创建的判断。它解决了线程并发问题,同时避免在每个 Instance 属性方法的调用中都出现独占锁定。它还允许您将实例化延迟到第一次访问对象时发生。实际上,应用程序很少需要这种类型的实现。大多数情况下我们会用静态初始化。这种方式仍然有很多缺点:无法实现延迟初始化。
//author:renfuming
public sealed class Singleton
2{
3 static Singleton instance=null;
4 static readonly object padlock = new object();
6 Singleton(){}
10 public static Singleton Instance{
12 get{
14 if (instance==null){
16 lock (padlock){
18 if (instance==null){
20 instance = new Singleton();
21 }
22 }
23 }
24 return instance;
25 }
26 }
27}
抽象工厂(工厂方法)
using System;
//author:renfuming
namespace TestStrategy
{
public interface IFactory
{
void Method();
}
public class MyProductA:IFactory
{
public MyProductA()
{
Console.WriteLine(“已经生产产品A”);
}
public void Method()
{
Console.WriteLine(“实现产品A的具体功能!”);
}
}
public class MyProductB:IFactory
{
public MyProductB()
{
Console.WriteLine(“已经生产产品B”);
}
public void Method()
{
Console.WriteLine(“实现产品B的具体功能!”);
}
}
public class CreateProductAFractory
{
public static MyProductA CreateProductA()
{
return new MyProductA();
}
}
public class CreateProductBFractory
{
public static MyProductB CreateProductB()
{
return new MyProductB();
}
}
public class TestFactory
{
public static voidMain(string[] args)
{
IFactory ifact=CreateProductAFractory.CreateProductA();
ifact.Method();
Console.WriteLine(“————————————–”);
ifact=CreateProductBFractory.CreateProductB();
ifact.Method();
}
}
}
策略模式:属于对象行为型模式,主要针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得他们可以相互替换。策略模式适合用于当一个应用程序需要实现一种特定的服务或者功能,而且该程序有多种不同的实现方式可以使用时使用。
策略模式中有三个对象:
1、 环境对象:该类中实现了对抽象策略中定义的接口或者抽象类的引用。
2、 抽象策略对象:他可以又接口或者抽象类进行实现
3、 具体策略对象:他封装了实现对同一动作不同功能的不同算法;
利用策略模式构建的应用程序,可以根据用户配置等内容,选择不同算法来实现应用程序的功能,具体的选择由环境对象来完成。采用这种方式可以避免由于使用条件语句而带来的代码混乱,提高应用程序的灵活性和条理性。
using System;
//author:renfuming
namespace TestStrategy
{
public interface Strategy
{
void PrintCount(string fruitName,int count);
}
public class MyChoilceA:Strategy
{
public void PrintCount(string fruitName,int count)
{
Console.WriteLine(“{0}实现5折后的价格是:{1}”,fruitName,count*0.5);
}
}
public class MyChoiceB:Strategy
{
public void PrintCount(string fruitName, int count)
{
Console.WriteLine(“{0}实现6折后的价格是:{1}”,fruitName,count*0.6);
}
}
public class MyChoiceC:Strategy
{
public void PrintCount(string fruitName, int count)
{
Console.WriteLine(“{0}实现7折后的价格是:{1}”,fruitName,count*0.7);
}
}
public class ChoiceContext
{
Strategy objStrategy;
public ChoiceContext(Strategy obj