0

我有 5 个基本项目需要成为多个应用程序的一部分。WinForms、ASP.NET、WPF 取决于我们的需求。

这些项目是:

Company.Business - Business Logic DLL
Company.Business.Model - Business Models 
Company.Business.DAL - Various DALs 
Company.Configuration.Classes - Classes that are used to initialize BOs 
Company.Utilities - General Utilities

我知道需要创建一些简单的应用程序,所以我不想走 MVC 的道路,并决定在 Web Pages 2 中完成它们。很快我将不得不创建 1-2 个 MVC 应用程序来做一些更复杂的事情。

所以基本上我的问题是在这两种情况下使用我现有架构的推荐方法是什么?

假设我将以上所有内容都引用到我的网站项目中。然后呢?

我应该在哪里初始化我的业务层对象?在每一页?曾经在某个地方?(网页案例)

我想在 MVC 应用程序中我只会在每个控制器构造函数中初始化我的业务层对象?

4

2 回答 2

1

使用面向服务的分层(不要与 SOA 混淆),您的业务对象(存储库、映射器等)的组合将发生在服务中。这只不过是一个容器或您的业务对象,它将成为访问应用程序业务逻辑的入口点。然后,您将从控制器后面或内部的页面代码中使用服务。将它与 DI 框架的依赖关系传递给它。这是在您的应用程序中使用的简单服务。

public class SampleRepository : ISampleRepository
{
   public void Insert(Sample item)
   {
       //do something, save the item ?        
   }
}


public class SampleService : ISampleService 
{
   private ISampleRepository _repository;

   public SampleService(SampleService repository)
   {
        _repository = repository;
   }

   public void DoSomething(Sample item)
   {
       //put some logic here, validation , logging, etc..
        //.....

       //Call the repositoey      
       _repository.Insert(item);
   }
}
于 2013-03-19T12:05:59.353 回答
0

MVC 的最佳解决方案是使用像 Ninject 这样的依赖注入。如果您想快速设置,请使用 Ninject 的 MVC 3 nuget 包。安装后,您可以将业务层的实现注入到 MVC 控制器中。

https://www.nuget.org/packages/Ninject.MVC3/

于 2013-03-19T11:46:41.127 回答