我最近开始研究ServiceStack
以及如何在我们的架构中实现它。我们一直在使用带有 Service/Repository/UnitOfWork 模式的 ASP.NET MVC 3/4。
我正在寻找有关如何将 ServiceStack 集成到组合中的资源。
我们通常拥有的东西看起来像这样:
MVC Controller/Action
--> Service
--> Repository
-->Entity Framework
我想重用我们拥有的域模型并通过ServiceStack公开它,所以我只是让服务上的操作返回域模型吗?
例如
// Request DTO
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
}
// Response DTO
public class CustomerResponse
{
public List<Customer> Customers { get; set; }
}
// Customer Service
public class CustomerService : IService
{
public object Any(BrowseCustomers request)
{
var customers = new List<Customer>() {
new Customer {
FirstName = "Joe",
LastName = "Bob",
...
},
new Customer {
FirstName = "Jill",
LastName = "Bob",
...
}
};
return customers.Where(x => x.FirstName.ToLower().StartsWith(request.FirstName.ToLower()));
}
}
编辑
我想我要问的是;我应该从 ServiceStack 服务返回响应 DTO 中的域对象吗?或者我应该根本不返回域对象,而是创建实体 DTO?