草庐IT

domain-driven-design

全部标签

c# - 领域驱动设计、.NET 和 Entity Framework

我是领域驱动设计的新手,但想学习它并将其用于新的应用程序。我将使用EntityFramework进行数据访问。到目前为止的基本布局是:ASP.NETMVCandotherclients(mobiledevicesetc.)|Webservices|DomainModel(Services,Repositories,Aggregates,EntitiesandValueObjects)|DataAccessLayer(EntityFramework)|DataStorage(SQLServer)在数据访问层和领域模型之间传输数据的最佳方式是什么?我认为域模型中的实体是POCO对象,它们应

c# - 存储库、管道、业务逻辑和域模型——我如何将它们组合在一起?

我在设计N层应用程序时遇到了一个难题,您可能有解决方案。表示层是MVC。我的ORM是使用LinqToSQL执行的-它是一个为存储库提供服务的独立项目。每个存储库都有一个接口(interface)和至少1个具体实现。Repositories有以下方法:FindAll(),Save(Tentity),Delete(intid)FindAll()返回某种类型的IQueryable,这意味着它返回我可以应用过滤器的查询。ORM映射是使用数据库优先方法执行的,首先创建表,然后由SQLMetal生成类。我添加了一个与存储库一起使用的管道层。它将进一步的过滤器应用于查询。例如。OrderReposi

c# - WPF 最佳实践 : Do custom controls work well with the MVVM design?

我正在考虑创建一个可以在我的页面上重复使用的通用控件:一个具有Address1、Address2、City、State、Zip等的AddressControl...最初我只是创建了一个包含所有这些项目的类(AddressEntity)并实现了INotifyPropertyChanged。我将该类作为DependencyProperty包含在我的AddressControl的代码隐藏中,并将其用作绑定(bind)到其属性的DataContext。然后,有人说我的代码很丑,我应该看看MVVM。看着它,我假设:AddressEntity.cs将只是数据(即Address1、Address2等

c# - 如何从 AD DirectoryEntry 获取 DOMAIN\USER?

如何从ActiveDirectoryDirectoryEntry(SchemaClassName="user")对象获取Windows用户和域?用户名在sAMAccountName属性中,但我可以在哪里查找域名?(我不能假设一个固定的域名,因为用户来自不同的子域。) 最佳答案 这假定results是从DirectorySearcher获得的SearchResultCollection,但您应该能够直接从DirectoryEntry获得objectsid。SearchResultresult=results[0];varpropert

c# - 如何从 DOMAIN\user 格式的用户名创建 WindowsIdentity/WindowsPrincipal

WindowsIdentity(string)构造函数要求用户名采用username@domain.com格式。但在我的例子中,我从旧的DOMAIN\user格式的数据库中获取用户名(然后必须检查他们的Windows角色成员身份)。从旧式(sAMAccountName)用户名​​创建WindowsPrincipal的最佳方法是什么? 最佳答案 似乎没有办法在不涉及对ActiveDirectory的查询的情况下转换用户名格式。由于是这种情况,因此无需创建WindowsPrincipal来检查组成员身份,因为这可能需要与AD的另一个连接

c# - DDD 与 EF Code First - 如何将它们放在一起?

学习DDD开发这几天,开始喜欢上了。我(认为我)了解DDD的原则,您的主要关注点是业务对象,您有聚合、聚合根、仅用于聚合根的存储库等等。我正在尝试创建一个将DDD开发与代码优先方法相结合的简单项目。我的问题是:(我正在使用asp.netMVC)DDD业务对象与CodeFirst对象不同吗?即使它们可能相同,例如我可以有一个包含所有规则和方法的Product业务对象,并且我可以先有一个Product代码(POCO)对象,它只包含我需要保存在数据库中的属性。如果问题1的答案是“真”,那么我如何通知ProductPOCO对象业务对象Product的属性已更改,并且我必须更新它吗?我正在使用“

c# - 具有行为和 ORM 的丰富域模型

在观看了JimmyBogard(http://ndcoslo.oktaset.com/Agenda)的NDC12演讲“制作邪恶的领域模型”之后,我在徘徊如何保持这种领域模型。这是演示文稿中的示例类:publicclassMember{List_offers;publicMember(stringfirstName,stringlastName){FirstName=firstName;LastName=lastName;_offers=newList();}publicstringFirstName{get;set;}publicstringLastName{get;set;}publ

c# - 为什么 C# 设计器生成的代码(如 Form1.designer.cs)会对 Subversion 造成严重破坏?

我的工作室最近从SourceSafe切换到Subversion,使我们摆脱了自动锁定。这导致了表格的同时编辑,这非常棒。但是,当多个开发人员提交他们的更改时,由设计人员创建的代码文件(所有名为TheFormName.designer.cs的文件)会导致很难解决的冲突。据我所知,这是因为每当用户修改代码时,设计师生成的代码都会被大量重新安排,无论实际更改有多么小。如何使这些冲突更容易解决?有没有办法告诉设计者少修改代码?经验丰富的C#团队如何处理表单的并发修改? 最佳答案 这里有一些尝试:使事情更加模块化。使用用户控件等组件将表单拆分

c# - 包的用途 "Microsoft.EntityFrameworkCore.Design"

所有教程都同意project.json应该包括:"Microsoft.EntityFrameworkCore.Design":{"type":"build","version":"1.0.0-preview2-final"}我从来没有包含它,也从来没有遇到过问题。我只包括"Microsoft.EntityFrameworkCore""Microsoft.EntityFrameworkCore.Sqlite"(orSqlserver)"Microsoft.EntityFrameworkCore.Tools"这个包有什么作用?为什么我可以毫无问题地排除它?更新:查看接受的答案中的评论以确定

c# - EF 代码首先是 : How to delete a row from an entity's Collection while following DDD?

场景是这样的:DDD声明您使用存储库获取聚合根,然后使用它来添加/删除它拥有的任何集合。添加很简单,您只需在要添加到的Collection上调用.Add(Itemitem)。保存时会向数据库中添加一个新行。但是,删除是不同的-调用.Remove(Itemitem)不会从数据库中删除项目,它只是删除外键。因此,是的,从技术上讲,它不再是收藏的一部分,但它仍在数据库中。仔细阅读,唯一的解决方案是使用数据上下文将其删除。但是根据DDD,域对象不应该知道数据上下文,因此必须在域外进行删除。解决这个问题的正确方法是什么?或者让数据库中充满孤儿是可以接受的吗(也许运行一个例程来清除它们)?