DDD、NHibernate 和项目结构/命名

发布于 2024-07-17 13:54:58 字数 346 浏览 7 评论 0原文

对于使用 NHibernate 并尝试引入一些 DDD 概念的 WebForms 解决方案,您建议采用什么合适的项目结构?

假设根命名空间和解决方案名称是 Sample

  • Sample.Domain - 包含我的域对象和映射文件
  • Sample.Repositories - 包含我的存储库和 nhibernate 连接配置文件
  • Sample.Business - 包含我的业务逻辑
  • Sample.Web - 实际的 WebForms 项目 -所有演示

我忘记了什么? 有更标准的方式来命名它们吗?
有关于该主题的精彩博客文章吗?

What do you recommend as the proper project structure for a WebForms solution that is utilizing NHibernate and trying to bring in some DDD concepts?

Assuming the root namespace and solution name is Sample

  • Sample.Domain - contains my domain objects and my mapping files
  • Sample.Repositories - contains my repositories and nhibernate connection config file
  • Sample.Business - contains my business logic
  • Sample.Web - the actual WebForms project - all Presentation

What am I forgetting? Is there a more standard way to name these?
Any great blog posts on the topic?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

夜空下最亮的亮点 2024-07-24 13:54:58

缺少的一些部分似乎是整个解决方案和测试项目所需服务的中心位置。 我通常有这样的东西:

  • Sample.Core - 需要在应用程序中使用的服务和代码
  • Sample.Data - 域类和存储库接口
  • Sample.Data.NHibernate - 映射文件、流畅的配置等和存储库实现,基本上任何数据映射层特定的
  • Sample.Services - 服务实现和接口
  • Sample.Web - Web 应用程序

我有一个匹配的测试项目树:

  • Tests\Sample.Core.Tests
  • Tests\Sample.Data.NHibernate.Tests
  • 等...

当然,根据项目的不同,树会变得更加复杂。 至于讨论,请查看洋葱架构。 您还可以查看 领域驱动设计 上的示例项目,看看您可以从中获得什么。

A few parts missing seem to be a central location for services needed throughout the solution and test projects. I usually have something like this:

  • Sample.Core - services and code that need to be used across the application
  • Sample.Data - domain classes and repository interfaces
  • Sample.Data.NHibernate - mapping files, fluent config, etc. and repository implementations, basically anything data mapping layer specific
  • Sample.Services - service implementations and interfaces
  • Sample.Web - web application

I have a matching tree of test projects:

  • Tests\Sample.Core.Tests
  • Tests\Sample.Data.NHibernate.Tests
  • etc...

Of course, the tree will get more complex depending on the project. As for discussions, check out the Onion Architecture. You can also check out the sample projects on Domain-Driven Design and see what you can take from those.

荒路情人 2024-07-24 13:54:58

我保持简单,并倾向于按名称空间而不是按项目进行隔离,尤其是在开始时。 我通常从解决方案中的三个项目开始:

  • Sample - 包含命名空间 Sample.Model、Sample.Model.Mappings 和 Sample.Services。
  • Sample.Tests - 包含单元测试,其结构与 Sample 相同。
  • 示例.Web - UI

I keep it simple and lean towards segregating by namespace rather than by project, especially at the beginning. I usually start with three projects in the solution:

  • Sample - contains namespaces Sample.Model, Sample.Model.Mappings, and Sample.Services.
  • Sample.Tests - contains unit tests is structured the same as Sample.
  • Sample.Web - UI
扮仙女 2024-07-24 13:54:58

我发现每个人都有自己的命名偏好,我更喜欢:

  • Sample.Domain - 域对象、映射文件
  • Sample.Services - 业务逻辑和服务(以及存储库,尽管我可以看到将它们分开)
  • Sample.Web - Web Stuff。
  • Sample.Migrations - 数据迁移。

Ben Scheirman 最近还发布了有关此内容的文章:使用解决方案导出 Visual Studio 解决方案工厂

他使用了不同的结构,但也提供了一种标准化模板的好方法。

I have found everyone has their own preferences for naming, I prefer:

  • Sample.Domain - domain objects, mapping files
  • Sample.Services - business logic and services (and repositories, although I could see separating these out)
  • Sample.Web - Web Stuff.
  • Sample.Migrations - Data migrations.

Ben Scheirman also recently posted about this: Exporting Visual Studio Solutions with Solution Factory.

He uses a different structure but also includes a great way to standardize your template.

遇见了你 2024-07-24 13:54:58

您可以在s#arp架构中查看它是如何完成的。 它是一个非常坚实的架构框架

You can see how it is done in s#arp architecture. Its a very solid architectural framework

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文