我正在用 C# 构建一个标准的三层应用程序
1 个前端控制台应用程序/但我可能会将其更改为 ASP.NET MVC 网页
2 业务逻辑层
3 使用连接到 SQL 数据库的实体框架的数据层/但这可能会更改为 windows azure
主要目的是展示一些客户数据。
存储在数据库中的客户具有以下字段 -
CustomerID
Firstname
Lastname
DateOfBirth
Othervalue1
Othervalue2
Othervalue3
Creationdate
Updatedate
IsDisabled //this represents "deleted" customers i.e. the app will never use deleted customers, but I want to keep them in the database anyway
在中层,我只想要
CustomerID
Firstname
Lastname
DateOfBirth
Othervalue1
Othervalue2
Othervalue3
Updatedate
在第一个应用程序的前端,我只会展示
CustomerID
Firstname
Lastname
DateOfBirth
从从数据层加载客户(可能会改变)并在中间层然后在表示层(可能会改变)中使用该客户的角度来看,我如何正确实现 n 层应用程序?
我将客户模型放在哪里?我需要不止一个吗?我是否需要某个地方的 ICustomer 接口?
项目详情 该项目将由两个团队开发,一个位于美国,另一个位于东欧,团队成员将在 4 到 5 人之间。
该项目将不会使用一个遗留数据访问层。相反,我们将使用 Entity Framework 构建一个新的;我们需要设计和构建一个将在所有新应用程序中使用的数据层(对于这个应用程序,我们只需要客户表和一两个表)。其他项目将向该层添加其他表。
我正在使用 DI 注入 ICustomerRepository (请参阅这个SO question)。但将实现存储库和工作单元模式。
我关心的是适当地分离层。在接下来的几个月中,我们将添加许多新项目,新的数据层将快速增长。我们也在考虑在某个时候迁移到 Azure,因此我希望能够交换实体框架数据层,而无需重写业务层和前端层。