【发布时间】:2012-08-14 04:12:22
【问题描述】:
我创建了一个项目,我需要将操作拆分为 n 层应用程序(3 层)
我从一个项目开始,然后开始添加我的所有课程。特效
public IServiceFoo()
{
DoIt();
}
public ServiceFoo : IServiceFoo
{
...
}
添加了 IoC 和所有这些。 开始重构,但碰壁了。 我有 4 个程序集。
- 型号/领域
- 服务/基础设施
- DAL
- ASP.NET MVC 作为视图。
我在哪里粘贴我的 IServiceFoo 接口? 唯一合乎逻辑的位置是在域/模型程序集中,因为所有其他项目都知道这一点,因此可以跨应用程序使用。
我是否将我的程序集称为:Domain instad of Model,因为它不再只是模型?
服务也是如此?这更像是一个基础设施,因为它包含服务类和计算逻辑。
希望你能帮忙? 谢谢。
--编辑-08142012-- 我的解决方案领域:商店,提供教育和更好的建筑知识。
Solution (a 3 layers application :D then!)
DAL - assembly (only pulls data up and save data)
- ProductDAL : IProductDal
- GroupDAL : IGroupDAL
- UserDAL : IUserDAL
Service - assembly
- ProductService : IProductService (calculate products, load product by DAL)
- GroupService : IGroupService (do some stuff with group, maybe delete group in list with no product)
- UserService : IUserService (validate if a user can login, load user by dal, check password)
Models - assembly
- Product
- Group
- User
- Webshop - assembly (ASP.NET MVC) (with all the viewmodel and models, UI Helpers)
Using DI/IoC as the glue, that sticks it all to getter.
另外:网上商店引用所有程序集。除了接口之外,服务层和 dal 层都知道对方的注意事项。
我的 Service 和 DAL 接口的最佳位置在哪里? 希望这会有所帮助:S
【问题讨论】:
-
使其成为
n+1层应用程序 -
层与层不同。层分布在多台计算机或进程中。层在一个进程中。
-
IServiceFoo 和 ServiceFoo 是干什么用的?如果我们不知道它的用途和用途,我们就无法真正告诉您它的去向。
-
这个问题可能不适合 StackOverflow 的技术问答形式。具体来说,这个问题没有“正确”的答案。它可能会在programmers.stackexchange.com 找到更好的归宿,这种更普遍的问题会很受欢迎。
-
k,也许吧。是否可以移动此线程。还是我需要在正确的线程上创建一个新问题?
标签: .net architecture