Что вы планируете делать с наборами данных, которые вы не можете делать с ILists? ИМХО, вам захочется, чтобы вас строго печатали как можно больше.
В моей команде мы подключаем наш средний уровень к ObjectDataSources, а затем все наши GridViews, ListViews и т. Д ... используем их для извлечения данных:
Бизнес-уровень / Средний уровень
namespace Project
{
public class BusinessLayer
{
public IList<Product> GetProducts()
{
return new Select().From( Products.Schema ).Where( Products.Columns.Status ).IsEqualTo( true ).ExecuteTypedList<Product>();
}
}
}
На странице
<asp:ObjectDataSource id="odsProducts" runat="server" TypeName="Project.BusinessLayer" SelectMethod="GetProducts()"></asp:ObjectDataSource>
Затем вы можете подключить любой из ваших элементов управления представлением данных (Gridview, Listview и т. Д.) К источнику данных. Это очень чисто и не требует кода в коде позади.
Я также натолкнулся на эту статью Роба, которую вы опубликовали, и нашел ее полезной при попытке выяснить, как писать разорванные приложения с помощью SubSonic.