我們已經開始在我們公司的新項目。我們敲定架構如下使用SOA架構在Asp.Net MVC中實現存儲庫模式
有5個不同的項目如下
1)BusinessEntities(類庫),其中包含DataContract如下
[DataContract]
public class Cities
{
/// <summary>
/// Gets or sets City Id
/// </summary>
[DataMember]
public int Id { get; set; }
/// <summary>
/// Gets or sets City name
/// </summary>
[DataMember]
[Display(Name = "CityName", ResourceType = typeof(DisplayMessage))]
[Required(ErrorMessageResourceName = "CityName", ErrorMessageResourceType = typeof(ErrorMessage))]
[RegularExpression(@"[a-zA-Z ]*", ErrorMessageResourceName = "CityNameAlphabates", ErrorMessageResourceType = typeof(ErrorMessage))]
[StringLength(50, ErrorMessageResourceName = "CityNameLength", ErrorMessageResourceType = typeof(ErrorMessage))]
public string Name { get; set; }
}
2)接口,其包含
[ServiceContract]
public interface ICity : IService<CityViewModel>
{
[OperationContract]
Status Add(Cities entity);
}
3)包含實施WCF服務的DAL
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class City : ICity
{
public Status Add(Cities entity)
{
//Insert Logic goes here
}
}
4)WebComponent的這調用WCF服務
public class City
{
public static Status Add(Cities entity)
{
using (var service = new WcfServiceProvider<ICity>())
{
return service.GetProxy().Add(entity);
}
}
}
5)UI(Asp.Net MVC計劃)中調用WebComponent的訪問服務
City.Add(entity);
現在我們完成這個結構。但問題是如何使用Repository模式進行單元測試?如果可以的話,是否可以在這個結構上使用存儲庫模式?或者還有其他的模式需要使用嗎?
Deependacy注射,則需要使用嘲弄來測試我們的代碼。使用MoQ – 2013-05-02 05:48:52
@Ravi thx作爲你的答案。做你的任何鏈接或前? – 2013-05-02 05:49:35
http://www.codeproject.com/Articles/29271/Design-pattern-Inversion-of-control-and-Dependency – 2013-05-02 05:50:18