(1)WinForm和WebForm

 

如上所述,WinForm程序通常分为四层,而WebForm程序通常分为三层。
 
举例说明,winForm程序:
 IEnumerable<BatchUpdateResult<string, HX.DHL.Common.Data.ResultSign>> rets =
                    CustomerFacade.InterFaceImportForDispute(pLists.ToList()).ToList();
客户端UI层使用这个方法,但这个方法定义在Service里面,其中有接口和实现层。
 public IEnumerable<BatchUpdateResult<string, HX.DHL.Common.Data.ResultSign>> InterFaceImportForDispute(List<CustomerDispute> lst)
        {
            using (ICustomersLogic customerLogic = new CustomersLogic())
            {
                return customerLogic.InterFaceImportForDispute(lst);
            }
        }

而真正的实现在Service中引用了Logic中的方法。可能在应用中服务和逻辑有时候也需要分开写。所以设置了两层

   public IEnumerable<BatchUpdateResult<string, ResultSign>> InterFaceImportForDispute(
            List<CustomerDispute> cusdisputeList){}

Logic中关于数据库的部分又使用DAL中定义好的方法。比如插入更新之类的方法。

 
WebForm程序:
var lgdata = this.LgService.GetAllLanguages(false);

UI层使用Service的一个方法,该方法就直接在Service层中实现:

public virtual IList<Language> GetAllLanguages(bool showInactive = false)
        {
            var query = _languageRepository.Objects.Where(q=>!q.Deleted);
            if (!showInactive)
                query = query.Where(l => l.Active);
            query = query.OrderBy(l => l.OrderID);
            return query.ToList();

        }
而涉及到数据库仓储的部分交给Reposit处理。上述的_languageRepository定义:
private readonly IIdentRepository<Language> _languageRepository;

上述的IIdentRepository<Language>继承的类中包含了最基本的对数据库的操作。

 

综上所述,WinForm中的DAL和WebForm中的Resposit都是关于数据库仓储的。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2015-03-16 10:12  左魅颜  阅读(852)  评论(0编辑  收藏  举报