2011-08-16 169 views
3

我期待夏普体系结构的替代方案,首先使用实体​​框架代码作为ORM。是否有像Sharp Architecture这样的成熟项目首先使用EF代码?夏普体系结构替代

+1

http://ayende.com/blog/4786/the-wages-of-sin -over-architecture-in-the-real-world – jason

+0

http://codecampserver.codeplex.com/不使用EF,但可以通过替换Infrastructure.NHibernate。 –

回答

9

建筑是一个蓝图。一旦你看到夏普架构,你应该能够简单地思考并改变它与EF一起工作。如果你无法做到这一点,你可能没有足够的技能与必需的API - 这是在开始处理架构之前必须改变的第一件事。没有哪种体系结构可以帮助您理解API,并且无需理解它们,您就无法使用API​​的功能正确地完成良好的体系结构。

架构应该由您的应用程序的需求驱动。您想要改变应用程序的需求来完成某些体系结构蓝图的方法是错误的。首先,您必须定义您的架构应该为您解决什么问题,之后您可以询问是否有任何蓝图已经在执行此操作(仅此而已)。

大多数文章和样本架构只是推动了大量模式而没有实际需要。图案和图层的数量并不构成一个好的架构。在大多数情况下,它只会使系统处于架构和难以维护的状态。这些示例主要用于解释如何实现某些模式。

0

坏消息没有确切的替代品,好消息它很容易创建自己像我一样的东西。

我一直在使用S#arp很长一段时间,这是一个很好的架构,我开发了很多应用程序,但看起来似乎没有更多的运动与去年年底那个开源项目,我决定去继续使用相同的原则重新创建类似的东西,但使用实体框架。

关键组件如NHibernate,NHibernate.Validator和Castle Windsor被替换为分别使用Entity Framework,LINQ to Entites,System.ComponentModel.DataAnnotations和Autofac。这些图层与Domain,Presentation,Task,Framework和Infrastructure相同。

关于我如何创建它,请看看这篇文章的详细解释。 http://www.macaalay.com/2015/10/20/creating-a-solid-architectural-foundation-from-scratch-is-not-really-that-hard/

我还创建了一个代码生成器,我叫Effinator,其产生的CRUD操作和基本的用户界面从数据库设计