Какой шаблон подходит для моего проекта? - PullRequest
0 голосов
/ 08 декабря 2011

Я видел много статей и ссылок о том, как использовать эти шаблоны для моего первого (пожалуйста, имейте в виду) серьезного проекта с ASP.NET MVC 3 и EF.

Проект не такой большой (13 таблиц), и в основном это обслуживание CRUD: организации, у которых есть несколько пользователей; пользователи, которые могут принадлежать к группе и могут создавать рабочие области и шаблоны ... Ничего сложного. Дело в том, что это будет первый проект из серии, и я хотел бы создать базу для работы.

Мои вопросы:

Какой из предыдущих шаблонов является лучшим? Зависит ли это от размера проекта?

Мои модели будут такими:

Как вы думаете, они достаточно хороши и подходят для моего проекта?

Я ценю все ваши комментарии.

Ответы [ 5 ]

4 голосов
/ 08 декабря 2011

Серьезное приложение не означает быть сложным с первого взгляда.

Чрезмерное проектирование приложения может привести к настоящей катастрофе, особенно если вы не понимаете всех задействованных технологий.

Мой совет: будь проще . Создайте базовое приложение, отвечающее требованиям (добейтесь успеха и сделайте своего босса счастливым), а затем добавьте новые концепции на пути обучения.

Это не значит, что я продвигаю плохой код, ни за что! Держите ваш код чистым, хорошо организованным и т. Д. Но не погибайте от страха сделать что-то не так.

Это нормально, что разработчик оглядывается на приложение, созданное несколько недель назад, а затем понимает, что он сделал что-то дерьмовое. Вот как мы прогрессируем!

Не в последнюю очередь, весело!

Веб-сайт ASP.NET предоставляет полезные ресурсы для изучения структуры и всех соответствующих руководств. Есть несколько примеров приложений, созданных пошагово.

1 голос
/ 08 декабря 2011

Я хотел бы ответить на этот вопрос более общим образом. Создать что-то, что можно использовать в будущем, сложнее, чем кажется. Все вышеприведенные шаблоны могут предоставить вам элементы инфраструктуры для создания некоторой базовой структуры.
Но я настоятельно рекомендую вам взглянуть на принципы S.O.L.I.D (DI является его частью), чтобы понять некоторые качества хорошего кода. Они применимы независимо от используемой технологии.
Вы не можете предсказать будущие требования к продукту / инфраструктуре, но, следуя этим принципам, вы можете лучше подготовиться к любой будущей модификации программного обеспечения

1 голос
/ 08 декабря 2011

Возможно, вы захотите проверить S # arp Lite , который содержит много хороших примеров того, как реализовать то, что вы хотите, и может послужить очень хорошей основой для быстрого создания чего-либо.

1 голос
/ 08 декабря 2011

ASP.NET MVC был создан с учетом внедрения зависимостей.

Если вы хотите, чтобы ваш код имел слабую связь и его легче было изменить в будущем, вы должны следовать шаблонам, таким как зависимость.Инъекция, Репозиторий (для абстрагирования от презистентности) и UoW (для абстракции от транзакций).

Так что мой ответ, вы должны узнать о них в первую очередь, чтобы решить, хотите ли вы или нет следовать передовым методам,Даже для простого проекта хорошо применять эти шаблоны, потому что часто они становятся все больше и больше.и это легко сделать в MVC, так зачем этого избегать?

Существует множество ресурсов для изучения.Вы можете просто погуглить.

0 голосов
/ 08 декабря 2011

Ни один из упомянутых шаблонов не является взаимоисключающим.Вы должны использовать шаблоны, которые имеют смысл, основываясь на том, что вы пытаетесь достичь, а не пытаться придавить свой дизайн приложения кому-то, чье-либо представление о том, как оно должно работать.Иногда худшее, что вы можете сделать, - это попытаться изменить свой сценарий, чтобы он соответствовал определенному шаблону / практике проектирования.

Хотите убедиться, что хороший юнит тестовый охват / TDD / обеспечивает слабую связь?Тогда инъекция зависимости - это ваш друг, а также модель «Единица работы».Это определенно хорошая идея для создания поддерживаемого, масштабируемого приложения, но вы можете зайти слишком далеко для небольшого приложения.

Нужна стратегия централизованного кэширования для вашего источника данных?Затем используйте шаблон хранилища.Или ORM, как NHibernate, который может сделать это для вас.

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