我是初学者。我发现很难理解这里的一个概念。
有人告诉我不应该在 UI 级别使用 DataTable。
请帮助我理解这个概念。
解决方案:
MyApp.Data
MyApp.Logic
MyApp.Web
MyApp.Web 引用 MyApp.Logic,MyApp.Logic 引用 MyApp.Data。
在我的应用程序中,我想做的只是通过表名绑定 gridview,该表名是从下拉列表中选择的。然而,有数百张甚至更多的桌子。这里的目的只是向用户显示数据(通过分页)。
所以项目 MyApp.Data 上的类“Get_Data”有一个函数:
public static DataTable Get_DataTable_By_Name(string Table_Name)
{
//Check and santize the table name for possible SQL injection attack.
//SELECT FROM DATABASE TABLE.
return DataTable;
}
从 MyApp.Logic,我只是将数据表从 MyApp.Data 层传递到 MyApp.Web。然后gridview就被绑定了,一切都在这里工作了。
那么我在这里做错了什么?在 UI 级别拥有数据表真的很糟糕吗?为什么这是一个糟糕的设计?
认为 UI 创建/加载/使用数据表是不好的做法的想法源于这样的想法:最好将应用程序拆分为专门的层,最常见的拆分是 3 层:
第 1 层是数据层,负责与数据库通信并填充域对象,域对象通常在第 2 层中定义,该层还保存应用程序的业务逻辑。
我所说的域对象是指代表真实事物的类,例如客户、银行帐户、酒店房间等。
我所说的业务逻辑是指在事件期间适用于域对象的规则,即当预订酒店房间时,会将确认发送给客户。
第三层是 UI 层,为了简化编码,这应该只处理第 2 层中的内容,这就是建议不要在 UI 中使用数据表的来源。
当您的应用程序很大,或者您有多个开发人员正在处理它,或者您正在使用单元测试时,拆分应用程序的动机才真正开始有意义。如果您处于这种情况,那么我会尝试找到您团队中的一位友好成员来更好地解释这一点,但如果这只是您自己编写一个应用程序,那么我不会太担心,写很多关于代码,阅读大量书籍,这些东西会更有意义,我会推荐 Craig Laman 关于 UML 和模式的书。
希望这可以帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)