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 ページ 2 で作成することにしました。すぐに、より複雑なことを行うために 1 ~ 2 つの MVC アプリケーションを作成する必要があります。

したがって、基本的に私の質問は、既存のアーキテクチャをこれら 2 つのケースに使用する推奨される方法は何ですか?

上記のすべてを私の Web サイト プロジェクトに参照するとします。じゃあ何?

ビジネスレイヤーオブジェクトをどこで初期化する必要がありますか? すべてのページで?かつてどこか?(ウェブページの場合)

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 に答える