2016-10-28 4 views
1

私はC#の割り当てに取り組んでいます。 C#アプリケーションを3つのレイヤーとして設計する必要があります。レイヤーは独自のパッケージで実装する必要があります。これを解決するために、私はVisual Studioのプロジェクトにフォルダを追加しました。これは正しいアプローチですか?C#デザインは3層で、.dll(ライブラリ)としてレイヤーを実装します

次に、ビジネスロジックを.dll(ライブラリ)として実装する必要があります。私が行ったことは、私のソリューションに新しいクラスライブラリプロジェクトを作成することです。どのような私が今持っていることは次のとおりです。

Screenshot of my Solution Explorer

私はこれを行う方法についてはよく分かりません。それは正しく行われますか?もしそうなら、私は今何をすべきか知りたい。限り、私は知っているように、私は他のプロジェクトへの参照として追加することができます.dllファイルを取得するためにクラスライブラリプロジェクトを構築する必要があります。しかし、クラスライブラリプロジェクトでビジネスロジックを記述すると、メインプロジェクトのBusinessLogicパッケージに何を書き込むのですか?

私のアプローチが間違っている場合は、解決方法を教えてください。

+0

各DLLは、Visual Studioの個別のクラスライブラリプロジェクトになります。フォルダを使用するだけで、コードファイルが整理されます。したがって、3つのクラスライブラリが必要です - それぞれの "レイヤー"の1つ –

+0

割り当ての考えは、あなたの分離の分離を教えることです.3つのレイヤーは疎結合されており、各レイヤーは1つのアプリケーションの側面。たとえばMVVMでは、コントロールレイヤー(UIコントロールを配置する場所)、ビューモデルレイヤー(UIがバインドするオブジェクト)、モデルレイヤー(ビジネスロジック、サービスなど)があります。最初に始めても、デザインフェーズで時間を費やし、各レイヤーに何を入れるかを決めることをお勧めします。必要に応じて、レイヤーごとに個別のプロジェクトを作成することができます。 – brakeroo

+0

BusinessLogicパッケージは、他の「レイヤー」がその機能を使用するためのインターフェイスを提供するクラスライブラリである必要があります。あなたはプロジェクトについてのより多くの情報を与えることができます、私は例を考え出したいですが、質問はあまりにも抽象的です。 – brakeroo

答えて

1

アプリケーションの各レイヤーにクラスライブラリが必要です。 DLLを取得するためにクラスをコンパイルしてコンパイルすることはできますが、単純化するために、クラスライブラリプロジェクトのそれぞれにプロジェクト参照を追加してください...コンパイラはDLL参照を処理しますあなたがそれを構築するとき。

+0

私は、 "レイヤー"は抽象的な概念であり、異なるプロジェクトのdll(またはアプリケーション/プロセス)に異なるクラス(要件の要求とは異なるパッケージで定義されている)から何かによって達成できると主張します。ゆるやかに結合し、特定の責任に焦点を当てるためには、これは再利用可能で、独立してテストされ、システムの他の部分に影響を与えることなく変更されるモジュールです。 – brakeroo

+0

あなたの議論を買うでしょうが、 .dll(ライブラリ)としてのビジネスロジック。 "レイヤーの少なくとも1つ(ビジネスロジックレイヤー)が別のクラスライブラリーであることを暗示しています。第3レイヤー(おそらくデータアクセスであると想定しています)を意味するように拡張しただけで、別のクラスライブラリーになります。そうでなければならない。 – Theo

+0

はい、ビジネスロジックレイヤとデータアクセスレイヤの両方をクラスライブラリにする必要がありますが、今はデータアクセスレイヤを実装する必要はありません。 答えを見ると、各レイヤーのプロジェクトを作成するのが最善の解決策であると思われますので、私はこのアプローチを試みます。 – qwerty

関連する問題