@@ EDIT 我会尽力更好地解释我的问题,并为我之前困惑的帖子道歉。
据我所知,业务逻辑组件的主要目的是覆盖所有业务逻辑操作,无论使用何种技术(asp.net,WinForm,Wpf等)。
这就是全部,很简单。 我可能在DAL组件上使用UnitOfWork模式,这允许我在DB类型和其他存储技术之间保持解耦,然后构建BLL以集成关于CRUD操作的所有内部逻辑。
例如:
public class BLLDocument
{
protected IUnitOfWork _unit;
public BLLDocument()
{
_unit = MyFactory.GetUnit();
}
public void AddDocument(DocumentEntity doc, CustomerEntity customer)
{
try
{
// Some check here about the entities I'm being to add
// As you can see, my logic force you to send two entity for insert a document
_unit.GetRepository<Document>().Insert(doc);
_unit.GetRepository<CustomerEntity>().Insert(customer);
_unit.Save();
}
catch(Exception exc)
{
// other logic here:
_unit.Rollback();
ErrorHandler.Handle(exc);
// or
ErroroLogger.Log(exc);
}
}
}
好吧,现在我需要编写一个简单的ASP.NET应用程序作为UI,并使用我的业务逻辑组件来执行一些CRUD操作。 对于某些gridview或其他UI控件来说,设置它的自定义数据源总是非常无聊,相反,编写一个简单的继承ObjectDataSource可以用来绑定来自和转到业务逻辑组件的所有数据。 。 我认为,对于我的所有业务类,我需要找到一个常见的操作,例如: (插入 - 编辑 - 删除 - 选择)。
嗯,看起来不错......不确定。 事实上,在我之前的例子中,我有一个需要两个实体参数的AddDocument方法,并且它总是真实的,我们经常执行一个“单一”操作,它依赖于多个因素(在我的例子中,DocumentEntity和CustomerEntity用于AddDocument操作) )。
我认为这是一个常见的乏味问题,因此: 我怎样才能放置另一个组件以便进行简单的数据绑定操作,例如,在asp.net世界中?