あなたがプロジェクトに取り組んでいる唯一の人なら、私はにまず何を意味するのですか。直感的ではないディレクトリやプロジェクト構造をあなたに課すことよりも悪いことはありません。 BaseControllerクラスは\ Core \フォルダまたは\ Controller \フォルダにありますか?個人的にはコントローラを見ていますが、一部の人は\ Core \ or \ Basesにあるべきだと誓っています。
最初の初心者トラップは、コードを間違った方法で整理できると考えています。これは、プロジェクトの成功を反映しています。私は、30のファイルが1つのフォルダにあり、他のプロジェクトでは30のファイルに対して20のフォルダがあるプロジェクトを見てきました。
2番目の初心者のトラップは、他の言語に比べて、素晴らしいインテリセンス、コードナビゲーションツール、およびVisual Studioのリファクタリングサポートの利点を忘れています。また、ファイルを誤って配置することにより、苦痛を軽減するコンパイラもあります。あなたが "間違った"場所に何かを置くなら、それは大丈夫です、あなたはいつでもそれを見つけて、それが必要な場所にドラッグすることができます。
私は正直言って私は今、プロジェクトに取り組んでいます。私は、特定のクラスが私のファイル構造にどこにあるのかもわかりません。 Go To Definition/Declarationはキーボードショートカットです。コードで作業しているのは私だけですので、これは問題ありません。私がプロジェクトに別の開発者を追加しなければならないとすれば、おそらく私は物事をきれいにするだろう。
個人的には、実装するタイプのInterfacesを同じフォルダ内に配置する傾向があります。 IPaymentGatewayは、AuthorizeNetGatewayとPaypalGatewayと同じフォルダにあります。ソリューションエクスプローラのサイドバーで、そのフォルダ内のすべてのファイルを一度に表示できない場合は、すべてのゲートウェイファイルを\ Gateway \フォルダに移動します。
依存関係注入をミックスに追加すると、名前空間の爆発だけに関係することをお勧めします。最悪のことは、宣言とエイリアスを使用してブートストラップとファイルを長く混乱させることです。
ForRequestedType<Customer>
はクリーナーより
using KevDog.Models
using Customer=KevDog.Models.Customer
または
ForRequestedType<KevDog.Models.Customer>
この問題を回避するための別の方法明示することとしたとき、あなたの命名の事:顧客、CustomerViewModel、CustomerController、CustomerDataRow、CustomerView
TDDの場合、ほとんどの場合、管理するブートストラップが2つ必要ですあなたの具体的なタイプ。 AuthorizeNetGateway:IPaymentGateway、むしろStubGateway:IPaymentGatewayを使用するあなたのユニットテストを実際にしたくない。
は今、私はので、私は物事が非常にシンプルにする傾向があり、101レベルのチュートリアルとマニュアルをミラーDIでも新たなんです。ビルド構成に基づいて動的注入を行うには、特定の状況で必要な場合にのみ使用し、その理由を正確に把握する必要があります。
私は通常、同様MVCアプリケーションのデフォルトの構造を維持します。すべてのチュートリアルやビデオの99%と同じ構造でコードを作成するほうが簡単です。
これが役に立ちます。
NewbieトラップのStructureMapは、中程度の信頼の下でのセキュリティアクセス許可の例外でした。あなたのアプリがMedium Trust環境で動作する場合は、別のDIコンテナを調べることをお勧めします。 –