Руководство по структурированию кода для .net проектов - PullRequest
3 голосов
/ 31 марта 2012

Я обычно использую шаблон IoC в своих проектах, которые в большинстве случаев основаны на ASP.net. Существуют ли рекомендации по структурированию проектов в общем трехуровневом проекте UI + BL + Data Access. Я хочу узнать больше о том, как создавать папки, где следует хранить константы в каждом слое (я храню все строки, такие как параметры строки запроса, параметр хранимой процедуры и т. Д., В файле с именем Constants, который является одиночным). Как мне создавать классы, которые взаимодействуют со слоем доступа к данным из бизнес-уровня и т. Д., И все подобные вопросы по структуре кода.

Есть какое-нибудь руководство или книга по этому вопросу?

Ответы [ 2 ]

2 голосов
/ 31 марта 2012

У Microsoft есть множество информации по этому вопросу.Я использовал Microsoft .NET: Разработка приложений для предприятия в качестве библии для архитектуры программного обеспечения

http://www.amazon.com/Microsoft%C2%AE-NET-Architecting-Applications-Pro-Developer/dp/073562609X

Также ознакомьтесь с этим руководством по MSDN

http://msdn.microsoft.com/en-us/library/ff647095.aspx

Кроме того, взгляните на некоторые фреймворки приложений, такие как Sharp Architecture, для примеров

http://sharparchitecture.net/

Многие учебные пособия NHibernate демонстрируют принципы проектирования программного обеспечения, которые можно применять к любымрешение

http://nhforge.org/blogs/nhibernate/archive/2010/04/25/first-three-nhibernate-quickstart-tutorials-available.aspx

0 голосов
/ 31 марта 2012

@ robbymurphy имеет отличный ответ.Я бы только добавил, что большинство констант и интерфейсов я храню в отдельном проекте / сборке.Я называю это своей «базовой» сборкой и определяю интерфейсы, которые позволяют мне передавать данные от вершины стека к основанию без их тесной связи.

Не столько там, где они используются, но длячто за мочеиспусканиеОднажды я посетил семинар, где преподаватель снова и снова стучал в наши головы «высокая сплоченность, слабая связь».

Храните те вещи, которые в реальном мире принадлежат друг другу, но уменьшают зависимости между объектами всякий раз, когда это возможно.

Это вопрос сплоченности, а также проблема связи: есликонстанты действительно являются внутренними для класса, делают их закрытыми статическими членами (т. е. и enum внутреннего состояния).Если они действительно являются внутренними для проекта, создайте для них класс и сделайте их внутренними (константа, специфичная для базы данных на вашем уровне данных).В противном случае поместите их в открытый класс в своем собственном проекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...