我想在我的应用程序中使用Entity Framework和自动生成的类。
我不对此感兴趣:
我只关心一件事:
我读到了关于域驱动器设计的内容,我对此感兴趣,因为它声称可以简化复杂的应用程序。但是当我从真实的应用程序示例中读取代码时,我对这种方法的复杂性感到震惊。
我的想法是使用部分类来扩展从EF生成的类。 那个尝试这种方法的人可以给我一些建议吗?
答案 0 :(得分:3)
因此,如果我理解正确,您希望使用数据访问工具,特别是Entity Framework来帮助实现您的应用程序。
听起来你 实际上对为此项目进行域驱动设计感兴趣。
我认为这是一个很好的位置.DDD结合了在DDD之外有用的想法,模式和工具。
然而,和其他人一样,我会提醒你走DDD路的一半。对于域模型的概念尤其如此。一旦开始尝试实现真正的域模型,您几乎需要其余的DDD才能使其适用于您。您会发现,如果没有DDD拼图的所有部分,您的应用程序将朝着贫血领域的反模式发展。
但是,如果你知道自己没有做DDD,只要从中提取一些想法,那么你就可以适应那种“贫血领域模式”,这将是一件好事。
如果我不这样说,我会感到惊讶,但让我解释一下。
您可以采用ORM(EF),采用存储库的概念(虽然我更喜欢将其称为DAO - 数据访问对象 - 以避免两者之间的混淆),并使用标准的分层/洋葱实现您的应用程序建筑。大部分应用程序逻辑将使用直接反映数据库的数据类进入以事务脚本样式实现的服务。
这是一种经过时间考验的构建应用程序的方法。它不是DDD。这两种方法适合不同类型的更好,有不同的利弊等。
使用EF或类似工具可以简化和快速实现应用程序的大部分内容。当你没有真正做DDD时,不要试图做DDD。
答案 1 :(得分:1)
我认为你正在使用一种技术而不理解为什么它的好坏。根据我的经验,这几乎总会导致糟糕的应用程序设计。
任何说他们对测试不感兴趣的人都会在以后的路上遇到大量问题。
DDD的“简单性”是以所有简单性,抽象层为代价的。阅读Eric Evans领域驱动设计,然后您可能会意识到它为什么会带来更好的设计。
就我个人而言,我认为你会失去这个等式。你是一个职业,你应该考虑“不考虑测试”一词的含义。如果您将应用程序发送给客户,如果应用程序中断会发生什么?老板会责怪谁?他们自己?要非常小心。