我开始使用 c# 在 asp.net mvc 中进行域驱动设计,并且我正在创建一个小型示例项目。我目前有一个用于我的域层、服务层、Web 以及控制台应用程序的项目。我也使用 mongodb 作为我的数据库。
目前,我的项目有组,这些组的人属于我有一个名为的类Group
,并且Person
在我的域层中类似于下面(简化)。Group
并且Person
还代表了集合Group
在我的 mongodb 数据库中的样子。
public class Group
{
public string Name { get; set; }
public List<Person> People { get; set; }
}
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
我理解它的方式是我的网站和我的控制台应用程序应该与我的服务层进行通信,它充当一种门面并且永远不应该看到域层?
我不确定的事情是在我的控制台应用程序或网站中,如果我想询问所有组的服务层,通常我希望我会要求类似的东西
var groupService = new GroupService();
List<Group> groups = groupService.GetGroups();
除了在这种情况下作为我的组,并且人员类位于我的控制台应用程序和网站不知道的域层中,我无法请求列表,Group
因为我的应用程序不知道 aGroup
是什么。
我的服务层是否应该将结果输出为其他内容,例如 Json,这取决于我的网站和控制台应用程序,或者说我是否有其他人可以访问的 api 来确定如何处理这些数据?还是我在这里弄混了什么?
编辑:
将来我计划在安卓应用程序中使用我的服务和域。我正在考虑使用宁静的服务。我不打算(在这个阶段)将它作为公共 API。