不久前,我参与了一个相当大的项目,其中我们使用Enterprise Architect对类进行建模,并生成(部分) POCO类(包括模型驱动的业务规则验证)、持久性(NHibernate映射文件)和动态链接库。基于某些模型属性,我们可以标记替代的生成策略,或者指示特定的部分将完全手工编码。
有大量的初始投资,但它在一个15个开发人员的3年项目的生命周期中获得了巨大的回报。
我正在研究用当前的微软技术栈做一些类似的事情。我被卡住的地方是,类建模是使用VS2010 UML工具完成的,但逻辑数据建模是使用实体数据建模器完成的。
使用VS2010UML作为“单一的真理来源”,并根据类模型生成edmx文件,这是一条合理的途径吗?这与创建实体模型并使用POCO生成器生成类的公共路径相反。然而,一个好的类模型可以用来生成比属性更多的东西,所以我倾向于认为它是比实体模型更好的选择。
发布于 2010-06-02 18:43:58
实体数据建模器被限制为每个模型只能有一个图,并且在非常重要的场景中变得不可用。你可以使用use UML profiles to extend class models for logical data modeling。它需要投入大量的精力和时间,这在一个为期3年的15名开发人员的项目中可能是合理的。
发布于 2010-06-02 17:25:00
这始终是一个问题,因为每个建模层映射两个完全不同的世界。要完全识别代码,您的生成系统必须能够访问所有映射模型。当然,您不能简单地将其中一个声明为“主”,因为每一层都是解决方案的“真实”透视图。
发布于 2010-06-02 21:00:33
是的,这是可能的。不,没有内置任何东西。为此,您需要编写一个使用模型并发出EDMX/ VSIX的代码。这不一定很难,但你必须自己去做。您还需要一个模式或属性来处理图中可能没有的建模方面,就像在进行代码优先建模时必须指定关键字段等一样。
https://stackoverflow.com/questions/2953816
复制相似问题