ASP.NET C #: какой шаблон проектирования следует использовать и почему? - PullRequest
3 голосов
/ 23 апреля 2009

Я занимаюсь разработкой приложения в ASP.NET C # и столкнулся со следующим сценарием:

  1. Мне нужно будет создать несколько экранов обслуживания для разных объектов (таблиц)
  2. Эти сущности в основном будут иметь одинаковое поведение в пользовательском интерфейсе: Поиск, GetById, Сохранить, Создать и GetAll
  3. Объекты могут иметь разную структуру, то есть разные свойства (поля)

Поскольку я говорю о более чем 20 экранах администратора, какой шаблон проектирования я мог бы использовать, чтобы минимизировать объем кода, который мне придется писать?

Я думаю о шаблоне моста , но я немного запутался в том, как его реализовать ...

Немного о технологии, которую я использую:

  1. ASP.NET classic (n-ярус)
  2. LINQ to SQL и объекты DAO
  3. SQL Server 2005

Ответы [ 4 ]

4 голосов
/ 23 апреля 2009

Для набора административных экранов, которые просто выполняют операции CRUD (создание, чтение, обновление, удаление) и с минимальными затратами на бизнес-логику, я был бы весьма искушен более или менее отказаться от шаблонов проектирования и взять посмотрите динамические данные asp.net . Это особенно верно, если вы хотите минимизировать объем кода, который хотите написать.

2 голосов
/ 23 апреля 2009

Если вы действительно просто делаете такие базовые вещи, как это: Поиск, GetById, Сохранить, Создать и GetAll, я бы порекомендовал вам использовать репозитории. Если все сделано неправильно, репозитории могут стать очень плохими и неприятными, но если вы действительно ограничены этим набором операций, вы в основном описали репозиторий с этим набором операций.

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

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

Репозитории работают с вашими объектами. Они в основном являются посредником, который обрабатывает сохранность ваших данных. Эта абстракция позволяет вам скрыть от остальной части вашего кода, как вы сохраняете свои данные. В этом случае реализации ваших репозиториев будут использовать LinqToSql, так как я полагаю, это то, что вы сказали, что использовали.

Существует множество ресурсов , объясняющих шаблон хранилища .

2 голосов
/ 23 апреля 2009

Это не шаблон проектирования ... но я настоятельно рекомендую использовать динамические данные. У Джонатана Картера есть несколько замечательных статей об этом: http://lostintangent.com/index.php?s=dynamic+data

1 голос
/ 23 апреля 2009

То, что вы хотите, это не шаблон дизайна. Вы ищете ОРМ с лесами. Я использовал и очень рекомендую SubSonic - http://subsonicproject.com. Вы можете прочитать о его функциях лесов здесь: http://subsonicproject.com/web-forms-controls/the-scaffold/

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