C# SOA和WCF数据服务
我想在下一个项目中使用SOA体系结构。另外,我想在数据访问层使用WCF数据服务。例如,用户希望接收特定日期的文档。我们调用WCF服务(服务层)来检索文档C# SOA和WCF数据服务,c#,asp.net-mvc,wcf,architecture,soa,C#,Asp.net Mvc,Wcf,Architecture,Soa,我想在下一个项目中使用SOA体系结构。另外,我想在数据访问层使用WCF数据服务。例如,用户希望接收特定日期的文档。我们调用WCF服务(服务层)来检索文档 public ActionResult GetDocumentByDate(DateTime date) { var request = // here create request object; var documentsDto = _documentService.GetDocument(request); ...
public ActionResult GetDocumentByDate(DateTime date)
{
var request = // here create request object;
var documentsDto = _documentService.GetDocument(request);
...
}
在WCF服务中,我们称之为业务层(BL):
公共类文档服务:IDocumentService
{
公共IEnumerable GetDocumentsByDate(DocumentsByDaterRequest请求)
{
//从DocumentLogic调用GetDocumentsByDate
}
}
公共类文档逻辑
{
公共IEnumerable GetDocumentsByDate(日期时间日期)
{
//打电话给达尔
}
}
我想使用WCF数据服务获取数据。我没用过这项技术
最好将WCF数据服务隐藏在服务层后面,或者它们应该可用,只要SL通过WCF数据服务访问数据?
在这种情况下,外部世界将看到WCF服务和WCF数据服务。根据示例,在哪里进行验证更好?
最后是一个一般性问题,您对WCF数据服务的印象如何?我的观点是,数据服务是一种很酷的技术,但我认为对用户隐藏它们是一个坏主意。实际上,您并没有真正隐藏服务,只是没有显式地调用。。如果您想使用dataservices,您可以从asp.net代码中调用该服务。如果需要,可以使用dataservice中的特定方法管理和限制数据(实体)。。我猜您正在使用EF:) 我认为最好在asp.net代码中进行验证(当然,在创建请求之前)
public class DocumentService:IDocumentService
{
public IEnumerable<DocumentDto> GetDocumentsByDate(DocumentsByDateRequest request)
{
// call GetDocumentsByDate from DocumentLogic
}
}
public class DocumentLogic
{
public IEnumerable<Document> GetDocumentsByDate(DateTime date)
{
// call DAL
}
}